指数加权平均
指数加权平均(Exponentially Weighted Averages,EWA) ,也叫做指数移动平均(Exponentially Moving Averages,EMA) 是一种用于平滑时间序列数据的技术,通过对数据点赋予不同的权重来计算平均值,其中最近的数据点被赋予更大的权重。
EWA 的计算公式表示为:
\[v_t = \beta v_{t-1} + (1-\beta) \theta_t
\]
\(v_t\) 的值可以看作是对前 \(\frac{1}{1-\beta}\) 个值的平均。(\((1-\varepsilon)^{1/\varepsilon} = \frac{1}{\mathrm{e}}\))
例:
\[\beta = 0.9,\ v_t = 0.9 v_{t-1} + 0.1 \theta_t
\]
\[v_{100} = 0.1\theta_{100} + 0.1\times0.9\times\theta_{99} + 0.1\times0.9^2\times\theta_{98} + \ldots + 0.1\times0.9^{99}\times\theta_{1}
\]

参考:
偏差修正
指数加权平均在 \(t\) 很小时得到的计算结果并不准确。为了修正这一错误,可以在原公式的基础上加一个分母(\(1-\beta^t\)):
\[v_t = \frac{\beta v_{t-1} + (1-\beta) \theta_t}{1-\beta^t}
\]
参考:Bias Correction in Exponentially Weighted Averages | Coursera
动量梯度下降
计算梯度的指数加权平均,然后使用平均的梯度来更新权重。这种方法可以减小训练过程中的成本震荡,并加快收敛速度。
\[v_{\mathrm{d}W} = \beta v_{\mathrm{d}W} + (1-\beta)\mathrm{d}W
\]
\[v_{\mathrm{d}b} = \beta v_{\mathrm{d}b} + (1-\beta)\mathrm{d}b
\]
\[W = W - \alpha v_{\mathrm{d}W},\ b = b - \alpha v_{\mathrm{d}b}
\]
在动量梯度下降中,可以将成本函数优化过程想象成小球从碗边滚下:\(v_{\mathrm{d}W}\) 是小球的速度,而 \(\mathrm{d}W\) 是小球的加速度,\(\beta\) 是碗壁的摩擦力。\(\mathrm{d}b\) 的震荡会延迟传递到 \(v_{\mathrm{d}b}\),并与之前的反向 \(\mathrm{d}b\) 抵消,从而减小震荡。
参考:Gradient Descent with Momentum | Coursera
均方根传播
\[s_{\mathrm{d}W} = \beta s_{\mathrm{d}W} + (1-\beta)\mathrm{d}W^2
\]
\[s_{\mathrm{d}b} = \beta s_{\mathrm{d}b} + (1-\beta)\mathrm{d}b^2
\]
\[W = W - \alpha \frac{\mathrm{d}W}{\sqrt{s_{\mathrm{d}W}}},\ b = b - \alpha \frac{\mathrm{d}b}{\sqrt{s_{\mathrm{d}b}}}
\]
RMSprop 的直觉是,如果 \(\mathrm{d}b\) 很大,那么 \(s_{\mathrm{d}b}\) 也会很大,\(b\) 的加速度 \(\frac{\mathrm{d}b}{\sqrt{s_{\mathrm{d}b}}}\) 就会因此减小,从而减小震荡。
参考:RMSprop | Coursera
Adam
Adam 算法是 Momentum 和 RMSprop 的结合。
\[v_{\mathrm{d}W} = \beta_1 v_{\mathrm{d}W} + (1-\beta_1)\mathrm{d}W,\ v_{\mathrm{d}b} = \beta_1 v_{\mathrm{d}b} + (1-\beta_1)\mathrm{d}b
\]
\[s_{\mathrm{d}W} = \beta_2 s_{\mathrm{d}W} + (1-\beta_2)\mathrm{d}W^2,\ s_{\mathrm{d}b} = \beta_2 s_{\mathrm{d}b} + (1-\beta_2)\mathrm{d}b^2
\]
\[v_{\mathrm{d}W}^{\mathrm{correct}} = \frac{v_{\mathrm{d}W}}{1-\beta_1^t},\ v_{\mathrm{d}b}^{\mathrm{correct}} = \frac{v_{\mathrm{d}b}}{1-\beta_1^t}
\]
\[s_{\mathrm{d}W}^{\mathrm{correct}} = \frac{s_{\mathrm{d}W}}{1-\beta_2^t},\ s_{\mathrm{d}b}^{\mathrm{correct}} = \frac{s_{\mathrm{d}b}}{1-\beta_2^t}
\]
\[W = W - \alpha \frac{v_{\mathrm{d}W}^{\mathrm{corrected}}}{\sqrt{s_{\mathrm{d}W}}},\ b = b - \alpha \frac{v_{\mathrm{d}b}^{\mathrm{corrected}}}{\sqrt{s_{\mathrm{d}b}}}
\]
Adam 的两个超参数:\(\beta_1\) 负责调整 \(\mathrm{d}W\) 项,\(\beta_2\) 负责调整 \(\mathrm{d}W^2\) 项。
学习率衰减
基本思想:在成本函数接近最低点时降低学习率以避免震荡。
有多种衰减策略。
参考:Learning Rate Decay | Coursera