【AI知识】常见的优化器及其原理:梯度下降、动量梯度下降、AdaGrad、RMSProp、Adam、AdamW

news2025/3/20 10:23:50

常见的优化器

  • 梯度下降(Gradient Descent, GD)
  • 局部最小值、全局最小值和鞍点
  • 凸函数和非凸函数
  • 动量梯度下降(Momentum)
  • 自适应学习率优化器
    • AdaGrad(Adaptive Gradient Algorithm)​
    • RMSProp(Root Mean Square Propagation)​
    • ​Adam(Adaptive Moment Estimation)​
    • AdamW(Adam with Weight Decay)

在机器学习和深度学习中,优化器用于调整模型参数以最小化损失函数,是训练模型的关键组件。以下是一些常见的优化器:

梯度下降(Gradient Descent, GD)

梯度下降是最基础的优化算法,核心思想是:沿着损失函数梯度的反方向更新参数,即参数的更新方向是损失函数梯度的负方向。(梯度解释:【AI知识】导数,偏导,梯度的解释),梯度下降的公式为:

学习率解释: 表示模型参数更新的步长大小,控制着迭代过程中参数沿着梯度方向调整的幅度。

  • 较大的学习率可以加快收敛速度,但可能导致参数更新过大,错过最优解甚至发散(模型发散是指在数值计算或优化过程中,模型的解或参数随着迭代次数的增加变得不稳定,甚至趋向于无穷大,导致计算结果失去物理意义或无法收敛到预期值)
  • 较小的学习率虽然更新稳定,但收敛速度慢,可能需要更多的训练时间

梯度下降有以下几个变种:

  • 批量梯度下降(Batch Gradient Descent, BGD):使用整个训练数据计算梯度,更新参数。收敛稳定,但计算开销大,每次迭代都需要遍历整个数据集,不适合处理超大规模数据集

  • 随机梯度下降(Stochastic Gradient Descent, SGD):每次迭代随机选择一个训练样本计算梯度,并更新模型参数,计算效率高但收敛不稳定(由于每次更新的方向不同,参数更新过程会有较大波动,可能无法很好地收敛到最优点)

  • 小批量梯度下降(Mini-Batch Gradient Descent):在 BGD 和 SGD 之间折中,每次使用一个小批量(一般大小为 32、64、128 等)样本计算梯度。
    1)相比于 BGD,每次更新的计算量更少,适合大规模数据。
    2)相比于SGD,梯度更新不会剧烈震荡,收敛更平稳。
    3)小批量计算可以并行处理,提高计算效率。
    4)但批量大小(Batch Size)影响训练效果,太大会导致模型训练慢,太小会导致震荡。

局部最小值、全局最小值和鞍点

1. 局部最小值: 是指函数在某个邻域内取得的最小值。局部最小值只是在某个局部范围内最小,不一定是整个函数的最小值(全局最小值)。如果函数可微分,在局部最小值点处,梯度通常为零。

2. 全局最小值: 是指函数在整个定义域内取得的最小值。全局最小值点可能不存在(例如,函数无下界),也可能不唯一(例如,常数函数)。

3.鞍点: 鞍点是指函数在某个点处梯度为零,但该点既不是局部最小值也不是局部最大值。(可以通过 Hessian 矩阵来判断一个点是否为鞍点,我也不懂T T )

鞍点在某些方向上是局部最小值,而在另一些方向上是局部最大值。

在优化问题中,鞍点通常是一个挑战,因为梯度下降算法可能会在鞍点处停滞

凸函数和非凸函数

在数学优化和机器学习中,函数的**凸性(Convexity)**是一个非常重要的概念,凸函数和非凸函数在函数形状和优化性质上有显著区别,它直接影响梯度下降算法的收敛性和是否能找到全局最优解。

1. 凸函数(Convex Function): 函数的任意两个点连成的直线,不会低于函数曲线(即函数曲线在直线的下方或重合)。

此图参考自:凸函数与非凸函数

特征:

  • 单峰(一个最低点),类似于碗的形状(开口向上)
  • 任意局部最优解都是全局最优解
  • 在优化问题中,凸函数通常更容易求解,因为其优化过程具有唯一性和稳定性,使用梯度下降算法能保证找到最优解

2. 非凸函数(Non-Convex Function): 如果一个函数不满足凸函数的定义,即为非凸函数。

特征:

  • 多峰(多个局部最小值),类似于山谷或波浪形状
  • 可能存在多个局部最优点,优化过程中可能会卡在局部最优而非全局最优
  • 优化复杂,需要动量、学习率调整等策略避免陷入局部最优

