9 Adadelta算法
- Adadelta是AdaGrad的另一种变体主要区别在于前者减少了学习率适应坐标的数量。此外,广义上Adadelta被称为没有学习率,因为它使用变化量本身作为未来变化的校准。
9.1 Adadelta算法
-
Adadelta使用两个状态变量,
用于存储梯度二阶导数的泄露平均值, 用于存储模型本身中参数变化二阶导数的泄露平均值。 -
其中与RMSProp的区别在于使用重新缩放的梯度
执行更新:- 其中
是重新缩放梯度的平方 的泄漏平均值, 初始化为0。
- 其中
9.2 从零实现
1 | %matplotlib inline |
loss: 0.245, 0.011 sec/epoch
9.3 简洁实现
1 | trainer = torch.optim.Adadelta |
loss: 0.243, 0.009 sec/epoch