点击上方“MLNLP”,选择“星标”公众号
重磅干货,第一时间送达
编辑:忆臻
https://www.zhihu.com/question/338066667
本文仅作为学术交流分享,如果侵权,会删文处理
笔者在知乎上发现了一个叫“神经网络中 warmup 策略为什么有效;有什么理论解释么?”的问题,很有意思,下面与大家分享一些大佬们的见解,希望对你的研究有帮助。
问题备注:
使用 SGD 训练神经网络时,在初始使用较大学习率而后期切换为较小学习率是一种广为使用的做法,在实践中效果好且最近也有若干文章尝试对其进行了理论解释。
而 warmup 策略则与上述 scheme 有些矛盾。warmup 需要在训练最初使用较小的学习率来启动,并很快切换到大学习率而后进行常见的 decay。那么最开始的这一步 warmup 为什么有效呢?它的本质含义是什么,是否有相关的理论解释?进一步的,能否通过良好的初始化或其他方法来代替 warmup 呢?
知乎高质量回答:
作者:香侬慧语科技https://www.zhihu.com/question/338066667/answer/771252708
这个问题目前还没有被充分证明,我们只能从直觉上和已有的一些论文[1,2,3]得到推测:
有助于减缓模型在初始阶段对mini-batch的提前过拟合现象,保持分布的平稳
有助于保持模型深层的稳定性
下面来看一下为什么warmup会有这样的效果。
首先,[1]告诉我们,当我们的mini-batch增大的时候,learning rate也可以成倍增长,即,mini-batch大小乘以k,lr也可以乘以k。这是为什么呢?比如现在模型已经train到第t步,权重为 ,我们有k个mini-batch,每个大小为n,记为
。下面我们来看,以学习率
训k次