🐠Adadelta
2021-11-5
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
Adadelta是AdaGrad的另一种变体, 主要区别在于前者减少了学习率适应坐标的数量。 此外,广义上Adadelta被称为没有学习率,因为它使用变化量本身作为未来变化的校准。 Adadelta算法是在Zeiler.2012中提出的。

Adadelta算法

Adadelta使用两个状态变量, 用于存储梯度二阶导数的泄露平均值, 用于存储模型本身中参数变化二阶导数的泄露平均值。
以下是Adadelta的技术细节。鉴于参数du jour是 ,获得了与rmsprop类似的以下泄漏更新:
rmsprop的区别在于,使用重新缩放的梯度 执行更新,即
那么,调整后的梯度是什么?可以按如下方式计算它:
其中 是重新缩放梯度的平方 的泄漏平均值初始化为 ,然后在每个步骤中使用 更新它,即
(例如 这样的小值)是为了保持数字稳定性而加入的。

代码实现

从零实现

Adadelta需要为每个变量维护两个状态变量,即
 

简洁实现

 

小结

  • Adadelta没有学习率参数。相反,它使用参数本身的变化率来调整学习率。
  • Adadelta需要两个状态变量来存储梯度的二阶导数和参数的变化。
  • Adadelta使用泄漏的平均值来保持对适当统计数据的运行估计。
  • PyTorch
  • RMSProp算法Adam算法
    目录