提出
AdaDelta 算法是由 Matthew D. Zeiler 在 2012 年提出的。这一算法的详细描述和原理可以在论文《ADADELTA: An Adaptive Learning Rate Method》中找到
AdaDelta 算法旨在解决 AdaGrad 算法中学习率单调递减的问题,通过限制累积梯度的窗口大小来调整学习率,使得算法在训练过程中能够自适应地调整每个参数的学习率,而不需要手动设置。这种方法对噪声梯度信息、不同的模型结构、各种数据模式以及超参数选择都表现出了较强的鲁棒性
AdaDelta 算法的原理
Adadelta(AdaDelta)是一种自适应学习率的优化算法,它解决了 Adagrad 算法中学习率递减导致的问题。Adadelta 算法通过限制累积梯度的窗口大小,并且不需要设置全局学习率,因为它会根据之前的参数更新量来自适应地调整学习率
更新规则如下:
- 初始化两个状态变量:累积平方梯度的指数加权平均变量 和累积更新量的指数加权平均变量
- 在每次迭代中,计算梯度
- 更新累积平方梯度的指数加权平均 :
- 计算参数更新量
delta_p
: - 更新参数 :
- 更新累积更新量的指数加权平均
delta
:
其中, 是用于计算平方梯度的指数加权平均的系数(通常设为 0.9), 是一个很小的数(如 ),用于增加数值计算的稳定性
AdaDelta 算法的主要特点
优点包括:
- 自适应学习率,不需要手动设置
- 适合处理稀疏数据
- 加速模型的收敛过程
缺点可能包括:
- 对超参数 和 敏感
- 在某些情况下可能导致不稳定的学习过程