当前位置: 首页 > news >正文

深度学习基础—动量梯度下降法

1.算法原理

        动量梯度下降法就是在梯度下降法的基础上,使用指数加权移动平均值,来平均梯度,这种算法比梯度下降法更快。

        如上图,损失函数的最小值是红点,椭圆是损失函数的图像,梯度下降法就像蓝线和紫线(学习率高,因此计算容易超出范围)一样,摆动着朝最小值移动。但是这种优化算法的计算步骤很多,并且靠近最小值,梯度比较小,此时算法速度减慢,也无法使用更高的学习率(否则就会出现紫色的情况)。

        从另一角度讨论,我们希望算法的运行轨迹是x轴处更快点,y轴更慢点,不希望摆动太多(增加计算),因此这就启发我们寻找更加平滑的优化路径。于是指数加权移动平均值就排上用场,因为它可以平滑计算,同时也能反应趋势。

2.算法流程

        在梯度下降法或Mini-batch 梯度下降法中添加指数加权移动平均值深度学习基础—指数加权移动平均值icon-default.png?t=N7T8http://t.csdnimg.cn/ZY628代替原来的权重更新,得到的算法如下:

        这个算法存在两个超参数:学习率a和参数b,参数b通常取值0.9。不加偏差修正的原因是b=0.9表示平均了10次的梯度,我们不需要准确估计网络初期的梯度,而10次迭代后就已经越过了这个时期,此时预估的梯度是比较准确的,因此不需要偏差修正。

        结合开始的图可以发现,对于y轴方向,正负值抵消,梯度的估计值接近0,因此减小了摆动,而x轴方向微分始终朝向最小值方向,因此优化更加平缓的向最小值方向移动,因此减少了计算,加快了收敛速度。对于接近最小值的地方,该算法预估出来的梯度值更大,因此也加快了速度。

3.如何理解

        如何理解算法:通常优化函数是一个碗状形状,最小值在碗底。优化路径像从碗边滚下的小球,小球的加速度就是梯度(dW、db),小球的速度就是动量项(VdW、Vdb)。梯度下降法更像离散的运动轨迹,因为小球是每计算出一个优化值,就向那个地方直接跳跃。而动量梯度下降法是连续的运动轨迹,指数加权移动平均值平滑了梯度,进而速度也更加平滑,小球有了连续运动的惯性,因此赋予了小球动量。这也是动量梯度下降法名字的由来。

        注意:有些文献去掉了(1-b),这也不错,但是去掉(1-b)后往往会导致VdW和Vdb扩大,于是可能需要调整学习率a,从而控制权重更新不那么快。这更加繁琐,至于使用哪个公式,顺手就行。


http://www.mrgr.cn/news/1855.html

相关文章:

  • 如何将 ONLYOFFICE 与 Moodle 进行集成,让师生在学习管理平台中协作编辑办公文档
  • uniapp在线下载安装包更新app
  • FastICENet:一种用于航空遥感河流冰图像的实时精确语义分割模型
  • 数值计算引擎:搭建远程容器开发环境
  • 【数据结构】关于冒泡排序,选择排序,插入排序,希尔排序,堆排序你到底了解多少???(超详解)
  • 蒟蒻的尊严被打得一败涂地17
  • QT翻金币小游戏(含音频图片文件资源)
  • 探索数字媒体产业园区的未来之路
  • 每日OJ_牛客_反转部分单向链表
  • 二叉树详解(1)
  • [星瞳科技]OpenMV有哪些合适的配件?
  • 【网络】UDP和TCP之间的差别和回显服务器
  • VSCode插件离线安装
  • 负载均衡详解
  • SDK游戏盾有什么作用?APP被攻击使用游戏盾SDK如何防护?
  • Spring Security之登录跳转
  • 【1.0】vue3的创建
  • LMA——基于 LM 的游戏和挑战代理架构探索
  • 设计模式-中介者模式
  • Monaco Editor组件使用详解