[LLM] 优化器学习笔记(GD、SGD、SGD(Momentum)、AdaGrad、RMSprop、 Adam、Muon)

📌 梯度下降法 Gradient Descent (GD)

什么是 GD?

梯度下降是一种优化算法,通过不断沿函数的最陡下降方向(梯度的负方向)更新参数,寻找函数最小值。

目标:
给定一个损失函数 f ( θ ) f(\theta) f(θ),找到参数 θ \theta θ 使得函数最小化。

算法步骤(二维参数为例)

  1. 初始化参数 θ 0 \theta_0 θ0(如随机值)
  2. 计算当前梯度 ∇ f ( θ ) \nabla f(\theta) f(θ)
  3. 沿负梯度方向更新参数:
    θ = θ − η ⋅ ∇ f ( θ ) \theta = \theta - \eta \cdot \nabla f(\theta) θ=θηf(θ)
  4. 重复步骤 2~3,直到收敛

举例:函数 ( θ − 3 ) 2 (\theta - 3)^2 (θ3)2

  • 最小值在 θ = 3 \theta = 3 θ=3
  • 梯度为 ∇ f ( θ ) = 2 ( θ − 3 ) \nabla f(\theta) = 2(\theta - 3) f(θ)=2(θ3)
  • 更新公式: θ = θ − η ⋅ 2 ( θ − 3 ) \theta = \theta - \eta \cdot 2(\theta - 3) θ=θη2(θ3)
步骤 θ \theta θ 梯度 2 ( θ − 3 ) 2(\theta-3) 2(θ3) 更新量 θ \theta θ
0 0.00 -6.00 +0.6 0.60
1 0.60 -4.80 +0.48 1.08

总结

梯度下降适用于小数据场景,通过每次全量计算梯度更新参数,稳定但收敛慢。


⚡ 随机梯度下降 SGD

什么是 SGD?

SGD 每次只使用一个样本的梯度进行参数更新,提高训练速度和计算效率。

核心流程

  • 每轮训练打乱数据
  • 对每个样本 ( x i , y i ) (x_i, y_i) (xi,yi)
    • 计算梯度 ∇ L i ( θ ) \nabla \mathcal{L}_i(\theta) Li(θ)
    • 参数更新 θ = θ − η ⋅ ∇ L i ( θ ) \theta = \theta - \eta \cdot \nabla \mathcal{L}_i(\theta) θ=θηLi(θ)
  • 重复多个 epoch

举例:线性回归 f ( x ) = w x + b f(x) = wx + b f(x)=wx+b

  • 数据: ( 1 , 3 ) , ( 2 , 5 ) , ( 3 , 7 ) (1,3), (2,5), (3,7) (1,3),(2,5),(3,7)
  • 初始化 w = 0 , b = 0 , η = 0.1 w = 0, b = 0, \eta=0.1 w=0,b=0,η=0.1

经过一轮 SGD 后, w w w b b b 会逐步接近目标值 ( 2 , 1 ) (2, 1) (2,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值