Scaling SGD Batch Size to32K for ImageNet Training论文阅读笔记

论文地址:
Scaling SGD Batch Size to32K for ImageNet Training
其他相关的:
224秒训练ImageNet!这次创纪录的是索尼大法
ImageNet/ResNet-50 Training in 224 Seconds
LARGE BATCH OPTIMIZATION FOR DEEP LEARNING: TRAINING BERT IN 76 MINUTES

论文内容介绍

大batch Size在多个GPU上并行训练可以充分利用硬件资源,减少训练时间,但是众所周知,大batch训练是不稳定的,会产生泛化差距,准确度会下降很多。常见的一些缓解大batch Size训练精度下降的方法有linear scaling LR rule,Batch Normalization, warmup schemes。Scaling SGD Batch Size to32K for ImageNet Training这篇文章提出一个新的方法,叫Layer-wise Adaptive Rate Scaling (LARS),分层自适应速率缩放

作者表示,提出这个方法的原因是发现,不同层的权重和梯度的比值不同。高比值层(权重值大,梯度小)的最佳学习率不适合低比值的层,而SGD通常对所有层使用相同的学习率,导致模型不容易收敛(权重大梯度小时,需要较大学习率才能改得动权重,但是这时权重小梯度大的层就会更新特别多)。作者认为,模型中不同的层应当需要不同的学习率

下表表示AlexNet模型中各层的权重与梯度的L2范数比值,可以看到相差地特别大。
在这里插入图片描述

在通常的训练中,模型权重更新的公式如下:(权重-学习率×梯度)
在这里插入图片描述

加入LARS方法后,公式变成下面这样:(l为缩放系数超参,β是权重衰减系数,||w||2指l2范数,下三角w表示梯度,γ是原学习率)
在这里插入图片描述
在这里插入图片描述

即先用每一层的权重2范数除以梯度2范数,再乘到原学习率上,因此每一层的学习率都不相同,并且是自适应调整的,这也就是为什么这个方法叫分层自适应速率缩放

实验结果

在加入LARS方法之后,训练曲线对比图如下,右边两个是加入LARS后的结果,可以看出提升非常明显。
在这里插入图片描述

加入LARS之后,Batch Size可以达到32K,并且test准确度只掉了一点点,可见其效果非常棒。
在这里插入图片描述

感觉这个东西在小batch Size上面也会有效,可以尝试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值