Nesterov Momentum简介

Standard Gradient Update:沿着梯度的反方向改变参数(梯度指示增长的方向,我们通常希望最小化损失函数)。假设一个参数向量x和梯度dx,其更新公式为:

# Vanilla update
x += - learning_rate * dx

Momentum Update:这种更新方式从物理角度看待优化问题,在深度网络上往往能有更好的收敛率。具体而言,损失可以视为山丘地区的高度(因此有势能U=mgh,且U∝h),用随机数初始化参数视为给一个在某处的粒子0初始速度。那么优化过程可以视为粒子在地表滚动过程的模拟。

粒子上的作用力和势能的梯度相关,这个力正好是损失函的(负)梯度。并且F=ma,所以(负)梯度又和粒子的加速度成比例。注意这里和上面的SGD更新不同,SGD中梯度直接影响位置。而在物理视角中梯度直接影响速度,间接影响位置:

# Momentum update
v = mu * v - learning_rate * dx # integrate velocity
x += v # integrate position

这里引入了一个额外的超参数mu,它被称为动量(一般值在0.9左右),但它的物理意义更接近摩擦系数。可以看到,这个变量减小速度,并且降低系统的势能,不然粒子永远不会在山丘底部停下。

在交叉验证时,这个参数一般设置成 [0.5, 0.9, 0.95, 0.99]。类似于学习率的退火规划,优化有时也能受益于动量规划,比如初始

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值