文章来源 | 恒源云社区
原文地址 | NAG优化器
原文作者 | 角灰
社区人才济济,小编今天又发现一个宝藏版主‘角灰’。
小编是个爱分享的人,看见好文章好作者怎能控制住不分享给大家呢?所以,接下来跟着小编我,一起快速浏览一下文章内容吧!
正文开始
最近在看fairseq源码时发现NAG优化器 (Nesterov Accelerate gradient)的实现与torch自带的有些许不一样,于是打算查下资料了解清楚。
先回忆下Momentm,该梯度下降法引入动量的概念,使用β对历史梯度进行滑动指数加权平均,最早的梯度衰减的最快,对当前更新影响小;反之,越接近当前的梯度对更新的影响越大,公式为
其中Vt、gt、g(θt)分别代表t时刻的速度、梯度、模型参数,μ是动量系数,lr是学习率。该方法的思想是对网络参数进行平滑处理,让梯度的摆动幅度不要太大。
NAG类似Momentum,它们都是利用历史梯度来更新参数,区别在于,NAG先利用μVt,对θt进行部分更新得到θt+μVt,然后利用梯度g(θt+μVt)更新得到θt+1,其公式如下所示: