主页 > 产品中心 >

产品中心

神经网络中warmup策略为什么有效有什么理论解释么

这个问题目前还没有被充分证明,我们只能从直觉上和已有的一些论文[1,2,3]得到推测:有助于减缓模型在初始阶段对mini-batch的提前过拟合现象,保持分布的平稳有助于保持模型深层的稳定性下面来看一下为什么warmup会有这样的效果。首先,[1]告诉我们,当我们的mini-batch增大的时候,learningrate也可以成倍增长,即,mini-batch大小乘以k,lr也可以乘以k。这是为什么呢?比如现在模型已经train到第t步,权重为,我们有k个mini-batch,每个大小为n,记为。下面我们来看,以学习率训k次和以学习率一次训时学习率的关系。假设我们用的是SGD,那么训k次后我们可以得到:如果我们一次训就可以得到:显然,这两个是不一样的。但如果我们假设,那么令就可以保证。那么,在什么时候可能不成立呢?[1]告诉我们有两种情况:在训练的开始阶段,模型权重迅速改变mini-batchsize较小,样本方差较大第一种情况很好理解,可以认为,刚开始模型对数据的“分布”理解为零,或者是说“均匀分布”(当然这取决于你的初始化);在第一轮训练的时候,每个数据点对模型来说都是新的,模型会很快地进行数据分布修正,如果这时候学习率就很大,极有可能导致开始的时候就对该数据“过拟合”,后面要通过多轮训练才能拉回来,浪费时间。当训练了一段时间(比如两轮、三轮)后,模型已经对每个数据点看过几遍了,或者说对当前的batch而言有了一些正确的先验,较大的学习率就不那么容易会使模型学偏,所以可以适当调大学习率。这个过程就可以看做是warmup。那么为什么之后还要decay呢?当模型训到一定阶段后(比如十个epoch),模型的分布就已经比较固定了,或者说能学到的新东西就比较少了。如果还沿用较大的学习率,就会破坏这种稳定性,用我们通常的话说,就是已经接近loss的localoptimal了,为了靠近这个point,我们就要慢慢来。第二种情况其实和第一种情况是紧密联系的。在训练的过程中,如果有mini-batch内的数据分布方差特别大,这就会导致模型学习剧烈波动,使其学得的权重很不稳定,这在训练初期最为明显,最后期较为缓解(所以我们要对数据进行scale也是这个道理)。这说明,在上面两种情况下,我们并不能单纯地成倍增长lr。要么改变学习率增长方法,要么设法解决上面两个问题。有趣的是,warmup在ResNet[4]中就已经提到了,原文说的是:Wefurtherexploren=18thatleadstoa110-layerResNet.Inthiscase,wefindthattheinitiallearningrateof0.1isslightlytoolargetostartconverging.Soweuse0.01towarmupthetraininguntilthetrainingerrorisbelow80%(about400iterations),andthengobackto0.1andcontinuetraining.在注释中说的是:Withaninitiallearningrateof0.1,itstartsconverging(<90%error)afterseveralepochs,butstillreachessimilaraccuracy.这两句话是说,如果一开始就用0.1,虽然会很快收敛,但之后acc还是不会提高(使用了pateausschedule);如果用了warmup,在收敛后还能有所提高。也就是说,用warmup和不用warmup达到的收敛点,对之后模型能够达到的suboptimal有影响。这说明什么?这说明不用warmup收敛到的点比用warmup收敛到的点更差。这可以从侧面说明,一开始学偏了的权重后面拉都拉不回来……同时,[2]中也提到:ThemainobstacleforscalingupbatchistheinstabilityoftrainingwithhighLR.Hofferetal.(2017)triedtouselessaggressive"squarerootscaling"ofLRwithspecialformofBatchNormalization("GhostBatchNormalization")totrainAlexnetwithB=8K,butstilltheaccuracy(53.93%)wasmuchworsethanbaseline58%.这说明一开始的高lr对深度模型的影响是很显著的。它的不稳定性(instability)也就是上面我们提到的两个点。[3]通过一些实验告诉我们:Weshowthatlearningratewarmupprimarilylimitsweightchangesinthedeeperlayersandthatfreezingthemachievessimilaroutcomesaswarmup.(a)Validationaccuracyand(b)Learningrateforthethreetrainingsetups(c)CCAsimilarityfori-thlayerfromtwodifferentiterations(0-th(beforewarmup)and200-th(afterwarmup)duringtraining(d)ComparingwarmupandFCfreezingstrategiesonVGG11trainingCCAsimilarityoutputplotsfor(a)SBnowarmup,(b)LBnowarmup,(c,d)LB+warmuptraining.Thei,j-thcellrepresentstheCCAsimilaritybetweenlayeriofthefirstmodel,andlayerjofother.Ahigherscoreimpliesthatthelayersaremoresimilar(lightercolor).从图二(b,c)可以看到,加了warmup增加了模型最后几层的相似性,这表明warmup可以避免FC层的不稳定的剧烈改变。从图一中可以看到,在有了warmup之后,模型能够学得更稳定。综上所述,如果来总结一下现在大batchsize和大learningrate下的学习率变化和规律的话,可以认为,学习率是呈现“上升——平稳——下降”的规律,这尤其在深层模型和具有多层MLP层的模型中比较显著。如果从模型学习的角度来说,学习率的这种变化对应了模型“平稳——探索——平稳”的学习阶段。那么你也许会问,为什么早期的神经网络没有warmup?这就回到了之前我们说的两点,与它们对应,早期神经网络的环境是:网络不够大、不够深数据集普遍较小,batchsize普遍较小这两点和之前[1]中提到的两点是对应的。网络不够大不够深就意味着模型能够比较容易地把分布拉回来,数据集比较小意味着mini-batch之间的方差可能没有那么大。从而学习率不进行warmup可能不会出现很严重的学习问题。[1]Accurate,LargeMinibatchSGD:TrainingImageNetin1Hour[2]LARGEBATCHTRAININGOFCONVOLUTIONALNETWORKS[3]ACLOSERLOOKATDEEPLEARNINGHEURISTICS:LEARNINGRATERESTARTS,WARMUPANDDISTILLATION[4]DeepResidualLearningforImageRecognition
关键词:
我要留言共 0 条留言
我要留言:
内容:
(内容500字,1000字)
验证码:
 
Copyright © 2015 海宁市普宁板业有限公司 版权所有
网站地图    友情链接: