梯度下降是机器学习中用来使模型逼近真实分布的最小偏差的优化方法。
在普通的随机梯度下降和批梯度下降当中,参数的更新是按照如下公式进行的:
W = W - αdW
b = b - αdb
其中α是学习率,dW、db是cost function对w和b的偏导数。
随机梯度下降和批梯度下降的区别只是输入的数据分别是mini-batch和all。
然而,在曾经我发表的博客中提到了下图的问题。
可以看出在cost function的图像并不是那么“圆”的情况下,,从某一点开始的梯度下降过程是及其曲折的。并不是直接走向中心点,而是需要浪费很多时间折来折去,这样的速度就会变慢,怎么样解决这个问题呢?
有一个梯度下降法叫做动量梯度下降。直接上图:
这个就是动量梯度下降的参数更新公式。
我们可以看出,在这个公式中,并不是直接减去αdW和αdb,而是计算出了一个vdW和vdb。这又是什么呢?
在此需要引入一个叫做指