原
论文阅读:Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
2018年04月17日 22:41:53
编码视界
阅读数:799
</div>
<div class="operating">
</div>
</div>
</div>
</div>
<article class="baidu_pl">
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
<div class="article-copyright">
<svg class="icon" title="CSDN认证原创" aria-hidden="true" style="width:53px; height: 18px; vertical-align: -4px;">
<use xlink:href="#CSDN_Cert"></use>
</svg>
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jing_xian/article/details/79982209 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
<div id="content_views" class="markdown_views prism-atom-one-dark">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
<p>论文首先提出了神经网络训练的一个不好的现象:batch size的增大到一定程度,ResNet的分类准确率会下降。这个现象推翻了我以前的一个直觉:觉得batch size大,训练的效果会更好。</p>
为了加快训练的速度(增大batch size)同时保证准确率,论文提出了一个trick:让学习率lr随着batch size线性增大(Linear Scaling Rule),使得训练时的batch size在[64(2^6), 8192(2^13)]的区间范围变化时可以得到了几乎不变的准确率。
上述linear scaling rule是基于一个很强的假设:单个mini-batch内的各样本的梯度相同。在训练的开始阶段,梯度差异大,假设完全不成立,因此论文提出了gradual warmup机制。gradual warmup在训练的5个epoch使用0.1的学习率(对应batch size=256时的学习率),然后慢慢提高增加到linear scaling rule对应的学习率。
更多详细信息可参考:https://www.zhihu.com/question/60874090/answer/181413785