图像分类训练技巧包(三)

image

论文名: Bag of Tricks for Image Classification with Convolution Neural Networks
论文地址: http://arxiv.org/pdf/1812.01187v2.pdf

这篇文章是亚马逊李沐团队的一篇技巧(tricks)文章,被CVPR2019收录了。虽然题目是讲的Image Classification,但是作者也说了,在目标检测,实例分类等问题上也是有一定的作用的。在此做下笔记,有理解不对的地方还请大佬们勿喷。

这一篇文章介绍论文的最后一部分,主要讲如何通过训练过程中的一些策略来进一步提升模型的准确率以及所有的技巧在目标检测与实例分割上的效果。还没看过前两篇文章的同学可以先看完再回来(传送门1:图像分类训练技巧包(一) 传送门2:图像分类训练技巧包(二))。

Training Refinements 训练改进

作者整理了四种训练过程中的技巧方法来提高模型的准确率。

image

Cosine Learning Rate Decay

我们都知道,在训练时,设置学习率太低,会使得训练过程太慢,但是设置学习率太高,我们又不容易得到最优解。如下图:

image

这时就需要学习率衰减,让学习率随着epoch的增加,适度的调低,从而能找到最优解

常用的学习率衰减方法是常用的学习率衰减策略是步衰减(Step Decay),即每隔N个Epoch,学习率乘上一个固定系数。比如每10个epoch降低学习率为原来的10%。如图:

image

其中虚线线条是指数型下降曲线,蓝色线条是阶梯式下降曲线

这种衰减策略有一个不好的点就是,因为学习率衰减跳跃的变化较大,容易在切换学习率时引发震荡。

于是,德国弗雷堡大学提出使用余弦学习率衰减。(这个公式是一个简化版的公式,感兴趣的同学可以自行去看看原版。)

image

其中,T为批次总数(忽略warmup阶段),t为当前批次,η为设定学习率。这样就使得学习率的衰减过程满足类余弦的过程。

image

红色的线为采用“余弦衰减“策略,蓝色的为采用“步衰减”策略。可以发现,余弦衰减策略更加平滑,训练的精度提升也是逐步提升。反观步衰减策略,训练的精度是一种跳跃的形式。最后,余弦与步衰减策略都能达到差不多精度。值得注意的一点是,步衰减在60个epoch的时候就能达到最后的精度,余弦衰减需要到120个epoch才能达到。具体谁好谁不好,也说不准,还是在实验中具体问题具体选择。

Label Smoothing

image

该技巧最初由谷歌2015年提出,并应用在inception-v2的训练上。本质上是一种正则化方法,解决的问题也是为了防止过拟合

我们知道多分类任务中,输入图片经过网络,在最后一层全连接层会得到输入图片对应于各个类别的置信度分数,这些分数会被softmax进行归一化处理,最终得到输入图片属于每个类别的概率。

image

得到概率之后,在利用交叉熵函数来计算损失。

image

其中qi是真实样本分布(i表示某一类)。

image

这样就会带来一个问题。

image

在训练网络的过程中,为了要得到最优的预测概率分布,就要使预测概率和标签真实概率的交叉熵最小化。在此过程中,为了达到最好的效果,预测概率分布zi将会使自身往正确标签和错误标签差值大的方向学习,这样网络会趋向去用极高的概率来输出一个分类结果,在训练样本不足的情况下,会导致网络过拟合,泛化能力差。

并且作者认为,罪魁祸首就是qi——真实样本的分布。

为了解决qi的问题,提出了label smoothing标签平滑的正则化方法。这种做法是想通过“软化”qi来使得在计算损失的过程中抑制过拟合。具体做法如下:

image

对label进行修改,相当于往真实分布中加入了人为噪声u(k),为了便于计算,该噪声服从简单的均匀分布,并且由参数ϵ控制相对权重。大概效果如下:

image

这样一来,交叉熵公式就可以展开为:

image

从损失函数的角度上看,Label Smoothing相当于为损失函数增加了人为引入的先验概率 u(k) 和预测概率 q(k)之间的惩罚项,并且赋予了相对权重 ϵ。Loss函数分别以不同的权重对预测label与真实label预测label与先验分布进行惩罚。

image

至于为什么可以做样做?