由上可知,非凸函数优化问题是比较难的,其中局部最小值和鞍点可能会阻碍优化算法找到全局最小值,接下来介绍一些别的优化器算法:

动量梯度下降(Momentum)

动量梯度下降(Momentum Gradient Descent)是一种优化梯度下降的方法,它在参数更新时加入 动量(Momentum) 的概念,使得优化过程更平滑、更快,并能够有效跳过鞍点和局部最优。

梯度下降的问题:

  • 收敛速度慢: 在椭圆形的损失函数里(损失函数在不同方向上的曲率相差很大,在某些方向上变化很快,在另一些方向上变化很慢),梯度下降的方向会不断震荡,导致收敛速度慢

  • 容易陷入局部最优: 在非凸优化问题中,梯度下降可能会卡在局部最优,难以继续下降到更优解

  • 鞍点问题: 在高维空间,梯度在某些方向上很小(如鞍点),优化可能会停滞

什么是动量: 模拟物理中的惯性现象,在优化过程中,不仅考虑当前的梯度的方向,还会保留一部分之前梯度的方向,这被称为“动量”,可利用过去梯度的累积信息来平滑当前更新方向,帮助梯度下降更快地收敛,并减少在某些方向上的震荡。

动量梯度下降的更新规则:

其中 β \beta β是动量因子,用于控制历史梯度的影响程度, β = 0 \beta=0 β=0相当于普通梯度下降(没有动量), β = 0.9 \beta=0.9 β=0.9是一般情况下的推荐值,更新较平滑。

优点:

  • 加入“惯性”,类似于物体运动,之前的梯度会影响当前的梯度,在梯度方向变化时减少震荡,使得优化路径更稳定
  • 在鞍点处不会停滞,因为动量会推动参数继续前进,使得参数能突破局部最优点

缺点:

  • 需要调参:动量因子 β 和学习率 α 需要精心调节,否则可能影响收敛效果
  • 可能错过最优解:由于惯性,动量法可能冲过局部最优解或全局最优解

自适应学习率优化器

这类优化器能根据梯度信息动态调整学习率,提高收敛速度,并避免学习率过大或过小导致的训练问题。

AdaGrad(Adaptive Gradient Algorithm)​

AdaGrad通过累积所有梯度的平方来调整学习率。对于每个参数,学习率会根据其历史梯度的大小进行调整,使得频繁出现较大梯度的参数具有较小的学习率,而梯度较小的参数具有较大的学习率。

​优点: 适合处理稀疏数据,对低频参数更新较大,对高频参数更新较小

​缺点: 随着训练进行,累积梯度平方会越来越大,导致学习率逐渐减小,可能使训练过程变得非常缓慢

RMSProp(Root Mean Square Propagation)​

RMSProp通过计算梯度的指数衰减平均来调整学习率,解决了AdaGrad学习率过快减小的问题,它使用一个衰减率(通常表示为 ρ)来控制历史梯度的影响。

优点: 缓解了AdaGrad学习率过快减小的问题,适合处理非平稳目标和有噪声的梯度。

​缺点: 需要手动调整衰减率参数

​Adam(Adaptive Moment Estimation)​

Adam结合了动量法和RMSProp的优点。它不仅考虑了梯度的一阶矩(即动量),还考虑了梯度的二阶矩(即梯度平方的指数移动平均)。通过这两个矩的估计,Adam能够更有效地调整学习率。

优点: 结合了动量和自适应学习率的优点,收敛速度快,性能好

​缺点: 初始学习率可能过高,导致模型发散

AdamW(Adam with Weight Decay)

AdamW 是 Adam 优化器的一个改进版本,全称为 ​Adam with Weight Decay。它通过将权重衰减(Weight Decay)与梯度更新过程解耦,解决了传统 Adam 优化器中权重衰减与自适应学习率机制之间的冲突问题,从而提升了模型训练的稳定性和泛化性能。

1. 这里先介绍一下什么是权重衰减?

权重衰减(Weight Decay)是 一种正则化技术,主要作用如下:

  • 防止过拟合:减少模型复杂度,避免学习到过拟合的参数。
  • 稳定训练:通过逐步缩小权重,使模型收敛更稳定。
  • 提高泛化能力:让模型在测试集上表现更好。

