优化算法总结
最后更新于
最后更新于
深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam 发展历程. 所有的这些优化算法, 有着相似的形式. 可以使用同一个框架表示.
首先定义符号. 为待优化参数, 为目标函数, 为初始学习率.
在每步中:
计算目标函数关于当前参数的梯度:
根据历史梯度计算一阶动量和二阶动量: ;
计算当前时刻的下降梯度:
根据下降梯度更新参数:
对于各种各样的优化算法, 第三步, 第四步基本是一致的, 主要差别体现在1和2上.
下面是常见的优化算法表现的演示.
上图是各种优化算法在损失函数平面上的表现.
上图是各种优化算法在遭遇鞍点(梯度为0, Hessian矩阵有正的和负的特征值, 不定)时的表现. 鞍点是各种优化算法共同面临的难点.