常见优化器对比:梯度下降法、带动量的梯度下降法、Adagrad、RMSProp、Adam

news2024/9/20 16:11:39

系列文章目录

李沐《动手学深度学习》线性神经网络 线性回归
李沐《动手学深度学习》优化算法(相关概念、梯度下降法、牛顿法)
李沐《动手学深度学习》优化算法(经典优化算法)

文章目录

  • 系列文章目录
  • 一、梯度下降法
    • (一)基本思想
    • (二)梯度下降法的三种不同形式
    • (三)优缺点
  • 二、带动量的梯度下降法
    • (一)基本思想
    • (二)优点
  • 三、Adagrad:自适应学习率优化算法
  • 四、RMSProp:均方根传播
  • 五、Adam
  • 六、对比总结


一、梯度下降法

(一)基本思想

先设定一个学习率 η \eta η,参数沿着梯度的反方向移动。假设需要更新的参数为 w w w,梯度为 g g g,则梯度下降法的更新策略为:
w ← w − η ∗ g w\leftarrow w-\eta * g wwηg

李沐《动手学深度学习》中对于随机梯度下降法的阐释:

在这里插入图片描述

(二)梯度下降法的三种不同形式

  • BGD(batch gradient descent):批量梯度下降,每次参数更新使用所有样本
  • SGD(stochastic gradient descent):随机梯度下降,每次参数更新只使用1个样本
  • MBGD(mini-batch gradient descent):小批量梯度下降,每次参数更新使用小部分数据样本

(三)优缺点

优点:

  • 算法简洁,当学习率取值恰当时,可以收敛到 全局最优点(凸函数)或 局部最优点(非凸函数)。

缺点:

  • 对超参数学习率比较敏感:过小导致收敛速度过慢,过大又越过极值点;
  • 学习率在选代过程中保持不变,很容易造成算法被卡在鞍点的位置;
  • 容易陷入局部极小值。

更优的优化算法从梯度方面和学习率方面对参数更新方式进行优化。

二、带动量的梯度下降法

(一)基本思想

每一步更新都是由前面梯度的累计v和当前梯度g组合而成,进而使得参数的更新具有惯性。

α \alpha α为动量参数, v v v是动量, η \eta η是学习率

  • 累计梯度: v ← α v + ( 1 − α ) g v\leftarrow \alpha v +(1-\alpha)g vαv+(1α)g
  • 梯度更新: w ← w − η ∗ v w\leftarrow w-\eta * v wwηv

(二)优点

  • 在梯度方向改变时,momentum能够降低参数更新速度,从而减少震荡;
  • 在梯度方向相同时,momentum可以加速参数更新, 从而加速收敛。
  • 动量有机会逃脱局部极小值(加入动量后,参数更新就可以保持之前更新趋势,而不会卡在当前梯度较小的点了)。

三、Adagrad:自适应学习率优化算法

Adagrad的关键就是对于不同的参数,会设置不同的学习率

主要思想: 根据每个参数在训练过程中的历史梯度信息来调整学习率,从而使得每个参数的学习率可以自适应地调整,更好地适应不同参数的特性。

特点: 对每个参数的学习率进行适应性调整,使得在训练过程中梯度较大的参数的学习率变小,而梯度较小的参数的学习率变大。

计算方式:

  • 对于每个参数,初始化一个累计平方梯度 r = 0 r=0 r=0,然后每次将该参数的梯度平方求和累加到这个变量上:
    r ← r + g 2 r \leftarrow r+g^2 rr+g2
  • 学习率为:
    η r + δ \frac{\eta}{\sqrt{r+\delta}} r+δ η
  • 权重更新:( g g g是梯度, δ \delta δ是小参数,为了避免分母为0)
    w ← w − η r + δ ∗ g w\leftarrow w-\frac{\eta}{\sqrt{r+\delta}}*g wwr+δ ηg

四、RMSProp:均方根传播

RMSProp全称为root mean square propagation均方根传播。