在优化过程中,权重衰减会在每次参数更新时,对模型的权重施加一个额外的惩罚,使模型参数(权重)逐渐缩小,从而控制模型的复杂度。权重衰减通常是通过 L2 正则化 实现的,即在损失函数中加入 权重的平方和 作为惩罚项:

2. Adam中的权重衰减有什么问题?

传统 Adam 将权重衰减(L2 正则化项)直接添加到损失函数中,导致权重衰减与梯度更新耦合。由于 Adam 的自适应学习率机制,这种耦合会导致权重衰减的实际效果被学习率缩放,降低正则化效果

3. AdamW如何改进?

AdamW 将权重衰减从损失函数中解耦,直接在参数更新步骤中独立应用权重衰减,解决了 Adam 的错误 L2 正则化问题,避免了自适应学习率对权重衰减的干扰

4. 为什么 AdamW 更适合深度学习?

  • 减少 L2 正则化的梯度缩放影响:在大规模深度学习模型(如 BERT、GPT、ResNet)中,Adam 的 L2 正则化可能会导致模型的某些层参数衰减过快或过慢。 AdamW 使权重衰减独立于梯度计算,提高训练稳定性。

  • 更快收敛:由于 AdamW 避免了 L2 正则化的错误影响,使优化器能更快找到最优解。

  • 更好的泛化能力:AdamW 在训练过程中对参数进行正确的权重衰减,减少过拟合,提高泛化能力。

总结: AdamW 通过改进权重衰减的方式,提升了模型的正则化效果和训练稳定性,是当前深度学习中的重要优化器之一

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

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

相关文章

线性规划的标准形式

标准形式的定义 目标函数:最大化线性目标函数 其中,x 是决策变量向量,c 是目标系数向量。 约束条件:等式形式约束 A x b, 其中,A 是约束系数矩阵,b 是常数项向量。 变量非负约束: 。 因此…

网络安全应急入门到实战

奇安信:95015网络安全应急响应分析报告(2022-2024年)官网可以下载 https://github.com/Bypass007/Emergency-Response-Notes 应急响应实战笔记 网络安全应急响应技术实战指南 .pdf 常见场景 第4章 勒索病毒网络安全应急响应 第5章 挖矿木…

应用程序安全趋势:左移安全、人工智能和开源恶意软件

软件是大多数行业业务运营的核心,这意味着应用程序安全从未如此重要。 随着组织采用云原生架构、微服务和开源组件,攻击面不断扩大。结果是:攻击者渴望利用的易受攻击和恶意依赖项数量不断增加。 2025 年,安全团队将面临日益复杂…

ospf动态路由

一、为什么使用动态路由 OSPF(open shortest path first开放最短路径优先)是内部网关协议(IGP)的一种,基于链路状态算法(LS)。 OSPF企业级路由协议(RFC2328 OSPFv2),核心重点协议 OSPF共三个版本,OSPFV1主要是实验室…

基于单片机控制的电动汽车双闭环调速系统(论文+源码)

2.1系统方案 在本次设计中,其系统整个框图如下图3.1所示,其主要的核心控制模块由电源供电模块,晶振电路,驱动电路模块,霍尔传感器,按键模块,复位电路,LCD液晶显示及直流电机等组成。…

【病毒分析】伪造微软官网+勒索加密+支付威胁,CTF中勒索病毒解密题目真实还原!

1.背景 该CTF挑战题目完整复现了黑客的攻击链路,攻击者通过伪造钓鱼页面引导受害者下载恶意软件。用户访问伪造的 Microsoft 365 官网后,在点击“Windows Installer (64-bit)”下载选项时,页面会自动跳转至伪造的 GitHub 项目链接&#xff0…

PDF Reader Pro for Mac v4.9.0 PDF编辑/批注/OCR/转换工具 支持M、Intel芯片

PDF Reader Pro 是一款用户必备的集管理、编辑、转换、阅读功能于一体的专业的全能PDF阅读专家。快速、易用、强大,让您出色完成 PDF 工作。 应用介绍 PDF Reader Pro,一款功能齐全且强大的PDF阅读和编辑软件。支持PDF阅读、批注、PDF编辑、PDF格式转换…

PowerShell 美化 增强教程

PowerShell Windows Terminal 美化 & 增强教程 Windows Terminal PowerShell 默认外观和功能较为基础,但通过 Oh My Posh 及其他增强工具,你可以打造一个更美观、更高效的终端环境。本教程提供完整的安装、美化和优化步骤,包括常见问题…

机械革命蛟龙16pro玩游戏闪屏

