优化函数框架

框架

该总结框架来自知乎文章:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam

给定参数 w w w,损失函数 f ( w ) f(w) f(w), 学习率 α \alpha α,对于第 t t t个step:

  1. 计算目标函数关于当前参数的梯度: g t = ∇ f ( w t ) g_{t}=\nabla f\left(w_{t}\right) gt=f(wt)
  2. 根据历史梯度,计算一阶动量和二阶动量:
    一阶动量: m t = ϕ ( g 1 , g 2 , ⋯   , g t ) m_{t}=\phi\left(g_{1}, g_{2}, \cdots, g_{t}\right) mt=ϕ(g1,g2,,gt)
    二阶动量: V t = ψ ( g 1 , g 2 , ⋯   , g t ) V_{t}=\psi\left(g_{1}, g_{2}, \cdots, g_{t}\right) Vt=ψ(g1,g2,,gt)
  3. 计算当前时刻的下降梯度: η t = α ⋅ m t / V t \quad \eta_{t}=\alpha \cdot m_{t} / \sqrt{V_{t}} ηt=αmt/Vt
  4. 根据下降梯度更新参数: w t + 1 = w t − η t w_{t+1}=w_{t}-\eta_{t} wt+1=wtηt

其中:

一阶动量:当前时刻梯度值的指数移动平均
m t = ϕ ( g 1 , g 2 , ⋯   , g t ) = β m t − 1 + ( 1 − β ) g t m_{t}=\phi\left(g_{1}, g_{2}, \cdots, g_{t}\right) =\beta m_{t-1}+(1-\beta) g_{t} mt=ϕ(g1,g2,,gt)=βmt1+(1β)gt

二阶动量:之前所有时刻梯度值的平方和

V t = ψ ( g 1 , g 2 , ⋯   , g t ) = ∑ i = 1 t g i 2 V_{t}=\psi\left(g_{1}, g_{2}, \cdots, g_{t}\right)=\sum_{i=1}^{t} g_{i}^{2} Vt=ψ(g1,g2,,gt)=i=1tgi2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值