RMSProp算法是在AdaGrad算法的基础上,进一步在学习率的方向上进行优化: AdaGrad算法中,由于历史梯度的累积可能会导致学习率不断减小,从而影响算法的收敛速度。RMSProp通过引入一个衰减系数 λ \lambda λ来解决这个问题,从而使得学习率的衰减更加平缓,提高了算法的稳定性和收敛速度。

  • 对于每个参数,初始化一个累计平方梯度 r = 0 r=0 r=0,然后每次将该参数的梯度平方求和累加到这个变量上:
    r ← λ r + ( 1 − λ ) g 2 r \leftarrow \lambda r+(1-\lambda)g^2 rλr+(1λ)g2
  • 学习率为:
    η r + δ \frac{\eta}{\sqrt{r+\delta}} r+δ η
  • 权重更新:( g g g是梯度, δ \delta δ是小参数,为了避免分母为0)
    w ← w − η r + δ ∗ g w\leftarrow w-\frac{\eta}{\sqrt{r+\delta}}*g wwr+δ ηg

五、Adam

Adam算法是一种用于优化神经网络训练的自适应学习率优化算法。它结合了动量梯度下降和自适应学习率方法的优点,具有广泛的应用和高效的性能。

在Grandient Descent的基础上,Adam的改进包括:

  • 梯度方面增加了momentum,使用累计梯度 v ← α v + ( 1 − α ) g v\leftarrow \alpha v +(1-\alpha) g vαv+(1α)g
  • 用RMSProp优化算法的方式对学习率进行优化,使用累计平方梯度: r ← λ r + ( 1 − λ ) g 2 r\leftarrow \lambda r+(1-\lambda)g^2 rλr+(1λ)g2
  • 偏差纠正: v ^ = v 1 − α t \hat{v}=\frac{v}{1-\alpha^t} v^=1αtv r ^ = r 1 − λ t \hat{r}=\frac{r}{1-\lambda^t} r^=1λtr

在上述3点改进的基础上,* 权重更新: w ← w − η r ^ + δ ∗ v ^ w\leftarrow w-\frac{\eta}{\sqrt{\hat{r}+\delta}}*\hat{v} wwr^+δ ηv^

六、对比总结

在这里插入图片描述

参考:优化器 |SGD |Momentum |Adagrad |RMSProp |Adam

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java 泛型(下)

本篇文章主要说明的是类型通配符、可变参数、可变参数的使用等。 在学习之前,希望能对泛型有个大概了解,可参考链接 java 泛型(上)-CSDN博客 也希望对泛型类、泛型接口、泛型方法有个大概的认识及使用,可参考链接 j…

Transformer学习【从零理解】

Transformer 一、整体框架 二、Encoder 1.输入部分: (1)Embedding:将输入的词转换为对应的词向量。 (2)位置编码:因为保证输出时,顺序不会打乱,所以要加入时序信息即位置编码。 公…

Linux:权限的概念与理解

目录 1. Linux权限的概念 2. Linux权限管理 01.文件访问者的分类 02.文件类型和访问权限 03.文件权限值的表示方法 04. 文件访问权限的相关设置方法 3. 使用 sudo分配权限 4. 目录的权限 ---------- 权限 用户角色(具体的人) 文件权限属性 ---------- 1. Linux权限的…

JavaScrpt学习笔记_一

一、Js编写位置 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> <!-- 可以将js代码编写到外部js文件中&#xff0c;然后通过script标签引入写到外部文件中可以在不同页面中…

乐得瑞科技PD协议芯片:OTG与充电并行,引领数据交互

在科技日新月异的今天&#xff0c;数据交互的方式对于我们的日常生活和工作都起到了至关重要的作用。但在OTG技术诞生之前&#xff0c;这一过程却显得相当繁琐和耗时。想象一下&#xff0c;你需要将数码相机的照片导入到笔记本电脑中&#xff0c;却不得不频繁地拔出内存卡&…

