优化器¶
神经网络最终是一个 最优化问题 , 在经过 前向计算和反向传播 后, Optimizer
使用反向传播梯度,优化神经网络中的参数。
1.SGD/SGDOptimizer¶
SGD
是实现 随机梯度下降 的一个 Optimizer
子类,是 梯度下降 大类中的一种方法。 当需要训练大量样本的时候,往往选择 SGD
来使损失函数更快的收敛。
API Reference 请参考 cn_api_fluid_optimizer_SGDOptimizer
2.Momentum/MomentumOptimizer¶
Momentum
优化器在 SGD
基础上引入动量,减少了随机梯度下降过程中存在的噪声问题。 用户在使用时可以将 ues_nesterov
参数设置为 False 或 True,分别对应传统 Momentum(论文 4.1 节) 算法和 Nesterov accelerated gradient(论文 4.2 节) 算法。
API Reference 请参考 cn_api_fluid_optimizer_MomentumOptimizer
3. Adagrad/AdagradOptimizer¶
Adagrad 优化器可以针对不同参数样本数不平均的问题,自适应地为各个参数分配不同的学习率。
API Reference 请参考 cn_api_fluid_optimizer_AdagradOptimizer
4.RMSPropOptimizer¶
RMSProp 优化器 ,是一种自适应调整学习率的方法, 主要解决使用 Adagrad 后,模型训练中后期学习率急剧下降的问题。
API Reference 请参考 cn_api_fluid_optimizer_RMSPropOptimizer
5.Adam/AdamOptimizer¶
Adam 的优化器是一种自适应调整学习率的方法, 适用于大多非 凸优化 、大数据集和高维空间的场景。在实际应用中,Adam
是最为常用的一种优化方法。
API Reference 请参考 cn_api_fluid_optimizer_AdamOptimizer
6.Adamax/AdamaxOptimizer¶
Adamax 是 Adam
算法的一个变体,对学习率的上限提供了一个更简单的范围,使学习率的边界范围更简单。
API Reference 请参考 cn_api_fluid_optimizer_AdamaxOptimizer
7.DecayedAdagrad/ DecayedAdagradOptimizer¶
DecayedAdagrad 优化器,可以看做是引入了衰减速率的 Adagrad
算法,解决使用 Adagrad 后,模型训练中后期学习率急剧下降的问题。
API Reference 请参考 cn_api_fluid_optimizer_DecayedAdagrad
8. Ftrl/FtrlOptimizer¶
FtrlOptimizer 优化器结合了 FOBOS 算法 的高精度与 RDA 算法 的稀疏性,是目前效果非常好的一种 Online Learning 算法。
API Reference 请参考 cn_api_fluid_optimizer_FtrlOptimizer
9.ModelAverage¶
ModelAverage
优化器,在训练中通过窗口来累计历史 parameter,在预测时使用取平均值后的 paramet,整体提高预测的精度。
API Reference 请参考 cn_api_fluid_optimizer_ModelAverage
10.Rprop/RpropOptimizer¶
Rprop
优化器,该方法考虑到不同权值参数的梯度的数量级可能相差很大,因此很难找到一个全局的学习步长。因此创新性地提出靠参数梯度的符号,动态的调节学习步长以加速优化过程的方法。
API Reference 请参考 cn_api_fluid_optimizer_Rprop
11.ASGD/ASGDOptimizer¶
ASGD
优化器,是 SGD 以空间换时间的策略版本,是一种轨迹平均的随机优化方法。 ASGD 在 SGD 的基础上,增加了历史参数的平均值度量,让下降方向噪音的方差呈递减趋势下降,从而使得算法最终会以线性速度收敛于最优值。
API Reference 请参考 cn_api_fluid_optimizer_ASGD