大概是为了枪打出头鸟吧(逃

Knowledge Distillation

这也是谷歌提出的一个技巧,而且还是三位大佬所提出来的。

image

知识蒸馏是一种模型压缩常见方法(本质上更接近于迁移学习),用于模型压缩指的是在teacher-student框架中,将复杂、学习能力强的网络( teacher model )学到的特征表示“知识”蒸馏出来,传递给参数量小、学习能力弱( student model )的网络。也即将集成模型的泛化能力迁移到小模型

知识蒸馏的总体思想,就是用一个训练好的大容量模型去指导一个小容量模型训练,从而得到更好的表现。目的是为了压缩一个大的网络结构到一个更为紧凑的网络并把知识保留下来。

在用深度学习处理海量复杂的数据分布时,一种常见的做法是建立一个复杂的神经网络模型,如含有上百层的Resnet,这种复杂的网络往往含有多达几百万个参数。并且有着:1.在新的场景下重新训练成本过高2.由于模型过于庞大而难以大规模部署(deployment)的缺点。

那我们能不能将大神经网络学习出来的知识作为先验,将先验知识交给小神经网络中,再之后实际应用中部署小规模的神经网络呢?

答案是:当然可以!

image

我们将大网络称为teacher model,小网络称为student model。

我们在知识蒸馏的过程中,将softmax进行了一下修改:

image

T是一个温度参数(与蒸馏对应),是一个超参数,取20。当T=1时,就是一般的softmax函数。

数据之间是有相似性的
在一个大规模网络中,预测的种类往往是上千种,正确种类的概率值能够达到0.9,错误类的概率值可能分布在10-8~10-3这个区间中。虽然每个错误类别的的概率值都很小,但是10-3还是比10-8高了五个数量级。

image

比如:一只狗,在猫这个类别下的概率值可能是0.001,而在汽车这个类别下的概率值可能就只有0.0000001不到,这能够反映狗和猫比狗和汽车更为相似。但是一都是在大规模网络中才会有的关系,小规模网络就没有。这就是大规模神经网络能够得到的更为丰富的数据结构间的相似信息。

image

大规模网络在训练的时候0-1编码来训练,我们将0-1编码称为hard-target(硬目标),最后的softmax层来产生的概率分布其实是一个比原来硬目标更软的soft-target(软目标)。这个分布是由很多(0,1)之间的数值(概率)组成的。

image

Hinton认为同一个样本,用在大规模神经网络上产生的软目标来训练一个小的网络时,学习起来会更快收敛。

(但是如果soft-targe是像这样的信息[0.98 0.01 0.01],就意义不大了,所以需要在softmax中增加温度参数T。)按照softmax的分布来看,随着T参数的增大,这个软目标的分布更加均匀(一般来说T=20)。

具体的训练过程如下:

image

首先是利用大网络通过带有T的softmax输出一个软目标,再用这个软目标当做小网络的label,利用相同的T值来训练(L(soft)),此时,再加上小网络自己的损失函数(L(hard))构成整体损失来完成训练。最后在实际部署中,将T值恢复到1,让类别概率偏向正确类别。

本文对hinton的loss进行了修改。

image

虽然有些不同,但原理和hinton的一致。

image

T是之前所提到的温度超参数。整个网络分为两个部分,一个是标准CE,完成标准的训练,另一个是蒸馏损失,对teacher model和student model的输出差异进行惩罚,辅助学习。T^2用来平滑整个Loss的。

Mixup Training

这一技巧来自MIT和Facebook。属于数据增强类。

image

我们常用的数据增强就是翻转、小角度旋转等操作。

image

MIT和Facebook联合提出了一种混合数据增强的策略。mixup指从训练集中随机选取两个样本(xi,yi) 和(xj,yj) ,然后构造新的样本(xˆ,yˆ)。

定义如下:

image

其中,λ∈[0,1] 为随机数,且服从Beta(α,α)分布。利用两个样本数据xi,xj来生成一个样本数据x~,同理,利用两个labelyi,yj来生成一个labely~,这样一来就生成了一个新的样本(x~,y~)

image

再用这个新样本来当做训练集进行训练。

可以看看Pytorch源码,能更好的理解mixup。

image

作者认为这其实就是一种抑制过拟合的策略,增加了一些扰动,从而提升了模型的泛化能力。

这种做法同样可以运用在目标检测上。

image

Result

作者证明为了这些改进不仅限于ResNet架构或ImageNet数据集。首先,在ImageNet数据集上训练ResNet-50-D,Inception-V3和MobileNet并进行改进。

image

其中,w/,w/o代表with/without。从表中可见,对于ResNet-50-D网络结构,使用Knowledge Distillation策略能将Top-1精度从79.15%进一步提升到79.29%,而该策略对Inception-V3和MobileNet网络结构起反作用。作者认为,原因应该是“教师网络”为ResNet-152,和ResNet-50-D具有相似的网络结构,两者的预测分布也是相似的。但是与Inception-V3和MobileNet是完全不同的。

随后,作者在Places 365数据集的测试结果,结果表明,采用这几个策略进行训练的结果同样也是有效的。

image

Transfer Learning 迁移学习

作者将调查到目前为止所讨论的这些改进是否可以有益于其他的视觉任务。特别是目标检测和语义分割,并通过改变基础模型来评估它们的性能。

Object Detection 目标检测

image

Semantic Segmentation 语义分割

image

图像分割选择了最具代表性的FCN网络,可见,作者调优后的模型还是具有一定的效果。值得注意的一点是采用了cosine策略的优化效果最佳,其他的如label smoothing,mixup等方法效果不是特别的明显。作者认为,语义分割是在像素级别上进行分类。虽然使用label smoothing,mixup的模型有利于软化标签,但模糊的像素级信息可能会模糊并降低整体像素级精度。

至此,至此这篇Bag of Tricks for Image Classification with Convolution Neural Networks 就介绍完了,花了几个星期的时间,内容实在是太多了。好在是也学习到了很多的新东西。

拜拜!

Reference

参考的内容有点多,主要是文章的内容太多了!!!请大家多担待!

训练技巧详解【论文详解含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks

深度学习Image Classification图像分类之Bag of Tricks for Image Classification with Convolutional Neural Net

Bag of Tricks for Convolutional Neural Networks

Bag of Tricks for Image Classification with CNN

Amazon深度学习工程师总结的分类模型炼丹技巧总结

深度学习 | 训练网络trick——label smoothing(附代码)

Network 优化问题——Label Smoothing

Label Smoothing Regularization LSR的原理

Deep residual learning for image recognition.

Rethinking the inception architecture for computer vision

SGDR: stochastic gradient descent with restarts

Distilling the knowledge in a neural network

mixup: Beyond empirical risk minimization

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

推荐阅读更多精彩内容