对于一个给定的凸函数
为了得到使其极小的 θ
的值,可以使用梯度下降法。顾名思义,梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。也就是说,按照下式的方式迭代,直到收敛
其中
α
为搜索的步长。
Batch GD
在机器学习中,对于损失函数(θ
为模型参数,N
为训练集的样本数)
对其采用梯度下降法求极小值的算法称为 Batch GD
(批量梯度下降)。
Mini-Batch GD
对于每次迭代,只取训练中的一小部分(n < N
)的梯度下降算法,称为 Mini-Batch GD
(小批量梯度下降)。
当
n = 1
时,该算法称为SGD
(随机梯度下降)。
Momentum(冲量梯度下降)
在
Momentum
中,引入了一个冲量 v
来缓存上一步的更新结果,当本次更新的方向与上次的方向相同时,上次的更新量能够对本次的搜索起到一个正向加速的作用。反之,会有减缓速度的作用。
RMSProp
RMSProp
是通过控制学习率来增加梯度下降的速度的。
Adam
Adam
可以理解为 Momentum
和 RMSProp
相结合的算法。