作家
登录

听说你了解深度学习最常用的学习算法:Adam优化算法?

作者: 来源: 2017-07-13 11:20:51 阅读 我要评论

固然 Adam 算法在实践中要比 RMSProp 加倍优良,但同时我们也可以测验测验 SGD+Nesterov 动量来作为 Adam 的替代。即我们平日推荐在深度进修模型中应用 Adam 算法或 SGD+Nesterov 动量法。

Adam 的参数设备

  • alpha:同样也称为进修率尘土长因子,它控制了权重的更新比率(如 0.001)。较大年夜的值(如 0.3)在进修率更新前会有更快的初始进修,而较小的值(如 1.0E-5)会令练习收敛到更好的机能。
  • beta1:一阶矩估计的指数衰减率(如 0.9)。
  • beta2:二阶矩估计的指数衰减率(如 0.999)。该超参数在稀少梯度(如在 NLP 或计算机视觉义务中)中应当设置为接近 1 的数。
  • epsilon:该参数是异常小的数,其为了防止在实现中除以零(如 10E-8)。

别的,进修率衰减同样可以应用到 Adam 中。原论文应用衰减率 alpha = alpha/sqrt(t) 在 logistic 回归每个 epoch(t) 中都获得更新。

Adam 论文建议的参数设定:

测试机械进修问题比较好的默认参数设定为:alpha=0.001、beta1=0.9、beta2=0.999 和 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 优化算法在深度进修中的根本特点和道理:

  • Adam 是一种在深度进修模型顶用来替代随机梯度降低的优化算法。
  • Adam 结合了 AdaGrad 和 RMSProp 算法最优的机能,它照样能供给解决稀少梯度和噪声问题的优化办法。
  • Adam 的调参相对简单,默认参数就可以处理绝大年夜部分的问题。

论文:Adam: A Method for Stochastic Optimization

我们提出了 Adam 算法,即一种对随机目标函数履行一阶梯度优化的算法,该算法基于适应性低阶矩估计。Adam 算法很轻易实现,并且有很高的枷⒚效力和较低的内存需求。Adam 算法梯度的对角缩放(diagonal rescaling)具有不变性,是以很合适求解带有大年夜范围数据或参数的问题。该算法同样实用于解决大年夜噪声和稀少梯度的非稳态(non-stationary)问题。超参数可以很直不雅地解释,并只须要少量调剂。本论文还评论辩论了 Adam 算法与其它一些相类似的算法。我们分析了 Adam 算法的理论收敛性,并供给了收敛率的区间,我们证实收敛速度在在线凸优化框架下达到了最优。经验结不雅也展示了 Adam 算法在实践上比得上其他随机优化办法。最后,我们评论辩论了 AdaMax,即一种基于无穷范数(infinity norm)的 Adam 变体。

如上算法所述,在肯定了参数α、β1、β2 和随机目标函数 f(θ) 之后,我们须要初始化参数向量、一阶矩向量、二阶矩向量和时光步。然后当参数θ没有收敛时,轮回迭代地更新各个部分。即时光步 t 加 1、更新目标函数在该时光步上对参数θ所求的梯度、更新误差的一阶矩估计和二阶原始矩估计,再计算误差修改的一阶矩估计和误差修改的二阶矩估计,然后再用以上计算出来的值更新模型的参数θ。

2. 算法


上图伪代码为展示了 Adam 算法的根本步调。假定 f(θ) 为噪声目标函数:即关于参数θ可微的随机标量函数。我们对如何削减该函数的期望值比较感兴趣,即对于不合参数θ,f 的期望值 E[f(θ)]。个中 f1(θ), ..., , fT (θ) 表示在随后时光步 1, ..., T 上的随机函数值。这里的随机性来源竽暌冠随机子样本(小批量)上的评估和固有的函数噪声。而表示 ft(θ) 关于θ的梯度,即在实践步调 t 下 ft 对θ的偏导数向量。

该算法更新梯度的指数移动均值(mt)和平方梯度(vt),而参数 β1、β2 ∈ [0, 1) 控制了这些移动均值(moving average)指数衰减率。移动均值本身应用梯度的一阶矩(均值)和二阶原始矩(有偏方差)进行估计。然而因为这些移动均值初始化为 0 向量,所以矩估计值会误差向 0,特别是在初始时光步中和衰减率异常小(即β接近于 1)的情况下是如许的。但好消息是,初始化误差很轻易抵消,是以我们可以获得误差修改(bias-corrected)的估计 mt hat 和 vt hat。

留意算法的效力可以经由过程改变计算次序而获得晋升,例如将伪代码最后三行轮回语句替代为以下两个:


  推荐阅读

  世纪互联蓝云是这样运营微软云服务的!

【51CTO.com原创稿件】提到世纪互联蓝云,大年夜家都邑想到微软智能云Azure。切实其实,蓝云是为Microsoft Azure而生,在Microsoft Azure计算进入中国时,选择世纪互联作为落地的合作伙伴>>>详细阅读


本文标题:听说你了解深度学习最常用的学习算法:Adam优化算法?

地址:http://www.17bianji.com/lsqh/36189.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)