1 为什么要引入Momentum
上图代表了一个函数的等高线
使用梯度下降的话,红色的方向是我们要走的方向。蓝色和绿色分别是两个坐标轴上对应的变化方向。
这会存在一个问题,就是学习率不能太大,不然就会出现“overshoot”的问题
于是我们的梯度下降路线是一个像九曲桥一样的路径
不难发现,这样会导致收敛的速度很慢
其中,我们要优化的这个函数f,对应的hessian矩阵的最大和最小特征值的比值(我们称为condition number)越大(也就是等高线“越扁”),梯度下降收敛得越慢
2 Momentum
由于这里的截图同时采用了李宏毅教授和NTU课程的ppt,所以λ和α表示的是一个东西
给梯度下降一个动量
移动方向为 之前的移动方向 和 当下梯度反方向 的矢量和
每一步梯度对于当前梯度下降的方向都有贡献,只是它的贡献值指数级减少——EMA(exponential moving average)
通过momentum,大的方向会抵消掉一部分,小的方向会累加——加快收敛的速度
抵消的部分——>指向的方向不同
加强的方向——>指向的方向相同
3 数据白化
除了momentum之外,数据白化操作(将数据变成N(0,1)的分布)也可以减少condition number。这也可以加快收敛。