基于momentum的梯度下降

2019-12-10  本文已影响0人  Stack1_e27c

寻常的梯度下降是对位置的改变,基于momentum的梯度下降引入了一个称为速度(velocity)的概念。梯度的作用就是改变速度,而不是直接的改变位置,就如同物理学中的力改变速度,只会间接地影响位置。第二,momentum方法引入了一种摩擦力的项,用来逐步的减少速度。

我们引入速度变量v=v1,v2,...,其中一个对应\omega_j变量。然后我们将梯度下降更新规则\omega \to \omega'=\omega-\eta\nabla C改成
v \to v'=uv-\eta\nabla C
\omega \to \omega'=\omega+v'
在这些方程中,u是用来控制阻碍或者摩擦力的量的超参数。为了理解这个公式,可以考虑一下当u=1的时候,对应于没有任何摩擦力。所以,此时你可以看到力\nabla C改变了速度,v,速度随后再控制\omega变化率。直觉上看,我们通过重复发热增加梯度项来构造速度。这表示,如果梯度在某些学习的过程中几乎在同样的方向,我们可以得到在那个方向上比较大的移动量。

如果我们直接按坡度下降,每一步速度都在增加,我们就会越来越快的达到谷底,这样就能确保momentum技术比校准的梯度下降运行的更快。但是,这也会出现问题,一旦达到谷底,我们就会直接跨越过去。这就是我们使用超参数u的原因。

u可以控制摩擦力大小,准确的说,应该将1-u看成是摩擦力的量。当u=1时,没有摩擦,速度完全由梯度\nabla C决定。相反,若是u=0,就存在很大的摩擦,速度无法叠加,就变成了通常的梯度下降,\omega \to \omega'=\omega-\eta\nabla C

在实践中,使用0和1之间的u值可以给我们避免过量而又能够叠加速度的好处。

上一篇下一篇

猜你喜欢

热点阅读