Java毕业设计-基于springboot开发的网吧管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统登录2、管理员功能模块3、网管功能模块4、会员功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的…

【Qt】使用Qt实现Web服务器(六):QtWebApp用户名密码登录

1、示例 1)演示 2)登录 3)显示 2、源码 示例源码Demo1->LoginController void LoginController::service(HttpRequest& request, HttpResponse& response) {

基于Springboot的西安旅游系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的西安旅游系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

基于Springboot+Vue的前后端分离的简单Demo案例(二)

前端搭建 Vue router 来动态构建左侧菜单 导航1 页面1页面2导航2 页面3页面4导航3 页面5页面6 在views目录下创建四个页面 PageOne.vue <template><h1>这是页面1</h1> </template> <script> export default {name: "PageOne", }; …

mysql字段多个值,mybatis/mybatis-plus匹配查询

mysql中有一个字段是字符串类型的&#xff0c;category字段值有多个用逗号分割的&#xff0c;例如&#xff1a;娱乐,时尚美妆,美食 。现在想实现这么一个功能&#xff0c; 前端传参 字符串&#xff0c;美食,娱乐。现在想在mybatis的xml中实现&#xff0c;查询&#xff0c;能查到…

GPU算力池管理工具Determined AI部署与使用教程(2024.03)

1. 概念 1.1 什么是Determined&#xff1f; Determined AI 是一个全功能的深度学习平台&#xff0c;兼容 PyTorch 和 TensorFlow。它主要负责以下几个方面&#xff1a; 分布式训练&#xff1a;Determined AI 可以将训练工作负载分布在多个 GPU&#xff08;可能在多台计算机上…

【NLP】从变形金刚到Transfomer 01

Transformer是一种非常强大的模型&#xff0c;在自然语言处理&#xff08;NLP&#xff09;领域里引起了一场革命。 "从变形金刚到技术革命家&#xff0c;Transformer不再仅是儿时屏幕上的英雄。&#x1f916;✨ 在今天的AI领域&#xff0c;它变身成为自然语言处理的超级英…

TextMeshPro图文混排的两种实现方式,不打图集

TMP图文混排 方案一&#xff1a;TMP自带图文混排使用方法打包图集使用 方案二&#xff1a;不打图集&#xff0c;可以使用任何图片 接到一个需求&#xff0c;TextMeshPro 图文混排。 方案一&#xff1a;TMP自带图文混排 优点布局适应优秀&#xff0c;字体左中右布局位置都很不错…

基于SSM的土家风景文化管理平台(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的土家风景文化管理平台&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spri…

基于springboot的“漫画之家”系统

目录 背景 技术简介 系统简介 界面浏览 背景 随着科技的不断进步&#xff0c;计算机已经变成了人们日常生活和工作不可或缺的工具。在这样的环境下&#xff0c;互联网技术被广泛运用于各个领域&#xff0c;以提升工作和生活的效率&#xff0c;推动了网络信息技术的迅猛发展…

递增四元组

解法&#xff1a; 首先都可以想到dp[i]&#xff1a;第i个元素结尾的递增四元组有dp[i]个 然后发现有一组数据&#xff1a;2,3,6,1,5,8。会出现6结尾和5结尾的递增三元组&#xff0c;也就是未来的决策受过去影响&#xff0c;专业的说就是有后效性。需要强化约束条件&#xff0…

基于springboot+vue的游戏交易系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Grass手机注册使用教程,利用闲置手机WiFi带宽赚钱

文章目录 Grass是什么&#xff1f; 项目介绍Grasss手机使用步骤第一步&#xff1a;下载狐猴浏览器第二步&#xff1a;注册账户&#xff08;已注册直接跳过&#xff09;第三步&#xff1a;安装Grass Chrome插件1、推荐离线安装2、在线安装 第四步&#xff1a;登录第五步&#xf…

随笔】Git -- 常用命令(四)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

2核4G服务器阿里云性能测评和优惠价格表

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…