Adadelta
Extension of Adagrad
Adadelta was proposed with the aim to solve the diminishing learning rate problem that was seen in the Adagrad. Adagrad uses the knowledge of all the past gradients in its update, whereas Adadelta uses only a certain "window" of past gradients to update the parameters.
The mathematical formulation of Adadelta is similar to that of RMSprop.
Both Adadelta and RMSprop were developed independently to eliminate the problem of Adagrad. They are suitable for optimizing non-stationary and non-convex problems.

Major Parameters

Rho

Rho is same as the
ฮฒ\beta
of RMSprop. It is the smoothing constant whose value ranges from 0 to 1. Higher value of Rho suggests that more number of previously calculated squares of gradient are taken into account, making the curve relatively "smooth".

Code Implementation

1
# importing the library
2
import torch
3
import torch.nn as nn
4
โ€‹
5
x = torch.randn(10, 3)
6
y = torch.randn(10, 2)
7
โ€‹
8
# Build a fully connected layer.
9
linear = nn.Linear(3, 2)
10
โ€‹
11
# Build MSE loss function and optimizer.
12
criterion = nn.MSELoss()
13
โ€‹
14
# Optimization method using RMSprop
15
optimizer = torch.optim.RMSProp(linear.parameters(), lr=1.0, rho=0.9, eps=1e-06, weight_decay=0)
16
โ€‹
17
# Forward pass.
18
pred = linear(x)
19
โ€‹
20
# Compute loss.
21
loss = criterion(pred, y)
22
print('loss:', loss.item())
23
โ€‹
24
optimizer.step()
Copied!
โ€‹
Last modified 4mo ago