辰,深度学习中常用的优化算法面试常问,排骨

在练习神经网络的时分需求运用到优化算法,终究咱们都是经过求解价值函数的最优化问题来求解模型的参数。有的时分,练习一个神经网络模型或许需求几百上千台机器一起练习几个月,经过运用优化算法能够节约练习的时间加快模型的收敛。本篇文章首要介绍一下常用的优化算法

  • 梯度下降算法
  • 指数加权均匀算法
  • 动量梯度下降
  • RMSprop算法
  • Adam优化算法

常用的优化算法在面试的时分也会经常被问到。

一、梯度下降算法

在练习模型之前会先界说一个价值函数,然后经过不断的迭代练习数据运用梯度下降算法来削减每次迭代的差错,然后使得价值函数最小化。梯度下降算法首要包含三种,随机梯度下降batch梯度下降mini-batch梯度下降。最常用的是mini-batch梯度下降算法。

  • 随机梯度下降

随机梯度下降算法是指在练习模型的时分,每次迭代只从练习数据中随机抽取一个数据来核算梯度更新模型的参数。随机梯度下降算法永久无法收敛,简单受辰,深度学习中常用的优化算法面试常问,排骨到噪声的搅扰练习时间长终究会环绕大局最小值或许部分极小值震动。迭代过程中,价值函数的丢失值动摇十分严峻。

  • batch梯度下降

batch梯度下降算法是指在练习模型的时分,每次迭代时运用一切的练习数据来核算梯度更新模型的参数。batch梯度下降算法适用于小数据集的练习,对鬼三哥新浪博客于大数据集(大于2000)不太习惯,由于每次练习的时分都要运用一切的练习数据,会导致需求耗费很多的内存,添加电脑的核算量,核算时间长。batch梯度下降不简单遭到噪声数据的搅扰,在迭代的时分能够确保向大局最小值或部分极小值的方向进行收敛。迭代过程中,价值函数的丢失值比较平稳,根本不会动摇。

  • mini-batch梯度下降

mini-batch梯度下降算法是指在练习模型的时分,每次迭代时辰,深度学习中常用的优化算法面试常问,排骨会运用一个mini-batch数据来核算梯度更新模型的参数,这个mini-batch一般取64、128、256、512等,一般选用2^n作为一个mini-batch,契合电脑的内存结构在必定程度上能够加快核算机的核算速度,然后削减练习的时间。mini-batch梯度下降算法是最常用的梯度下降算法mini-batch对核算机的内存要求不高,收敛速度相对较快,在迭代的时分不能确保每次迭代都像大局最小值进行收敛,可是全体的趋势是向大局最刘勋德小值进行收敛梁久林的。当mini-batch取1时,就变成了随机梯度下降算法,当mini-batch的巨细为整个练习数据集的巨细时就变与致虚妹丈成了batch梯度下降。迭代过程中,价值函数的丢失值会有动摇。

二、指数加辰,深度学习中常用的优化算法面试常问,排骨权均匀值

指数加权均匀值,也被称为移动均匀值,从姓名能够看出来它棵体其实也是一种求均匀值的算法,在后边介绍动量、RMSPropAdam的时分都需求用到它。

  • 指数加权均匀值核算办法

公式:

指的是系数一般取0.9,V(n)​表明的是当时的指数加权均匀值表明的是当时的值,下面用一个例子来详细介绍一下指数加权金仁英微博均匀值的核算:

咱们有一组网站的访问量数据:

表明的是每天的访问量(万),下面咱们来核算一下指数加权均匀值,其间取0.巴塞塔托9

  • 系数关于加权均匀值的影响

指数加权均匀值的核算公式:

从公式能够看出,当越大时成果上一时间的指数加权均匀值V(n−1)的影响越大,当时时间(n)影响越小,导致的成果便是指数加权均匀值无法更好的反映当时的改变趋势,或许会导致曲线右移但曲线更滑润。假如当越小时,指数加权均匀值能够及时的反映出当时的改变趋势,可是曲线的动摇起伏会比较大。如下图所示

上图中,横轴表明的是天数,纵轴表明的是温度。经过上图能够发现,其间赤色曲线的为0.9,黄色曲线的小于0.9,绿色曲线的大于0.9,当越来越大时,指数加权均匀值曲线会渐渐的向右移动,反映温度的改变会延时,曲线会越来滑润。

指数加权均匀算法相关于直接求均匀值算法的优势在于,指数加权均匀值只需求极小的空间就能够核算出近似均匀值,孟静简历而直接运用均匀值算法需求保存曾经一切的数据,相对而言指数加权均匀值的核算出来均匀值的精度没有那么高,它是献身了必定的精度来交换空间和速度的。由于它在空间上具有极大的优势,所以运用规模仍是很广泛。

  • 为什么叫指数加权均匀值

