【优化器】Adagrad 、RMSPorp、Adam详解

文章目录

  • Adagrad
  • RMSPorp
  • Adam
  • [Adagrad 存在的问题](#Adagrad 存在的问题)
  • [RMSProp 对 Adagrad 的优化](#RMSProp 对 Adagrad 的优化)
    • [1. 梯度累积方式优化](#1. 梯度累积方式优化)
    • [2. 优化效果](#2. 优化效果)

Adagrad

Adagrad 优化算法被称为 自适应学习率优化算法

之前我们讲的随机梯度下降算法,对所有参数都是使用相同的、固定的学习率进行优化的,但是不同参数的梯度差异可能很大,使用相同的学习率,效果不会很好。

举例说明:

假设损失函数是 f ( x ) = x 1 2 + 10 x 2 2 f(x)=x_1^2 +10x_2^2 f(x)=x12+10x22, x x x 和 y y y 的初始值分别为 x 1 = 40 , x 2 = 20 x_1=40, x_2=20 x1=40,x2=20

(通过观察,我们即可知道, x 1 = 0 x_1=0 x1=0 和 x 2 = 0 x_2=0 x2=0 就是两个参数的极点)

对 x 1 x_1 x1 求偏导:
∂ l o s s ∂ x 1 = 2 x 1 \frac{\partial loss}{\partial x_1} = 2x_1 ∂x1∂loss=2x1

代入初始值 x 1 = 40 x_1=40 x1=40,得
∂ l o s s ∂ x 1 = 80 \frac{\partial loss}{\partial x_1} = 80 ∂x1∂loss=80

对 x 2 x_2 x2 求偏导:
∂ l o s s ∂ x 2 = 20 x 2 \frac{\partial loss}{\partial x_2} = 20x_2 ∂x2∂loss=20x2

代入初始值 x 2 = 20 x_2=20 x2=20,得
∂ l o s s ∂ x 2 = 400 \frac{\partial loss}{\partial x_2} = 400 ∂x2∂loss=400
x 1 x_1 x1 将要移动的幅度小于 x 2 x_2 x2 将要移动的幅度

而 x 1 x_1 x1 距离极值点 x 1 = 0 x_1=0 x1=0 是较远的,所以我们使用梯度下降法,效果并不好

Adagrad 思想:对于不同参数,设置不同学习率

方法:对于每个参数,初始化一个累计平方梯度 r = 0 r=0 r=0,然后每次将该参数的梯度平方求和累加到这个变量 r r r 上:

r ← r + g 2 r \leftarrow r + g^2 r←r+g2

然后再更新这个参数的时候,学习率变为:

η r + δ \frac{\eta}{\sqrt{r+\delta}} r+δ η

权重更新:

w ← w − η r + δ ∗ g w \leftarrow w - \frac{\eta}{\sqrt{r+\delta}} * g w←w−r+δ η∗g

其中, g g g 为梯度; r r r 为累积平方梯度(初始为0); η \eta η 为学习率; δ \delta δ 为小参数,避免分母为0,一般取值 10 − 10 10^{-10} 10−10。

这样,不同的参数由于梯度不同,它们对应的 r r r 大小也就不同,所以学习率就不同,这也就实现了自适应的学习率。

总结:Adagrad 的核心想法就是,如果一个参数的梯度一直都非常大,那么其对应的学习率就变小一点,防止震荡;而一个参数的梯度一直都非常小,那么这个参数的学习率就变大一点,使得其能够更快地更新,这就是 Adagrad 算法加快深层神经网络训练速度的核心。


RMSPorp

RMSProp:Root Mean Square Propagation 均方根传播

RMSProp 是在 Adagrad 的基础上,进一步在学习率的方向上优化。

累计平方梯度更新
r ← λ r + ( 1 − λ ) g 2 r \leftarrow \lambda r + (1 - \lambda)g^2 r←λr+(1−λ)g2

权重更新:
w ← w − η r + δ ∗ g w \leftarrow w - \frac{\eta}{\sqrt{r+\delta}} * g w←w−r+δ η∗g

其中, g g g 为梯度, r r r 为累积平方梯度(初始为0), λ \lambda λ 为衰减系数, η \eta η 为学习率, δ \delta δ 为小参数(避免分母为0)。


Adam

在 Gradient Descent 的基础上,做了如下几个方面改进:

  1. 梯度方面增加了 momnentum 使用累积梯度: v ← α v + ( 1 − α ) g v \leftarrow \alpha v + (1 - \alpha)g v←αv+(1−α)g
  2. 同RMSProp 优化算法一样,对学习率进行优化,使用累积平方梯度: r ← λ r + ( 1 − λ ) g 2 r \leftarrow \lambda r + (1 - \lambda)g^2 r←λr+(1−λ)g2
  3. 偏差纠正( t t t 表示迭代次数): v ^ = v 1 − α t , r ^ = r 1 − λ t \hat{v} = \frac{v}{1-\alpha^t}, \quad \hat{r} = \frac{r}{1-\lambda^t} v^=1−αtv,r^=1−λtr

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

为啥要偏差纠正:

第1次更新时, v 1 ← α v 0 + ( 1 − α ) g 1 v_1 \leftarrow \alpha v_0 + (1 - \alpha)g_1 v1←αv0+(1−α)g1,由于 v 0 v_0 v0 的初始是0,且 α \alpha α 值一般会设置为接近于1,因此 t t t较小时, v v v的值是偏向于0的。


Adagrad 存在的问题

Adagrad 虽然实现了自适应学习率,但存在一个明显缺陷:

累积平方梯度 r r r 会一直累加、单调递增
r ← r + g 2 r \leftarrow r + g^2 r←r+g2

随着训练迭代次数增多, r r r 会越来越大,导致有效学习率
η r + δ \frac{\eta}{\sqrt{r+\delta}} r+δ η

持续不断减小,后期几乎趋近于 0,参数更新停滞,模型无法继续收敛。


RMSProp 对 Adagrad 的优化

RMSProp 核心改进:引入指数滑动平均(EMA),只累积近期梯度,避免历史梯度无限累积

1. 梯度累积方式优化

Adagrad:
r ← r + g 2 r \leftarrow r + g^2 r←r+g2

RMSProp:
r ← λ r + ( 1 − λ ) g 2 r \leftarrow \lambda r + (1-\lambda)g^2 r←λr+(1−λ)g2

  • λ \lambda λ:衰减系数(通常取 0.9 左右)
  • 历史梯度按指数衰减,只保留近期梯度信息
  • r r r 不会无限增大,学习率不会持续衰减到接近 0

2. 优化效果

  • 解决 Adagrad 后期学习率过小、收敛停滞的问题
  • 训练更稳定,收敛速度更快
  • 更适合深度神经网络、非凸优化场景

参数更新公式保持类似形式:
w ← w − η r + δ ⋅ g w \leftarrow w - \frac{\eta}{\sqrt{r+\delta}} \cdot g w←w−r+δ η⋅g

本文参考:https://www.bilibili.com/video/BV1jh4y1q7ua/?spm_id_from=333.1387.favlist.content.click&vd_source=cf0b4c9c919d381324e8f3466e714d7a

相关推荐
zhangshuang-peta2 小时前
MCP 与跨系统集成:当多个系统共享 Agent 能力时会发生什么?
人工智能·ai agent·mcp·peta
ZOOOOOOU2 小时前
智慧社区云对讲门禁系统架构设计:中优云联免布线、全免费核心功能技术解析
数据库·人工智能·架构·边缘计算
kimi-2222 小时前
MinerU 能够准确识别并提取 PDF 中的图文、表格、公式等复杂元素
人工智能
@不误正业2 小时前
AI-Agent记忆系统深度实战-3大范式源码对比与鸿蒙端实现
人工智能·agent·鸿蒙
汤姆yu2 小时前
Hermes Agent全面介绍
人工智能·hermes
测绘第一深情2 小时前
自动驾驶核心技术:BEV 特征 + Transformer 解码器
人工智能·自动驾驶·transformer
RxGc2 小时前
2026年AI Agent开发实战:MCP协议深度解析与多智能体协作架构完全指南
人工智能·agent·mcp
Kel2 小时前
CrewAI v1.14.2 双模式架构深度剖析:当角色协作遇上事件驱动
人工智能·设计模式·架构
Narrastory2 小时前
Note:强化学习(一)
人工智能·算法·强化学习