优化器

神经网络最终是一个 最优化问题 ,在经过 前向计算和反向传播 后,Optimizer 使用反向传播梯度,优化神经网络中的参数。

1.SGD/SGDOptimizer

SGD 是实现 随机梯度下降 的一个 Optimizer 子类,是 梯度下降 大类中的一种方法。当需要训练大量样本的时候,往往选择 SGD 来使损失函数更快的收敛。

API Reference 请参考 SGDOptimizer

2.Momentum/MomentumOptimizer

Momentum 优化器在 SGD 基础上引入动量,减少了随机梯度下降过程中存在的噪声问题。用户在使用时可以将 ues_nesterov 参数设置为False或True,分别对应传统 Momentum(论文4.1节) 算法和 Nesterov accelerated gradient(论文4.2节) 算法。

API Reference 请参考 MomentumOptimizer

3. Adagrad/AdagradOptimizer

Adagrad 优化器可以针对不同参数样本数不平均的问题,自适应地为各个参数分配不同的学习率。

API Reference 请参考 AdagradOptimizer

4.RMSPropOptimizer

RMSProp优化器 ,是一种自适应调整学习率的方法,主要解决使用Adagrad后,模型训练中后期学习率急剧下降的问题。

API Reference 请参考 RMSPropOptimizer

5.Adam/AdamOptimizer

Adam 的优化器是一种自适应调整学习率的方法,适用于大多非 凸优化 、大数据集和高维空间的场景。在实际应用中,Adam 是最为常用的一种优化方法。

API Reference 请参考 AdamOptimizer

6.Adamax/AdamaxOptimizer

AdamaxAdam 算法的一个变体,对学习率的上限提供了一个更简单的范围,使学习率的边界范围更简单。

API Reference 请参考 AdamaxOptimizer

7.DecayedAdagrad/ DecayedAdagradOptimizer

DecayedAdagrad 优化器,可以看做是引入了衰减速率的 Adagrad 算法,解决使用Adagrad后,模型训练中后期学习率急剧下降的问题。

API Reference 请参考 DecayedAdagrad

8. Ftrl/FtrlOptimizer

FtrlOptimizer 优化器结合了 FOBOS算法 的高精度与 RDA算法 的稀疏性,是目前效果非常好的一种 Online Learning 算法。

API Reference 请参考 FtrlOptimizer

9.ModelAverage

ModelAverage 优化器,在训练中通过窗口来累计历史 parameter,在预测时使用取平均值后的paramet,整体提高预测的精度。

API Reference 请参考 ModelAverage