【机器学习300问】81、什么是动量梯度下降算法?

        动量梯度下降算法(Momentum)是利用指数加权移动平均的思想来实现梯度下降的算法。让我们先来回顾一下基础的梯度下降方法以及看看它有哪些不足之处。接着引出动量梯度下降算法,在理解了它的原理后看看它是如何规避之前方法的不足的。

        如果不知道指数加权平均是什么?可以看看我上一篇文章:

【机器学习300问】80、指数加权平均数是什么?icon-default.png?t=N7T8http://t.csdnimg.cn/4tFBg

一、通过举例来感性认识

(1)基础梯度下降法:缓慢探索的徒步者

        想象你是一位徒步者,站在一座多山的地形上,你的目标是到达最低点——山谷底部。你只能看到你周围有限的视野,看不到整个地形的全貌。为了决定往哪个方向走,你每走一步都会探测脚下的斜率,即地面倾斜的方向,然后沿着这个方向向下走一小步。这就是基础梯度下降法的工作原理,它按照当前位置的梯度(即损失函数下降最快的方向)逐步调整参数,以期达到最小损失值。

        问题:如果地形中有许多小山包和凹陷(局部极小值),基础梯度下降可能会在这些局部低点附近徘徊,很难跳出并找到全局最低点。此外,在山谷较为平坦的区域,由于梯度变小,前进速度会大大减慢,可能导致收敛速度很慢。

(2)动量梯度下降法:带上滑板的探险者

        现在,我们将徒步者换成了一个携带滑板的探险者,还是同样站在山顶,目标相同——到达山谷底部。除了根据当前的斜率决定滑行方向外,他还拥有一个特别的滑板,这个滑板能够累积之前的滑行速度。

        当探险者开始下滑时,他的滑板不仅受到当前斜坡直接影响,还保留了前一次滑行的动量。这意味着,如果他在连续的斜坡上滑行,即使某个斜坡不如之前的陡峭,他也不会立刻慢下来,而是会凭借着积累起来的速度继续快速前进。相反,如果遇到反向的斜坡(相当于梯度方向的突然改变),滑板的动量也会帮助他更加平滑地调整方向,而不是立刻停下来或倒退。

二、通过定义来理性认识

        动量梯度下降(Momentum Gradient Descent)算法是一种用于加速梯度下降算法收敛的方法,在数学上,它通过在梯度更新过程中引入“动量”来平滑序列变量更新,具体定义如下:

        对于一个要优化的目标函数J(\theta) ,其中\theta是参数向量,动量梯度下降算法在每次迭代t时对参数\theta进行更新,更新规则为:

v_t = \gamma v_{t-1} + \eta \nabla J(\theta_{t-1})

\theta_t = \theta_{t-1} - v_t

在这个更新规则中:

  • v_t是在时间步t的更新向量(可被认为是速度)它代表参数向量沿负梯度方向移动的大小和方向。
  • \gamma是动量因子(可称为摩擦系数)介于[0, 1)区间,它衡量前一时间步更新向量v_{t-1}对当前更新的影响。较大的\gamma值意味着前一步更新的影响更加持久,使得算法在参数空间内移动更加平滑。
  • \eta是学习率,控制每一步沿梯度方向更新的大小。
  •  \nabla J(\theta_{t-1})是目标函数J关于参数向量\theta\theta_{t-1}处的梯度,指示了目标函数下降最快的方向。

        通过这种方式,动量项v_t累积了过去的梯度信息,赋予了更新过程一种“惯性”,有助于算法在优化过程中更快地穿越平坦区域,减少振荡,并能更好地逃离局部极小值点。因此,动量梯度下降算法确实利用了指数加权平均的数学原理来改善了标准梯度下降的性能。

三、动量梯度下降法的优点

        动量梯度下降法通过引入动量机制,提高了在非凸优化问题中寻找较好解的能力,并且通常能够更快且更稳定地收敛。具体来说有如下优点:

(1)减少振荡

        在局部极小值附近,由于动量的作用,动量梯度下降能够减少在两侧的来回振荡,更容易跳出局部最优,寻找全局最优解。

(2)加快收敛

        在接近最优解的平坦区域,即便梯度变小,动量项仍能提供一定的更新方向,维持一定的下降速度,加快收敛过程。

(3)克服局部极小值

        在复杂的损失函数地形中,动量可以帮助算法更有效地穿越局部极小值(梯度接近零但不是极值点的地方),因为它结合了历史信息,不会轻易停止。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/624271.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java开发大厂面试第01讲:String 的特点及其重要的方法都有哪些?

几乎所有的 Java 面试都是以 String 开始的,如果第一个问题没有回答好,则会给面试官留下非常不好的第一印象,而糟糕的第一印象则会直接影响到自己的面试结果,就好像刚破壳的小鹅一样,会把第一眼看到的动物当成自己的母…

制药行业新突破:CANOpen转PROFINET网关配置案例解析

在药品制造工业环境中,实现CanOpen转Profinet协议之间转换的网关配置是一个关键过程,确保了不同通信协议的设备能够互相协作。以开疆智能CanOpen转Profinet网关为例,以下是其配置流程:首先安装CanOpen转Profinet网关的配置软件&am…

Linux禁用危险命令和防止误操作

