一文搞懂深度学习中常用的优化算法

⼀⽂搞懂深度学习中常⽤的优化算法
在训练神经⽹络模型的时候需要使⽤到优化算法,最终我们都是通过求解代价函数的最优化问题来求解模型的参数。有的时候,训练⼀个神经⽹络模型可能需要⼏百上千台机器同时训练⼏个⽉,通过使⽤优化算法可以节省训练的时间加快模型的收敛。本篇⽂章主要介绍⼀下常⽤的优化算法
三诺h222指数加权平均算法
动量梯度下降
RMSprop算法
Adam优化算法
常⽤的优化算法在⾯试的时候也会经常被问到。
⼀、梯度下降算法
在训练模型之前会先定义⼀个代价函数,然后通过不停的迭代训练数据利⽤梯度下降算法来减少每次迭
cd11
代的误差,从⽽使得代价函数最⼩化。梯度下降算法主要包括三种,随机梯度下降、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梯度下降。
⼆、指数加权平均值
指数加权平均值,也被称为移动平均值,从名字可以看出来它其实也是⼀种求平均值的算法,在后⾯介绍动量、RMSProp和Adam的时候都需要⽤到它。
指数加权平均值计算⽅法
公式:,其中指的是系数通常取0.9,表⽰的是当前的指数加权平均值,表⽰的是当前的值,下⾯⽤⼀个例⼦来详细介绍⼀下指数加权平均值的计算:
我们有⼀组⽹站的访问量数据:
其中表⽰的是每天的访问量(万),下⾯我们来计算⼀下指数加权平均值,其中取0.9
=0
=+=0.9 * 0+ 0.1 * 5=0.5
=+=0.9 * 0.5+ 0.1 * 6=1.05
系数对于加权平均值的影响
指数加权平均值的计算公式:从公式可以看出,当越⼤时结果与上⼀时刻的指数加权平均值的相关性越⼤,与当前时刻相关性越⼩,导致的结果就是
魁蒿
指数加权平均值⽆法更好的反映当前的变化趋势,可能会导致曲线右移,曲线更平滑。如果当越⼩时,指数加权平均值能够及时的反映出当前的变化趋势,但是曲线的变化幅度会⽐较⼤。如下图所⽰上图中,横轴表⽰的是天数,纵轴表⽰的是温度。通过上图可以发现,其中红⾊曲线的为0.9,黄⾊曲线的
计算机集成制造系统
⼩于0.9,绿⾊曲线的⼤于0.9,当越来越⼤时,指数加权平均值曲线会慢慢的向右移动,反映温度的变化会延时,曲线会越来平滑。
指数加权平均算法相对于直接求平均值算法的优势在于,指数加权平均值只需要极⼩的空间就可以计算出近似平均值,⽽直接使⽤平均值算法需要保存以前所有的数据,相对⽽⾔指数加权平均值的计算出来平均值的精度没有那么⾼,它是牺牲了⼀定的精度来换取空间和速度的。由于它在空间上具有极⼤的优势,所以应⽤范围还是很⼴泛。
为什么叫指数加权平均值
氢氧化铁
通过上⾯的公式可以发现,的权重系数呈现出⼀个指数的变化趋势。
v =n β∗v +n −1(1−β)∗θn βv n θθβv 0v 1β∗v 0(1−β)∗θ1v 2β∗v 1(1−β)∗θ2βv =n β∗v +n −1(1−β)∗θn
βv n −1θn βββββv n =β∗v +(1−β)∗θn −1n
=β∗(β∗v +(1−β)∗θ)+(1−β)∗θn −2n −1n
=β∗v +β∗(1−β)∗θ+(1−β)∗θ2n −2n −1n
=β∗v +β∗(1−β)∗θ+...+(1−β)∗θn 0n −11n
θ
在计算的时候看起来好像⽤到了所有的平均了之前所有的天数,实际上只平均了⼀部分,当系数下降
到峰值(1-β)的1/e(0.3678)时可以忽略不计,其中e(2.71828)表⽰的是⾃然常数,即当权重系数⼩于峰值的0.3678时,就可以认为它对于结果没有影响。,其中,所以当等于0.9时,等于0.1,所以0.9^10=1/e。所以⼗天以前的的影响可以忽略不计,就相当于平均了⼗天的温度。
偏差修正
在使⽤指数加权平均算法计算的时候存在⼀个问题就是,刚开始使⽤指数加权算法计算的时候初始值都是⾮常⼩的,偏差修正就是⽤于修正初始值的。如果你对于初始值不太关注,就可以不⽤使⽤偏差修正。
偏差修正公式:当n越来越⼤时,趋于0,,所以偏差修正的作⽤仅在n较⼩的时候有⽤,即初始化的时候。三、动量梯度下降算法
v n θ(1−ϵ)=1/ϵ1/e ϵ=(1−β)βϵθv =n ′1−βn
v n
βn v =n ′v n
动量梯度下降算法在梯度下降算法的基础上做了⼀些优化,梯度下降算法的收敛如下图所⽰
其中⿊点表⽰的是起点,红点表⽰的是终点。通过梯度下降算法不停的迭代,慢慢的从⿊点移动到红点的位置,通过上图可以发现⿊点的移动轨迹在y⽅向上⼀直存在上下波动,⽽这个对于⿊点移动到红点的位置没有任何的帮助,反⽽是在浪费时间,因为我们更希望减少这种不必要的计算,加速x轴⽅向上的移动步伐,如下图所⽰假声唱法
⽽上图正是动量梯度下降算法所追求的效果,那么它到底是如何实现的呢?

本文发布于:2024-09-24 14:27:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/328639.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:配煤公式
标签:算法   梯度   平均值   下降   加权
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议