Adam优化算法(Adam optimization algorithm)

一.算法概述及实现步骤

Adam优化算法基本上就是将MomentumRMSprop结合在一起。

1.初始化V_{d\omega }=0,S_{d\omega }=0,V_{db}=0,S_{db}=0

2.在第t次迭代中,用mini-batch梯度下降法计算出d\omegadb

3.计算Momentum指数加权平均数

4.用RMSprop进行更新

5.计算Momentum和RMSprop的偏差修正

6.更新权重

 

Adam的参数配置:

\alpha:同样也称为学习率或步长因子,它控制了权重的更新比率(如 0.001)。较大的值(如 0.3)在学习率更新前会有更快的初始学习,而较小的值(如 1.0E-5)会令训练收敛到更好的性能。

 

\beta _{1}:一阶矩估计的指数衰减率(如 0.9)。

 

\beta _{2}:二阶矩估计的指数衰减率(如 0.999)。该超参数在稀疏梯度(如在 NLP 或计算机视觉任务中)中应该设置为接近 1 的数。


\epsilon:该参数是非常小的数,其为了防止在实现中除以零(如 10E-8)。

 

在流行的深度学习库中,参数的默认设置如下:

TensorFlow:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08.

Keras:lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0.
Blocks:learning_rate=0.002, beta1=0.9, beta2=0.999, epsilon=1e-08, decay_factor=1.
Lasagne:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08
Caffe:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08
MxNet:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8
Torch:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8

二.Adam算法分析

优势:

直截了当地实现
高效的计算
所需内存少
梯度对角缩放的不变性(第二部分将给予证明)
适合解决含大规模数据和参数的优化问题
适用于非稳态(non-stationary)目标
适用于解决包含很高噪声或稀疏梯度的问题
超参数可以很直观地解释,并且基本上只需极少量的调参

 

Adam 是一种在深度学习模型中用来替代随机梯度下降的优化算法。

Adam 结合了 AdaGrad 和 RMSProp 算法最优的性能,它还是能提供解决稀疏梯度和噪声问题的优化方法。

Adam 的调参相对简单,默认参数就可以处理绝大部分的问题。

你可能感兴趣的:(deep,learning)