momentum梯度下降法

指数加权平均

假设有多个时间点对应的值θt\theta_t,那么我可以得出一个指数加权平均值VtV_t
{Vt=0t=0Vt=βVt1+(1β)θtt>0\begin{cases} V_t=0&t=0\\ V_t=\beta V_{t-1}+(1-\beta)\theta_t&t>0 \end{cases}

在结果上看,VtV_t可以看成以tt结尾的11β\dfrac{1}{1-\beta}天的平均θ\theta值。

β=0.9\beta=0.9时有:
Vt=0.1θt+0.10.9θt1+0.10.92θt2+0.10.93θt3+...V_t=0.1\theta_t+0.1\cdot0.9\theta_{t-1}+0.1\cdot0.9^2\theta_{t-2}+0.1\cdot0.9^3\theta_{t-3}+...

当超过11β\dfrac{1}{1-\beta}时,其系数小于1e\dfrac{1}{e},影响较小了。

空间优势:

假设我不需要保留前一个数据,那么只需要V:=βV+(1β)θtV:=\beta V+(1-\beta)\theta_t,也就是说,我只需要开一个与θt\theta_t相同大小的数据即可实现这一过程,而不像直接取平均值那样要保留其它项。空间优势巨大。

指数加权平均……偏差修正

开始的几天并不正确,因为虽然乘了系数,但是项数却不够,所以可以进行修改,使得Vt:=Vt1βtV_t:=\dfrac{V_t}{1-\beta^t}

验证以下可以发现,前面几项除了一个小数,变大了,也就是说趋近了真实的值。

momentum(动量)梯度下降法

momentum梯度下降法
类似与上述的情况下,梯度下降会按照蓝色的线进行优化参数。

我们想要减少垂直方向的变化幅度,加大水平方向的变化。

考虑指数加权平均的方法。


我们在神经网络中,算出了dw,dbdw,db,然后令:

Vdw:=βVdw+(1β)dwVdb:=βVdb+(1β)db  w:=wαVdwb:=bαVdbVdw:=\beta Vdw+(1-\beta)dw\\ Vdb:=\beta Vdb+(1-\beta)db\\ \;\\ w:=w-\alpha\cdot Vdw\\ b:=b-\alpha\cdot Vdb

思索一下这样的做法对原来的梯度下降法的优化,如果遇到上面的情况,上下的起伏因为平均后变得很小。而左右方向的前进速度因为一直累加而变大。

所以说,在大部分情况下,momentum梯度下降法都是快于原来的梯度下降法的。