恩佐2登录 > SEO培训 > 深度学习里的一些优化算法

深度学习里的一些优化算法

admin SEO培训 2020年01月01日

  在深度学习中我们定义了损失函数以后,会采取各种各样的方法来降低损失函数。不过损失函数的数值只是我们用来优化模型中参数的一个参考量,我们是通过优化损失函数来间接地优化模型参数,并提高模型的度量指标。假设我们需要优化的目标函数为

  在深度学习的训练中,训练集中的样本数量往往是成千上万的,通过遍历每一个样本对期望进行计算所需要的计算量是非常大的。在实际中,往往是在训练集中少量采样一些数据拿来计算,然后求出这些样本的平均值。

  第二,训练集中经常会存在冗余的情况,恩佐2登录完全有可能出现相同数据,如果重复了m次,那么用小批量算法就可以少花m倍的时间。

  随机梯度下降法(SGD)是一种非常经典的优化算法,常应用在机器学习中,尤其是深度学习中。首先从训练集中随机选取m个样本的生成得到一个小批量,然后计算他们的梯度均值。

  动量是一个物理学中类比过来的概念,新宝7登录它是为了解决经典的SGD收敛速度慢的问题而提出的。它能够保留上一轮更新中的参数更新增量,并加入该轮的梯度。

  学习率本身就是很难调试的一个超参数,这是工业界公认的事情。动量算法只能在一定程度上缓解调参的压力,但代价是多引入了一个超参数。总有人会想有没有更简便的方法,于是就提出来了Adagrad, AdaDelta, Adam, RMSProp, 动量RMSProp等自适应学习率算法。本节梳理各个算法流程,并进行对比。

  Adagrad算法可以说是与SGD算法的框架非常像了,我们来对比一下区别之处:

  AdaDelta算法是adagrad算法的延伸和改进,他们的不同之处在于:

  RMSProp算法实际上对AdaGrad算法做出了改进,修改了累积平方梯度和参数更新量的计算方法,在非凸情况下比AdaGrad效果较好。

  Adam算法与其他的优化算法相比,区别还是比较大的,在参数更新的过程中,首先计算了有偏一阶矩和二阶矩,然后修正一阶矩和二阶矩的偏差,再用修正后的一阶和二阶矩求解参数更新量,最后利用参数更新量对参数进行更新。

  前面提到的优化方法基本上都是利用一阶导数进行优化的方法,常用的二阶近似方法有:牛顿法,共轭梯度法,BFGS.以后有机会再来更新吧.

  文章作者:Tyan博客:CSDN 简书 声明:作者翻译论文仅为学习,如有侵权请...

  文章作者:Tyan博客: CSDN 简书 声明:作者翻译论文仅为学习,如...

  听说你了解深度学习最常用的学习算法:Adam优化算法?-深度学习世界深度学习常常需要...

  前言 梯度下降算法现在变的越来越流行,但是对于使用者来说,它的优化过程变的越来越黑盒。本文我们介绍下不通梯度下降算...

标签: seo算法