11.9.1 算法

(11.78)的直观理解:最开始的时候梯度很大,为了防止震荡,我们需要减小步长,这是分母的作用,但是梯度大就表示参数更新也应该大,所以需要增大步长,这是分子的作用;迭代一段时间之后,梯度就变小了,此时为了加速收敛,我们需要增大步长,这是分母的作用(注意这里跟AdaGrad不一样,这里用的是泄露平均值),但是此时参数已经接近收敛了,所以也要减少步长,这是分子的作用。DeepSeek的回答见下
Adadelta算法中调整后的梯度更新公式(式11.9.3)的直观理解可以通过以下三个关键视角展开:


1. 动态平衡的双历史视角

公式的核心结构:
[
g't = \underbrace{\frac{\sqrt{\Delta x{t-1}}}{\sqrt{s_t}}}_{\text{自适应杠杆}} \odot g_t
]

  • 分母 ( \sqrt{s_t} ):继承自RMSProp思想,代表梯度二阶矩的历史衰减平均
    • 作用:对当前梯度 ( g_t ) 进行归一化,抑制波动剧烈的参数更新(如梯度爆炸时,分母增大会缩小步长)。
  • 分子 ( \sqrt{\Delta x_{t-1}} ):Adadelta的独特设计,代表参数更新量二阶矩的历史衰减平均
    • 作用:将过去参数的实际更新幅度作为参考基准,动态校准当前步长(若历史更新幅度大,则适当放大当前步长)。

直观意义
通过同时考虑梯度波动历史(分母)和参数更新历史(分子),算法自动平衡了以下矛盾:

  • 梯度大时需缩小步长(防止震荡),但若参数本身需要大幅调整(Δx_{t-1}大),则允许适当放大步长;
  • 梯度小时需放大步长(加速收敛),但若参数已接近稳定(Δx_{t-1}小),则抑制无效噪声。

2. 无学习率的自洽系统

传统优化器(如SGD)需要手动设置学习率 ( \eta ),而Adadelta通过式11.9.3-11.9.4构建了一个自洽的更新系统

  • 分子隐含学习率:式11.9.3中的 ( \sqrt{\Delta x_{t-1}} ) 实际替代了人工设定的 ( \eta )。
  • 自反馈机制:当前调整后的梯度 ( g'_t ) 会通过式11.9.4更新到 ( \Delta x_t ),进而影响下一时间步的分子值,形成闭环反馈。

物理类比
想象一个弹簧系统,弹簧的伸缩幅度(步长)不仅取决于当前外力(梯度),还受之前伸缩历史(Δx)的影响。系统通过历史记忆自动调节刚性系数,无需外部设定初始参数。


3. 对病态条件的鲁棒性

通过对比其他优化器分析其优势:

优化器 核心缺陷 Adadelta的改进策略
AdaGrad 学习率单调递减至零(早停问题) 使用泄露平均(ρ < 1)替代累积和,避免分母膨胀
RMSProp 依赖人工设定初始学习率η 用Δx_{t-1}动态替代η,实现无超参数自适应
Momentum 在梯度方向突变时产生振荡 通过Δx_{t-1}平滑历史更新,抑制方向抖动

实例说明
假设某参数在训练初期需要大幅调整(Δx_{t-1}较大),但当前梯度因噪声突然增大(s_t骤升):

  • AdaGrad:分母持续累积,步长被过度压制,导致收敛停滞;
  • Adadelta:分子Δx_{t-1}较大,部分抵消分母s_t的影响,保持合理步长,继续推进参数更新。

总结:核心直觉

Adadelta的梯度调整公式本质上构建了一个双历史驱动的自适应杠杆

  1. 分母压制梯度方向的瞬时波动(防震荡);
  2. 分子放大参数维度的长期趋势(促收敛);
  3. 二者通过比值动态平衡,使优化过程既稳定又能快速适应不同参数的尺度差异,最终实现无需手动调学习率的高效优化
posted @   最爱丁珰  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2024-02-15 Two Arithmetic Progressions
2024-02-15 周期
2024-02-15 最幸运的数字
2024-02-15 沙拉公主的困惑
2024-02-15 炸脖龙 I
2024-02-15 C Looooops
2024-02-15 称重
点击右上角即可分享
微信分享提示