优化器

优化器

SGD

Wnew=Wold−α∂Loss∂WoldW_{new}=W_{old} - \alpha\frac{\partial{Loss}}{\partial{W_{old}}}Wnew=WoldαWoldLoss

α\alphaα:学习率
缺点:容易陷入局部极小值
加入动量(Momentum),解决局部极小值。

SGD+Momentum

Momentum更新:Vnew=ηVold+α∂LossWoldV_{new}=\eta V_{old} +\alpha \frac{\partial{Loss}}{W_{old}}Vnew=ηVold+αWoldLoss

更新公式:Wnew=Wold−VnewW_{new} = W_{old}-V_{new}Wnew=WoldVnew

α\alphaα:学习率
η\etaη:动量系数
优点:防止陷入局部极小值,由于动量由历史积累,使得收敛速度快。
缺点:容易震荡

NAG(Nesterov加速梯度)

Momentum完全展开公式:Wnew=Wold−ηVold−α∂LossWoldW_{new} = W_{old}- \eta V_{old}-\alpha \frac{\partial{Loss}}{W_{old}}Wnew=WoldηVoldαWoldLoss
α∂LossWold\alpha \frac{\partial{Loss}}{W_{old}}αWoldLoss是个很小的值,未来位置权重:
Wfuture=Wold−ηVoldW_{future}=W_{old}-\eta V_{old}Wfuture=WoldηVold

Nesterov Momentum公式Vnew=ηVold+α∂LossWfutureV_{new}=\eta V_{old}+\alpha \frac{\partial{Loss}}{W_{future}}Vnew=ηVold+αWfutureLoss

更新公式:Wnew=Wold−VnewW_{new} = W_{old}-V_{new}Wnew=WoldVnew

  • 梯度更新规则
    vt=γvt−1+η▽θ(θ−γvt−1)v_t=\gamma v_{t-1}+\eta \triangledown_{\theta}(\theta-\gamma v_{t-1})vt=γvt1+ηθ(θγvt1)

θ=θ−vt\theta=\theta-v_tθ=θvt

Adagrad

梯度缓存更新:Cachenew=Cacheold+(∂LossWold)2Cache_{new}=Cache_{old}+(\frac{\partial{Loss}}{W_{old}})^2Cachenew=Cacheold+(WoldLoss)2
更新公式:Wnew=Wold+αCachenew+ϵ∂LossWoldW_{new} = W_{old}+\frac{\alpha}{\sqrt{Cache_{new} + \epsilon}}\frac{\partial{Loss}}{W_{old}}Wnew=Wold+Cachenew+ϵαWoldLoss
缺点:缓存始终增加,学习率会降到非常低以至于训练无法有效进行,导致训练提前结束。

RMSProp

缓存更新公式:Cachenew=γCacheold+(1−γ)(∂LossWold)2Cache_{new}=\gamma Cache_{old}+(1-\gamma)(\frac{\partial{Loss}}{W_{old}})^2Cachenew=γCacheold+(1γ)(WoldLoss)2

更新公式:Wnew=Wold+αCachenew+ϵ∂LossWoldW_{new} = W_{old}+\frac{\alpha}{\sqrt{Cache_{new} + \epsilon}}\frac{\partial{Loss}}{W_{old}}Wnew=Wold+Cachenew+ϵαWoldLoss

Adam

Adam Momentum更新公式Vnew=β1Vold+(1−β1)∂LossWoldV_{new} = \beta_{1}V_{old}+(1-\beta_1)\frac{\partial{Loss}}{W_{old}}Vnew=β1Vold+(1β1)WoldLoss

缓存更新公式:Cachenew=β2Cacheold+(1−β2)(∂LossWold)2Cache_{new}=\beta_2 Cache_{old}+(1-\beta_2)(\frac{\partial{Loss}}{W_{old}})^2Cachenew=β2Cacheold+(1β2)(WoldLoss)2

Adam更新公式:Wnew=Wold−αCachenew+ϵVnewW_{new}=W_{old}-\frac{\alpha}{\sqrt{Cache_{new} + \epsilon}}V_{new}Wnew=WoldCachenew+ϵαVnew

β1=0.9\beta_1=0.9β1=0.9,β2=0.99\beta_2=0.99β2=0.99,ϵ=1e−08\epsilon=1e-08ϵ=1e08

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值