【机器学习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)克服局部极小值

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring如何控制Bean的加载顺序

前言 正常情况下,Spring 容器加载 Bean 的顺序是不确定的,那么我们如果需要按顺序加载 Bean 时应如何操作?本文将详细讲述我们如何才能控制 Bean 的加载顺序。 场景 我创建了 4 个 Class 文件,分别命名为 FirstInitialization Se…

如何使用 ERNIE 千帆大模型基于 Flask 搭建智能英语能力评测对话网页机器人(详细教程)

ERNIE 千帆大模型 ERNIE-3.5是一款基于深度学习技术构建的高效语言模型,其强大的综合能力使其在中文应用方面表现出色。相较于其他模型,如微软的ChatGPT,ERNIE-3.5不仅综合能力更强,而且在训练与推理效率上也更高。这使得ERNIE-3…

第三节课,功能2:开发后端用户的管理接口-- postman--debug测试

一、如何使用postman 网址: https://www.postman.com/downloads/ 【Postman小白教程】五分钟学会如何使用Postman~_哔哩哔哩_bilibili postman安装使用_bowser agent在postman哪里-CSDN博客 二、下载后 登录,开始测试 2.1 关于postman 报错&#…

第十五届蓝桥杯python B组省赛

前言: 这是我第一次参加蓝桥杯,成绩并不理想,我反思了一下午,我的问题主要是知识点学不透,题目做的太少,而且学习的时候少数时间不专心,但是,我能感觉到我的学习能力并不弱&#xf…

分布式锁讲解

概括 分布式锁是一种用于在分布式系统中实现同步机制的锁。在单机系统中,我们可以使用如Java中的synchronized关键字或者 ReentrantLock来实现线程间的同步,但在分布式系统中,由于多个节点(服务器)之间的并发操作&am…

C语言实现扫雷游戏完整版

游戏介绍: 目录 游戏介绍: 游戏框架: 游戏具体功能实现: 棋盘的定义: 棋盘初始化: 棋盘打印: 棋盘布置雷: 棋盘扫雷: 爆炸展开一片: 获取周围八个…

WP Rocket插件下载:加速您的WordPress网站,提升用户体验

在互联网速度决定用户体验的今天,一个快速加载的网站对于吸引和保留访问者至关重要。WP Rocket插件,作为一款专为WordPress设计的高性能缓存插件,提供了一套完整的解决方案,帮助您优化网站性能,提升用户体验。 [WP Ro…

Linux随记(九)

一、在bclinux Euler 21.10 安装oracle19c客户端 (为了使用sqlplus 、expdp、impdp、sqlldr等指令) #环境和说明 系统:BigCloud Enterprise Linux For Euler 21.10 LTS 为了使用sqlplus 、expdp、impdp、sqlldr等指令。 下面是安装步骤 &…

力扣打卡第二天

206. 反转链表 class Solution { public:ListNode* reverseList(ListNode* head) {// //迭代法// ListNode *pre nullptr;// ListNode *curr head;// while(curr){// ListNode *next curr -> next;// curr -> next pre;// pre curr;// curr next;/…

hadoop启动后没有namenode,datanode等解决方法

之前用的是虚拟机,在虚拟机上安装的hadoop,但是后来,电脑恢复出厂设置了,什么都重新开始。就在本地安装 Linux 子系统。 但是,有时候start-dfs.sh后,jps出现错误。 像这种拒绝连接 解决办法就是如下&…

vivado新版本兼容老版本,vitis classic兼容sdk教程

new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本,选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核,点击升级 在项目工程文件夹…

git使用注意事项事项

以下操作均在gitee平台上实现 文章目录 1、本地仓库和远程仓库有冲突2、git提交自动忽略某些文件3、git无法push提交到远程仓库 1、本地仓库和远程仓库有冲突 在web端修改了文件内容或者删除了文件,本地仓库需要重新把远程仓库拉取到本地,或者强制提交到…

信息系统架构模型_1.单机应用模式和客户机/服务器模式

1.单机应用模式(Standalone) 单机应用系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序。这些软件系统,从今天的软件架构上来讲,是很简单,是标准的单机系统。当然至今,这种复杂的…

ssrf(第二弹)

四,post请求 1.打开环境,提示说发一个HTTP POST请求,ssrf是用php的curl实现的.并且会跟踪302跳转。 2.用dirsearch扫一下常见的端口,看到有三个可以访问的页面 3.构造伪协议,因为要通过172.0.0.1访问,我们…

Java毕设之学院党员管理系统的设计与实现

运行环境 环境说明: 开发语言:java 框架:springboot,vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7,8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) Maven包:Maven3.3.9 系统实现 管理员功能实现 党员管理 管理员进入指定功能操作…

摩菲Murphy显示器显示表 总线编程器维修PV780B

Murphy仪器维修包括:摩菲数字显示器;摩菲监视仪表;摩菲CAN总线控制器等维修 维修故障包括:黑屏、指示灯无显示,触摸屏上电无反应, 上电蓝屏、白屏,通电几分钟后屏幕变为蓝屏,主板故…

荷香堪筑梦,鸳鸯和月寻。(变相BFS搜索)

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 3 4 2 .... ***. ..a. 输出 yes 思路: 根据题意,这里 1 s 可以移动多次,我们将每次可以移动避开雪的的位置存储起来,判断当…

每天五分钟深度学习:数学中的极值

本文重点 在数学领域中,极值是一个极其重要的概念,它不仅在纯数学理论研究中占据核心地位,而且在工程、物理、经济等实际应用领域也发挥着不可替代的作用。极值问题涉及函数的最大值和最小值,是微积分学中的一个基本问题。本文旨在详细介绍数学中的极值概念、性质、求解方…

动态IP避坑指南:如何挑选合适的动态代理IP?

在如今的网络环境中,使用动态IP代理成为实现隐私保护、访问受限内容和提高网络效率的一种常见方式,选择合适的国外动态IP代理可以让我们的业务处理事半功倍。面对市面上琳琅满目的选择,如何挑选购买适合自己的动态IP代理服务呢?在…

基于Java+SpringBoot+Vue前后端分离教学资源共享平台系统

基于JavaSpringBootVue前后端分离教学资源共享平台系统 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统…