【优化器】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

相关推荐
链上杯子1 分钟前
OpenAI 兼容 API:多厂商模型切换时要懂的端点、密钥与限流常识
人工智能
冬奇Lab2 分钟前
一天一个开源项目(第92篇):OpenHands - 全能型开源 AI 软件工程师
人工智能·开源·agent
weixin_408099673 分钟前
身份证OCR API怎么选?对比4款主流产品后,我选择了石榴智能(含Python/Java调用示例)
人工智能·ocr·文字识别·api接口·身份证ocr·石榴智能·ocr api
AI创界者4 分钟前
FaceFusionFree 4.6 加速版实测:深度解决黑边与源识别痛点
人工智能
qcx235 分钟前
【AI Agent通识九课】05 · AI 的红绿灯 — 长任务怎么管
人工智能·ai·agent·warp
AAI机器之心5 分钟前
在 macOS 上本地部署 Ollama + LLaMA3(附教程)
人工智能·macos·langchain·llm·知识库·大模型部署
2zcode6 分钟前
基于注意力机制LSTM的温度预测系统设计与实现
人工智能·深度学习·lstm
庞轩px6 分钟前
Transformer的核心思想——Attention机制直观理解
人工智能·rnn·深度学习·transformer·attention·q-k-v
eastyuxiao8 分钟前
流程图 + 配置清单 在团队 / 公司运维场景的落地应用方法
运维·人工智能·流程图
开开心心就好13 分钟前
整合多家平台资源的免费学习应用
人工智能·vscode·学习·游戏·音视频·语音识别·媒体