Adashift论文解读

论文提出了一个估计梯度对神经网络影响的函数 n e t ( g t ) net(g_t) net(gt),这个函数基于Adam二阶动量更新规则
在这里插入图片描述
作者根据该公式分析,指出Adam存在的几个个问题:

  • 神经网络在通过Adam优化的过程中,二阶动量 v t v_t vt与梯度 g t g_t gt存在正相关,所以当一个 g t g_t gt更新到错误方向时, v t v_t vt更新也会出现错误,见公式 v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2 vt=β2vt1+(1β2)gt2
  • Adam的步长更新存在不均衡问题,见公式 α v t \frac{\alpha}{\sqrt{v_t}} vt α,即梯度越大的时候,步长更新越小,梯度越小是步长更新越大。最终导致了Adam算法可能不收敛。
  • 因此,在Adam的优化中,正确的梯度方向 C C C对结果产生的影响小于错误的梯度方向 − 1 -1 1

作者提出来解决方案,

  • g t g_t gt v t v_t vt解相关,使用 g t − n g_{t-n} gtn计算 v t v_t vt
  • g t ( t = 1...... n ) g_t(t=1......n) gt(t=1......n),分为两部分,分别用来计算一阶动量 m t m_t mt与二阶动量 v t v_t vt,即将 v t v_t vt m t m_t mt解相关(这块没理解为啥)。
  • 对神经网络不同的层的参数更新使用不同的步长,每层一个步长。每层的参数更新只使用这一层前面参数。
    Adashift论文解读_第1张图片
    存在的问题:
  • 为何 g t g_t gt g t − n g_{t-n} gtn相互独立,我认为,这两个变量必然是 g t g_t gt依赖于 g t − n g_{t-n} gtn,因为每次更新 θ \theta θ必然依赖于 g g g,新的 θ t + 1 \theta_{t+1} θt+1更新依赖于 g t g_t gt θ t + 1 \theta_{t+1} θt+1又影响 g t + 1 g_{t+1} gt+1,所以 g t 、 g t + 1 g_t、g_{t+1} gtgt+1相互依赖。

你可能感兴趣的