从优化的梯度信息的角度看,优化算法一般可分为三类:first-order optimization methods(一阶优化方法)以随机梯度下降算法为代表、high-order optimization methods(高阶优化方法)以牛顿法为代表、 heuristic derivative-free optimization methods(启发式无导数优化方法)以坐标下降法为代表。
一、一阶方法
方法 |
内容 |
优势 |
劣势 |
GD |
沿梯度下降方向求解最优值。该方法以线性速度收敛。 |
当目标函数为凸函数时,解是全局最优解。 |
每次参数更新都需要计算总样本的梯度,计算成本较高。 |
SGD |
更新参数是使用随机抽样的小批量计算的。该方法以次线性速率收敛。 |
每次更新的计算时间不依赖于训练样本的总数,节省了大量的计算成本。 |
选择合适的学习率是困难的,对所有参数使用相同的学习率是不合适的。在某些情况下,结果可能被困在鞍点。 |
NAG |
通过积累之前的梯度作为动量来加速当前的梯度下降,并使用动量执行梯度更新过程。 |
当梯度方向改变时,动量可以减缓更新速度,减小振荡;当梯度方向不变时,动量可以加速参数更新。动量有助于跳出局部最优解。 |
选择一个合适的学习率是很困难的。 |
AdaGrad |
学习率根据所有历史梯度的平方和进行自适应调整。 |
在训练早期,累积梯度较小,学习率较大,学习速度较快。该方法适用于处理稀疏梯度问题。各参数的学习率自适应调整。 |
随着训练时间的增加,累积梯度会越来越大,使得学习率趋于零,导致参数更新无效。手动学习率仍然是需要的。它不适用于处理非凸问题。 |
AdaDelta/ RMSProp |