AdaDelta

1. 简介

AdaDelta 算法是 AdaGrad 算法的改进,和 RMSprop 算法类似,AdaDelta 算法通过梯度平方的指数衰减移动平均来调整学习率;此外,AdaDelta 算法还引入了每次参数更新差值 Δθ\Delta \theta 的平方的指数衰减移动平均。

2. 原理

tt 次迭代时:

  • 首先计算参数更新差值 ΔW\Delta W 的平方的指数衰减权值移动平均为:

ΔXt12=β1ΔXt22+(1β1)ΔWt1ΔWt1\begin{array}{c} \Delta \boldsymbol{X}_{t-1}^2 = \beta_1 \Delta \boldsymbol{X}_{t-2}^2 + (1-\beta_1) \Delta \boldsymbol{W}_{t-1} \odot \Delta \boldsymbol{W}_{t-1} \end{array}

  • 然后计算每次迭代梯度 LW\frac{\partial L}{\partial \boldsymbol{W}} 平方的指数衰减移动平均:

ht=β2ht1+(1β2)LWt1LWt1\begin{array}{c} \boldsymbol{h}_t = \beta_2 \boldsymbol{h}_{t-1} + (1-\beta_2)\frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \odot \frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \end{array}

其中,β1,β2\beta_1, \beta_2 均为衰减率,一般取指为 0.90.9

  • AdaDelta 算法的参数更新公式为:

ΔWt=ΔXt12+εht+εLWt1Wt=Wt1+ΔWt\begin{array}{c} \Delta \boldsymbol{W}_t = - \frac{\sqrt{\Delta \boldsymbol{X}_{t-1}^2 + \boldsymbol{\varepsilon}}}{\sqrt{\boldsymbol{h_t}+\boldsymbol{\varepsilon}}} \frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \\ \boldsymbol{W}_t = \boldsymbol{W}_{t-1} + \Delta \boldsymbol{W}_t \end{array}