常见优化器总结(附原理、公式与优缺点)

优化器(Optimizer)是深度学习模型训练的核心组件之一,它决定了如何根据损失函数对模型参数进行更新。本文将总结目前常见的优化器,包括 SGD、Momentum、Adagrad、RMSprop、Adam 等,并介绍其核心思想、数学公式及优缺点。


1. SGD(随机梯度下降)

核心思想:
每次迭代只使用一小批数据(mini-batch)来更新参数,计算速度快。

更新公式:
θ t + 1 = θ t − η ⋅ ∇ θ J ( θ ) \theta_{t+1} = \theta_t - \eta \cdot \nabla_{\theta}J(\theta) θt+1=θtηθJ(θ)

优点:

  • 简单高效
  • 占用内存少

缺点:

  • 容易陷入局部最优
  • 收敛慢,对学习率敏感

2. SGD + Momentum(动量法)

核心思想:
在 SGD 基础上引入“动量”思想,模拟惯性加速收敛,减少震荡。

更新公式:
v t + 1 = γ v t + η ∇ θ J ( θ ) θ t + 1 = θ t − v t + 1 v_{t+1} = \gamma v_t + \eta \nabla_{\theta}J(\theta) \\ \theta_{t+1} = \theta_t - v_{t+1} vt+1=γvt+ηθJ(θ)θt+1=θtvt+1

其中 γ \gamma γ 是动量因子,常取 0.9。

优点:

  • 加快收敛速度
  • 降低震荡

缺点:

  • 参数调节(如 γ \gamma γ)较复杂

3. Adagrad

核心思想:
对每个参数采用自适应学习率,训练初期快、后期慢。

更新公式:
G t = G t − 1 + ∇ θ J ( θ ) 2 θ t + 1 = θ t − η G t + ϵ ∇ θ J ( θ ) G_t = G_{t-1} + \nabla_{\theta}J(\theta)^2 \\ \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{G_t + \epsilon}} \nabla_{\theta}J(\theta) Gt=Gt1+θJ(θ)2θt+1=θtGt+ϵ ηθJ(θ)

优点:

  • 自适应学习率
  • 适合稀疏数据(如 NLP)

缺点:

  • 学习率不断减小,容易提前停止学习

4. RMSprop

核心思想:
改进 Adagrad,对历史梯度平方进行指数加权平均,避免学习率过快减小。

更新公式:
E [ g 2 ] t = γ E [ g 2 ] t − 1 + ( 1 − γ ) ∇ θ J ( θ ) 2 θ t + 1 = θ t − η E [ g 2 ] t + ϵ ∇ θ J ( θ ) E[g^2]_t = \gamma E[g^2]_{t-1} + (1 - \gamma) \nabla_{\theta}J(\theta)^2 \\ \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} \nabla_{\theta}J(\theta) E[g2]t=γE[g2]t1+(1γ)θJ(θ)2θt+1=θtE[g2]t+ϵ ηθJ(θ)

优点:

  • 收敛快
  • 能应对非平稳目标

缺点:

  • 需要调节超参数(如 γ \gamma γ

5. Adam(Adaptive Moment Estimation,自适应矩估计)

核心思想:
结合 Momentum 和 RMSprop,分别估计一阶与二阶矩。

更新公式:
m t = β 1 m t − 1 + ( 1 − β 1 ) ∇ θ J ( θ ) v t = β 2 v t − 1 + ( 1 − β 2 ) ( ∇ θ J ( θ ) ) 2 m ^ t = m t 1 − β 1 t , v ^ t = v t 1 − β 2 t θ t + 1 = θ t − η v ^ t + ϵ m ^ t m_t = \beta_1 m_{t-1} + (1 - \beta_1)\nabla_{\theta}J(\theta) \\ v_t = \beta_2 v_{t-1} + (1 - \beta_2)(\nabla_{\theta}J(\theta))^2 \\ \hat{m}_t = \frac{m_t}{1 - \beta_1^t},\quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t} \\ \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t mt=β1mt1+(1β1)θJ(θ)vt=β2vt1+(1β2)(θJ(θ))2m^t=1β1tmt,v^t=1β2tvtθt+1=θtv^t +ϵηm^t

优点:

  • 学习率自适应
  • 收敛快,鲁棒性好
  • 参数调节较少

缺点:

  • 在某些任务中可能不如 SGD 泛化好

🧪 6. AdamW(带权重衰减的 Adam)

核心思想:
改进 Adam 正则化方式,直接对权重衰减,效果更稳定。

更新公式:
θ t + 1 = θ t − η ( m ^ t v ^ t + ϵ + λ θ t ) \theta_{t+1} = \theta_t - \eta \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_t \right) θt+1=θtη(v^t +ϵm^t+λθt)

优点:

  • 提升 Adam 在 Transformer、BERT 中的性能
  • 更合理的权重衰减方式

缺点:

  • 训练速度略慢于 Adam

📈 对比总结表

优化器学习率自适应动量机制收敛速度参数调节适用场景
SGD简单通用基础
SGD+Momentum收敛困难时可用
Adagrad前快后慢简单稀疏数据(NLP)
RMSprop需调 γ \gamma γ非平稳目标
Adam稳定大多数深度模型
AdamW稳定Transformer/BERT

📌 小结建议

  • 小模型 / 简单任务:SGD + Momentum
  • 稀疏特征 / NLP:Adagrad / Adam
  • 图像 / Transformer 系列模型:AdamW
  • 对训练速度敏感:Adam / RMSprop

💬 如果你觉得本文对你有帮助,欢迎点赞、收藏、转发支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值