禁用rm命令 编辑/etc/profile文件,结尾添加 ###### rm prevent ###### alias rmecho can not use rm command使用source命令生效 source /etc/profile效果 使用mv命令代替rm命令 将需要删除的文件移动到特定的目录,比如/home/sharedir/ 在.bashrc目…

波卡 2024 一季度报告:XCM 创下历史新高,JAM 链将引领 Polkadot 2.0 新风向

作者:Nicholas Garcia|Messari 研究分析师 编译:OneBlock 原文:https://messari.io/report/state-of-polkadot-q1-2024 近期,Messari Crypto 发布了 Polkadot 2024 年 Q1 状况的数据报告。OneBlock 为你梳理了本篇报…

python批量为图片做灰度处理

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.总结

MES管理系统在柔性制造中有何重要作用

在当今这个瞬息万变的商业环境中,制造业正经历着一场前所未有的转型。消费者需求的多样化和市场动态的快速变化要求企业必须具备高度的灵活性和适应性。为了应对这些挑战,柔性制造策略应运而生,它以其快速响应和灵活调整的能力,成…

vue3中的watch侦听器

在有些情况下,我们需要在状态变化时执行一些“副作用”:例如更改 DOM ,或是根据异步操作的结果去修改另一处的状态。在组合式 API 中,我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数。 watch 函数可以侦听被 ref…

计算机的一些基础知识分享

windows操作系统中,用于查看当前文件下的目录是? 在Windows操作系统中,如果您想要查看当前文件夹下的目录,您可以使用命令提示符(CMD)或PowerShell。在这些环境中,可以使用以下命令:…

bmi088-linux驱动(I2C)

电气特性: 在正常工作时,gyro 工作电流为5mA,acc 工作电流为150uA。 SPI 时钟和数据电平范围 0 -3.6 结构框图如下: 硬件连接图如下: note: 1. 通过PS引脚选择通讯协议,上拉引脚则选择的是I2C…

HCIP的学习(16)

BGP的状态机 ​ OSPF的状态机是在描述整个协议的完整工作过程,而BGP的状态机仅描述的是对等体关系建立过程中的状态变化。-----因为BGP将邻居建立过程以及BGP路由收发过程完全隔离。 ​ IGP协议在启动后,需要通过network命令激活接口,从而使…

企业运维背后的故事:TASKCTL带你了解日常工作与技术演进

今天,作为一名经验丰富、从业多年经常与运维人员打交道的人,我想与大家聊聊运维的日常工作、部门协调以及未来发展,希望能为即将转行或正在从事运维工作的你,提供一些新的视角和启发。 运维的日常工作:挑战与乐趣并存 …

朱啸虎:AI应用明年肯定大爆发;第3款爆火AI游戏出现了;AI应用定价策略「不能说的秘密」;人类数据不够用了怎么办 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 1. 换你来当爹:国内第3款爆火出圈的AI游戏应用,hhh 太搞笑了 周末的时候,社群里伙伴们开始玩一款「换你来当爹」的…

[Java EE] 多线程(九):JUC剩余部分与线程安全的集合类(多线程完结)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

群晖 Synology DSM7 过热关机解决方法

最近已经提示我过热关机过两次了,这两次一次是用虚拟机,一次是批量使用Synology Photos批量上传照片: 但是我没有对主机进行任何的位置移动以及硬件修改操作,散热环境没有发生变化。以前使用从来没有出现过这个问题,同…

MySQL Workbench创建数据库和景点评价表

创建一个数据库和一张用于存储景点评价的表。 一 创建数据库 1.双击选择 local instance MySQL80 2. 输入密码 连接成功 3. 创建 mydatabase数据库 4.确认创建 mydatabase数据库 5.选择finish 6.选择 Schemas查看刚才创建的mydatabast数据库 二、创建表 1.创建表 2.设置表信…

视觉SLAM十四讲:从理论到实践(Chapter3:三维空间刚体运动)

前言 学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可 目标 理解三维空间的刚体运动描述方式:旋转矩阵、变换矩阵、四元数和欧拉角。掌握Eigen库的矩阵、几何模块的使用方法。 3.1 旋转矩阵 3.1.1 点、向量和…

建立一物一码数字化营销体系,纳宝科技助力五丰黎红在调味品行业再创佳绩!

五丰黎红隶属于华润五丰集团,公司历史可溯源至1979年,前身是汉源花椒油厂,是一家拥有悠久历史的调味品品牌。一直以来,五丰黎红坚持调味品原料、研发、生产、加工一体化的全产业链经营模式,以“质量”为核心&#xff0…

快捷自由定时重启、注销、关机

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,进入定时器编辑版块 2、左侧目录新建一个定时器 3、选择需要的周期,这里是每天0点,一次执行一条 4、添加具…

iOS copy的正确姿势

参考文章 知识准备(理解堆栈) 堆区: 程序员管理 若程序员不释放,由os释放不同于数据结构中的堆,堆区的结构类似于数据结构中的链表栈区: 由编译器来管理 存放函数参数值,局部变量的值等结构类似…

Visual Studio下载安装+详细使用学习

一、下载 官网:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 点击下载,一般用社区版免费的开发既可以。 百度网盘分享: 链接:https://pan.baidu.com/s/1W6-NY4ORsFzKTB3r77XFtw 提取码&…