LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS论文阅读

LARS优化器

介绍

​ LARS是基于SGD提出,适用于large batch size的优化器。

​ 通过增大batch size来提高模型的训练速度,如果保持训练epoch不变,则训练的step会减少。弥补训练迭代次数不足的直接方法可以增大LR,当batch size增大k倍时,LR也增大k倍。但是较大的LR会导致网络泛化,特别是在训练的初始阶段。

优点

  • 网络的每一层都有一个local LR,使得模型训练更稳定
  • 通过权重范数控制更新的幅度,可以更好的控制训练速度

启发

  • 论文提出“learning rate warm-up”来解决large batch size出现的问题
    • 在训练前几个epoch,LR从一个较小值开始训练,增加到目标LR(k倍增长)
  • 作者发现,在网络开始训练时,不同层的权重L2范数和对应梯度L2范数的比值(ratio)的差异很大
    • image-20210828172243893
    • 网络参数更新image-20210828172513753
    • 对于较小的ratio,使用较大的LR可能导致 λ ∇ L ( w t ) \lambda\nabla L(w_t) λL(wt)大于 w t w_t wt,从而导致模型不稳定,这也是warm-up方法有效的原因
    • 作者认为,每一层都有不同的ratio,那么,每一层都应该使用不同的LR,作者引入local LR,每一层的local LR不同,然后全局LR通过local LR进行更新

方法与实现

Local LR计算, η < 1 \eta<1 η<1表示一次更新是每层会改变参数的置信度trust

image-20210828174050032

由于 η \eta η很小,对于较小的ratio,计算得到的Local LR也很小,参数更新比较稳定

参数更新, γ \gamma γ为全局学习率, l l l代表层数

image-20210828173739535

引入Local LR的同时,对梯度的 l 2 l_2 l2进行了归一化,因此参数更新幅度不再依赖于梯度的大小,所以缓解梯度渐变消失和爆炸的问题。

拓展至SGD,包含weight decay的参数更新

image-20210828174348110

伪代码

image-20210828174402718

实验

image-20210828191212189

作者以batch size512作为batchline,将batch size增加到8k,使用LARS训练,达到了和512相当的效果

image-20210828191624854

作者将warm-up和LARS结合,将batch size增加到32k,也能达到和256相当的效果

参考

优化器方法-LARS(Layer-wise Adaptive Rate Scaling)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值