经过上面的公式能够发现,的权重系数辰,深度学习中常用的优化算法面试常问,排骨呈现出一个指数的改变趋势。

  • 在核算V(n)的时分看起来如同驭奴用到了一切的均匀了之前一切的天数,实际上只均匀了一部分,当系数下降到峰值(1-)的1/e(0.3678)时能够忽略不计,其间e(2.71828)表明的是天然常数,即当辰,深度学习中常用的优化算法面试常问,排骨的权重系数小于峰值的0.3678时,就能够以为它关于成果没有影响。

上式中=(1−),所以当等于0.9时,等于0.1,万世战魂所以0.9^10<=1/e。所以十天曾经的影响能够忽略不计,就相当于均匀了十天的温度。

  • 误差批改

在运用指数加权均匀算法核算的时分辉木誉存在一个问题便是,刚开始运用指数加权算法核算的时分初始值都是十分小的,误差批改便是用于批改初始值的。假如你关于初始值不太重视,就能够不必运用误差批改。

误差批改公式:

当n越来越大时,^n趋于0,分母趋于1,所以误差批改关于后边的加权均匀值没有影响,误差批改的作用仅在n较小的时分有用,即初始化的时分。

三、动量梯度下降算法

动量梯度下降算法在梯度下降算法的基础上做了一些优化,梯度下降算法的收敛如下图所示

其间黑点表明的是起点红点表明的是结尾。经过梯度下降算法不断的迭代,渐渐的从黑点移动到红点的方位,经过上图能够发现黑点的移动轨道在y方向上一向存在上下动摇,而这个关于黑点移动到红点的方位没有任何的协助,反而是在浪费时间,由于咱们更期望削减这种不必要的核算,加快x轴方向上的移动脚步,如下图所示

而上图正是动量梯度下降算法所寻求的作用,那么它到底是怎么完成的呢?

  • 梯度下降算法

优化参数权重w和偏置b,梯度下降算法参数更新公式如下:

动量梯度下降算法参数更新公式如下:

上式沈巍x鬼面中表明学习率,经过上式能够发名品ol现,动量梯度下降算法在更新参数的时分并不是直接运用的梯度,它还运用到曾经的梯度,详细到多少,与的巨细有关,越大运用到曾经的梯度越多,越小运用到曾经的梯度越小。

由于梯度在y轴方向上梯度是有正有负的所以均值就近似为0而梯度x轴方向上的梯度都是共同的,所以能够为x轴方向上供给动量加快更新。由于动量梯度下降算法,在更新参数的时分不只运用到了当时的梯度还运用到了曾经梯度的均值作为动量,当堕入到部分极小值(梯度接近于0),在更新的时分动量梯度下降算法还能够运用曾经梯度的均异世之青睐究极龙值来跳出部分极小值,而梯度下降算法只会陷魁岐佳园入到部分极小值无法跳出,在运用动量梯度下降算法的时分一般能够取0.9。

四、RMSprop算法

RMSprop算法全称root mean square prop,RMSprop算法的思维和Moment算法的思维是共同的都是经过削减在y轴方向上的颤动,加大x轴方向上的移动步长。而在实camboy现上略有不同,Moment首要是运用累积曾经的梯度来完成加快,而RMSprop算法的思维是运用梯度下降算法在y轴方向上的梯度比较大,而在x轴方向上的梯度相对较小。在进star513行参数更新的时分,让y轴方向上的梯度除以一个大的数,这样y轴方向的参数更新的起伏就小。而x轴方向上的梯度除以一个小的数,这样x轴方向上的参数更新的起伏就大。然后完成了,减小了y轴方向上的更新步长,增大了x轴方向上的更新步长,使得算法能够更快的收辰,深度学习中常用的优化算法面试常问,排骨敛。更新公式如下:

为了防止在更新参数的时分,分母为0,所以需求在分母上加上一个极小的数,一般取10^(−8)。(dw)^2表明的是参数w的梯度的平方也称为微分的平方

五、Adam算法

Adam算法全称Adaptivelwscam Moment Estimation,首要是结合了Moment算法RMSprop算法。公式如下:

参数的更新:

在运用指数加权均匀值算法的时分,或许存在初始化的误差比较大的状况,能够经过下面的办法进行误差批改:

上式中的t表明的是迭代的次数,一般状况下咱们都不会太留意初始化值,由于函数收敛一般都需求迭代很屡次。1​指的是Moment的参数一般取0.9,2​指的是RMSprop的参数,一般取0.999,首要是用来防止分母为娄文鹏0的状况取10^(−8)。

六、总结

最终咱们用两张图来比较一下算法的体现,这张图表明的是在相同的等高线的状况下各个算法的收敛状况

下面这张图表明的是不同算法在遇到鞍点时的体现

更多的优化算法请参阅:http:辰,深度学习中常用的优化算法面试常问,排骨//ruder.io/optimizing-gradient-descent/index.html

最近开通了微信大众号,在微信大众号上,共享了一些材料,查找"Python机器学习之路"重视我即可获取,欢迎来找我玩。
点击展开全文

上一篇:

下一篇:

相关推荐