分类网络Trick大汇总

以下文章来源于CV炼丹猿 ,作者yuanCruise


本文介绍了训练分类网络的各个阶段可以用来提升性能的Trick,也就是俗称的调参术。结果顶级调参术的调教,ResNet- 50的top-1验证精度在ImageNet上从75.3%提高到79.29%。这个结果比直接设计全新的网络效果都要好。

1.Baseline

现有的深度学习分类网络,其主要整体框架如下图所示:首先对数据进行预处理,并利用小批量随机梯度下降的训练模板,在每次迭代中,通过随机抽取batch大小的预处理后图像计算梯度并更新网络参数,并经过K个epoch之后停止迭代。

2.预处理阶段

训练阶段:

◎对于每幅图像,将其解码成32位浮点原始像素值[0,255]。

◎利用0.5的概率进行随机翻转。

◎在色调,饱和度和亮度三个方面进行均匀增强。

◎为输入图像加入正态分布的白噪声,用于提升分类网络的鲁棒性。

◎将RGB通道归一化,分别减去123.68、116.779、103.939,再除以58.393、57.12、57.375。

◎对图像进行随机裁剪,裁剪后的长宽比范围为[3/ 4,4 /3]和面积大小范围为[8%,100%]的矩形区域,然后将裁剪后的区域调整为224 * 224的正方形图像,分类网络多用正方形输入是为了使得网络能够对目标比例具有更强的泛化能力。

测试验证阶段:

将每个图像的短边调整为256像素,同时保持其高宽比。接下来,在中心裁剪出224×224的区域,并对类似于训练的RGB通道进行归一化处理。且不执行任何随机扩展。

权值初始化:

卷积层和全连接层:Xavier算法进行初始化,所有的偏置初始化为0。对于BN层,伽马参数都初始化为1,β参数初始化为0。

3.训练初始阶段

利用大batch进行模型的训练,会增加模型的并行性且降低通信成本,在训练过程中,炼丹师的直观感受更多的是大batch训练的网络会更加的稳定,主要原因是batch越大整个随机梯度的方差就越小,噪声越小,因为batch越大越能表征样本空间。因此若是你使用大batch就可以按比例的增加学习率。然而有很多论文证明直接增大batch会导致训练的收敛变慢,并且最终网络的性能也会下降,table4中的第一行实验结果也验证了这一点。为了提升大batch的训练性能,提出了以下三个训练trick。

LR warmup

若你的训练并没有预训练权重,而是使用随机初始化权重的方式,那么在训练的开始阶段,由于初始化权重的随机性若直接使用过大的学习率可能导致训练前期的震荡,因此我们可以使用warmup的方式,直白来说就是刚开始不要太剧烈,让学习率在初始的N个epoch中通过预热的方式缓慢上升到预先设定的初始值。

Zero γ

BN层的可学习参数初始化。BN层的两个科学系参数γ和β。最终经过BN层的输出会在归一化之后通过γ*x+β的方式重新学习到原始分布。而在初始化这两个参数时,通常将γ初始化为1,β初始化为0。而如下图所示是Resnet中常见的一个跳跃连接的子模块,该子模块的输出分别为block(x)+x,分别来自于输入的跳跃和block的输出。而通常情况下每个block的最后一层都是BN层,用于归一化。在这个过程中,我们将该BN层的γ参数也初始化为0,此时整个跳跃链接在初始阶段就变成了恒等连接,这将使得网络的初始深度变浅,收敛更快更稳定。

No bias decay

不要对bias参数利用衰减系数。通常在训练网络时会对每个可学习参数设置一个权重衰减系数,用于抑制过拟合。然而我们只对卷积权重和全连接层的参数进行衰减,对bias和BN层中的可学习参数不进行衰减。

所有Trick的消融研究如下表所示。仅通过线性扩展学习率将批量大小从256个增加到1024个,导致前1名的准确率下降0.9%,而将上述3个Trick算法叠加在一起则弥补了这一差距。

4.网络结构阶段

模型调整是对网络架构的一个小调整,比如改变特定卷积层的步长。这样的调整通常几乎不会改变计算复杂度,但可能会对模型精度产生不可忽视的影响。在本节中,我们将以ResNet为例研究模型调整的影响。

ResNet基础结构:

ResNet网络由一个输入主干、四个stage阶段和一个最终输出层组成,如图所示。在输入主干中,通过一个stride为2的卷积和stride为2的pooling将输入图降采样四倍,并将通道增加到64个。从stage2开始每个stage都包含有stride为2的降采样模块,每个stage是由一个降采样模块和N个残差块构成。降采样模块如图所示,由两条并行的通道构成,实现了跳跃链接。残差块和降采样模型的结构一样,只是没有stride为2的卷积。不同的resnet网络结构上是相似的,就是每个stage中的残差块的个数不同。

然而残差块和降采样块在构建的时候存在一些小问题,本文提出了三种改进策略,有效提升了resnet网络的性能。分别称为resnet-B,resnet-C,resnet-D。

ResNet-B

它改变了ResNet的降采样块。观察发现,在降采样模块中,pathA中的卷积忽略了输入特征图的四分之三,因为它使用的核尺寸为1*1,步长为2。ResNet-B在pathA中切换前两个卷积的步长大小,如下图所示,因此没有信息被忽略。由于第二次卷积的核大小为3*3,所以pathA的输出形状保持不变。

ResNet-C

结果表明,卷积的计算成本是核的宽,高的乘积。一个7*7卷积比一个3*3卷积贵5.4倍。因此,这个微调将输入主干中的7*7卷积替换为3个3*3卷积,如下图所示,第一个和第二个卷积的输出通道为32,步长为2,而最后一个卷积的输出通道为64。

ResNet-D

受ResNet-B的启发,我们注意到降采样块pathB中的1*1个卷积也忽略了输入特征图的3/4,我们想对它进行修改,这样就不会忽略任何信息。根据经验,我们发现在卷积之前添加一个步长为2的平均池化层,使其步长变为1,在实践中效果良好,对计算成本的影响很小。这个调整在如下图所示。

下表展示了上述提到的ResNet-BCD结构堆叠在一起后的性能,我们发现一些小的结构调整,能够有1个点左右的提升。

5.训练阶段

余弦学习速率衰减(Cosine Learning Rate Decay)

如下图所示,展示了利用余弦学习速率和阶跃衰减速率在验证集上的性能比对。余弦衰减在开始时缓慢降低学习速度,然后在中间几乎呈线性下降,到最后再次下降。与阶跃衰减相比,余弦衰减从一开始就对学习进行衰减,但在阶跃衰减使学习速率降低10倍之前,余弦衰减仍然很大,这可能会提高训练的精度。

标签平滑(label smooth)

这是一种抑制网络过拟合现象的策略,如下图所示,它主要通过软化标签,加入噪声的方式,实现过拟合抑制。具体我之前写过一篇文章。

混合训练(Mixup Training)

这其实是一种数据增强方法,称为mixup。在mixup中,每次我们随机抽取两个例子(xi, yi)和(xj, yj)。然后通过这两个实例样本的加权线性插值得到一个新的实例样本,实现数据增强。

知识蒸馏(Knowledge Distillation)

在知识蒸馏中,我们使用教师模型来帮助训练当前的模型,即学生模型。教师模型通常是预训练的模型,具有较高的准确性,因此通过模仿,学生模型可以在保持模型复杂性不变的情况下提高自身的准确性。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容