梯度下降是一种迭代优化算法,用于查找函数的最小值。一般的想法是将参数初始化为随机值,然后在每次迭代时朝“斜率”的方向走一些小步。梯度下降法在有监督的学习中被广泛使用,以最小化误差函数并找到参数的最佳值。
已经为梯度下降算法设计了各种扩展。其中一些将在下面讨论:
- 动量法:该方法用于通过考虑梯度的指数加权平均值来加速梯度下降算法。使用均值可使算法以更快的方式收敛到最小值,因为消除了不常见方向的梯度。动量法的伪代码如下。
V = 0 for each iteration i: compute dW V = β V + (1 - β) dW W = W - α V
V和dW分别类似于加速度和速度。 α是学习率,β通常保持在0.9。
- RMSprop :RMSprop由多伦多大学的Geoffrey Hinton提出。直觉是将指数加权平均法应用于梯度的第二矩(dW 2 )。伪代码如下:
S = 0 for each iteration i compute dW S = β S + (1 - β) dW2 W = W - α dW⁄√S + ε
- 亚当优化:亚当优化算法结合了动量法和RMSprop以及偏差校正。这种方法的伪代码如下:
V = 0 S = 0 for each iteration i compute dW V = β1 S + (1 - β1) dW S = β2 S + (1 - β2) dW2 V = V⁄{1 - β1i} S = S⁄{1 - β2i} W = W - α V⁄√S + ε
Adam的提议者Kingma和Ba建议超参数使用以下值。
α = 0.001 β1 = 0.9 β2 = 0.999 ε = 10-8