跳到主内容
快讯直播
AI智模界
AI 词典

AdaGrad 与 RMSProp:每个参数都该有自己的步长

一句话定义:AdaGrad(Adaptive Gradient)和 RMSProp(Root Mean Square Propagation)都是"自适应步长"的梯度下降优化器,它们给模型中的每一个参数单独记一本账,根据这个参数历史梯度的大小,自动决定它这一步该迈多大。

为什么需要它:普通梯度下降里,所有参数共用一个全局学习率。但真实模型里参数的"脾气"差别极大:有的参数(比如高频词对应的 AI 词典:Embedding">Embedding 向量)每一步都收到很强的梯度信号,用同样步长容易一步跨过头、来回震荡;有的参数(长尾低频特征)几百步才被激活一次,用同样步长又几乎挪不动。一个数字管全部,怎么调都是将就。

打个比方:想象一位教练带一群性格迥异的学员跑步。教练给每人配一个私人助教,专门记录"这个人过去跑得多猛"。过去冲得凶的,现在就多拉一拉缰绳;过去一直温吞的,就多推一把。落到公式上很朴素:把这个参数历史梯度的平方累加起来(AdaGrad),开根号放进分母,再去乘学习率。梯度大 → 分母大 → 步长小;梯度小 → 分母小 → 步长相对大。学习率从"一个数"变成了"每个参数一个数"。

两者的关键区别在"记账方式"。AdaGrad 是终身累计:分母只增不减,于是步长单调衰减,训练越久越谨慎,到后期可能几乎停滞。RMSProp 把"终身累计"换成指数滑动平均(相当于给旧账加一个衰减系数,越久远越不算数),分母可以变大也可以变小,因此不会一路衰减到零。可以粗略理解为:RMSProp 是 AdaGrad 的"带遗忘版",专治后者越走越慢的毛病。

和 Adam 的关系:Adam 常被当成"更高级的优化器",其实它就是把一阶矩(动量,梯度本身的滑动平均)和二阶矩(RMSProp 的梯度平方滑动平均)合在一起,再加一个偏差校正。它是"合体",并不天然优于所有方法。

AdaGradRMSPropAdam
记什么梯度平方的累计总和梯度平方的滑动平均梯度 + 梯度平方,都做滑动平均
记忆特性永不遗忘逐渐遗忘旧账逐渐遗忘旧账
步长趋势单调变小,可能停滞动态稳定动态稳定 + 惯性
常见落点稀疏特征、Embedding 类任务目标非平稳、序列任务通用默认起点

对从业者的实际意义:用 Adam/AdamW 起步是合理默认,但别把它当终点;如果发现训练集表现好、验证集跟不上,换成带动量的 SGD 常常能拿到更好的泛化。稀疏特征明显的场景(推荐、文本 Embedding),AdaGrad 一系反而更对路。RMSProp 和 Adam 里的衰减系数、eps 在混合精度训练下比较敏感,具体默认值以所用框架的官方文档为准。

对普通人的启示:资源分配不该是平均主义。对历史上波动大、容易过冲的方向收紧投入,对长期安静、偶有机会的方向给更大的步幅——这是这两个优化器真正在说的事。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。