我查过原因,好像是AMD显卡对游戏用了可变刷新率就出bug了,可能是那个游戏不适合用可变刷新率技术。 解决办法: 1.桌面右键鼠标,出现如下标签,点击AMD Software:Adrenalin Edition 2.选择闪屏的游戏&#x…

实现图片多种处理需求的实用工具

在自媒体创作与日常办公时,图片处理常让人焦头烂额。今天就给大家介绍一款得力帮手——Fotosizer,它能帮你轻松批量处理图片,满足多样化需求。Fotosizer是一款功能强大的图片批量处理软件,无需安装,打开即用&#xff0…

数据结构中的引用管理对象体系

数据结构中的引用管理对象体系 (注:似复刻变量即实例对象) 引用管理对象的,有引用就能管理到它所指向的对象,我们拿引用最终的目的就是管理那些我们需要管理的最终直接对象,引用也是对象,同时…

Qwen2.5-VL 开源视觉大模型,模型体验、下载、推理、微调、部署实战

一、Qwen2.5-VL 简介 Qwen2.5-VL,Qwen 模型家族的旗舰视觉语言模型,比 Qwen2-VL 实现了巨大的飞跃。 欢迎访问 Qwen Chat (Qwen Chat)并选择 Qwen2.5-VL-72B-Instruct 进行体验。 1. 主要增强功能 1)直观地理解事物&…

深入解析 `SQL_SMALL_RESULT`:MySQL 的“小优化”大作用

深入解析 SQL_SMALL_RESULT:MySQL 的“小优化”大作用 在 MySQL 的查询优化工具箱中,SQL_SMALL_RESULT 是一个容易被忽略但可能带来小幅性能提升的关键字。它适用于特定场景,尤其是涉及 GROUP BY 或 DISTINCT 计算的小数据集查询。本文将深入…

Vue3 界面设计插件 microi-pageengine 入门教程一

系列文章目录 一、Vue3空项目快速集成 microi-pageengine 插件 文章目录 系列文章目录一、前言二、排版布局2.1 功能导航区2.2 组件容器区2.3 属性面板区 三、数据来源配置3.1 json数据源3.2 html数据源 四、事件穿透五、数据保存持久化六、总结 一、前言 上一篇文章介绍了 v…

诺视Micro-LED微显示芯片量产线投产 ——开启微显示技术新时代

2025年3月19日,诺视科技Micro-LED微显示芯片一期量产线正式投入生产。这一具有里程碑意义的时刻,标志着诺视科技在Micro-LED微显示领域实现了产业化的重大突破,不仅为自身发展奠定了坚实基础,同时也为全球微显示行业带来新的活力。…

1. 环境准备

安装CentOS 7 配置网络 默认网络是NAT 端口转发 更改/etc/sysconfig/network-scripts/ifcfg-ens33 修改以下内容: BOOTPROTOstatic 启用静态IP地址 ONBOOTyes 开启自动启用网络连接 添加以下内容: IPADDR192.168.30.100 设置IP地址 NETMASK255.25…

【链表】一文搞定链表算法:从基础到实战

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言例题一、两数相加二、两两交换链表中的节点三、重排链表四、合并K个升序链表五、 K个⼀组翻转链表 结语 前言 什么是链表算法: 链表算法&#xff0…

瑞萨RA系列使用JLink RTT Viewer输出调试信息

引言 还在用UART调试程序么?试试JLINK的RTT Viewer吧!不需占用UART端口、低资源暂用、实时性高延时微秒级,这么好的工具还有什么理由不用了! 目录 一、JLink RTT Viewer 简介 二、软件安装 三、工程应用 3.1 SEGGER_RTT驱动包 3.2 手搓宏定义APP_PRINT 3.3 使用APP_…

DEFI币生态重构加速,XBIT去中心化交易所引领DEX安全新范式

2025年3月18日,全球加密市场在监管与技术共振下迎来结构性变革。去中心化金融(DeFi)代币DEFI币因跨链流动性协议升级引发社区热议,而币应XBIT去中心化交易所(以下简称XBIT)凭借其链上透明验证机制、无需下载…

13 IO流:字节流、字符流、缓冲流、文件复制(字节/字符/缓冲区)、字符转换流、打印流、IO框架(黑马Java视频笔记)

文章目录 IO流 >> 读写数据的方案1. 认识IO流1)IO流的分类2)IO流的体系 2. 文件字节输入流2.1 创建文件字节流对象2.2 读取文件1)使用read()方法一个一个字节的读取2)使用字节数组读取数据:byte[]3)使用字节流读…