各种优化器Optimizer原理:从SGD到AdamOptimizer
(一)优化器Optimizer综述:
优化器是神经网络训练过程中,进行梯度下降以寻找最优解的优化方法。不同方法通过不同方式(如附加动量项,学习率自适应变化等)侧重于解决不同的问题,但最终大都是为了加快训练速度。
对于这些优化器,有一张图能够最直接地表现它们的性能:
这里就介绍几种常见的优化器,包括其原理、数学公式、核心思想及其性能;
这些优化器可分为三大类:
- 基本梯度下降法,包括标准梯度下降法(GD, Gradient Descent),随机梯度下降法(SGD, Stochastic Gradient Descent)及批量梯度下降法(BGD, Batch Gradient Descent);
- 动量优化法,包括标准动量优化方法(MomentumOptimizer)、牛顿加速梯度动量优化方法(NAG, Nesterov accelerated gradient)等;
- 自适应学习率优化算法,包括AdaGrad算法,RMSProp算法,Adam算法等;