How transferable are features in deep neural networks?
1.背景和动机
本文全篇通过实验说明神经网络的可迁移性,通篇没有一个公式,但是却是2014年NIPS的oral presentation。
本文实验使用12年ImageNet大赛的冠军模型AlexNet进行了一系列关于网络各个层级上的可迁移性的实验。因为CNN在提取特征时,前面几层学习到的都是边边角角,线条这样的可以泛化的特征,而随着层级上升,慢慢地特征变得specific。那么问题来了,当我们打算迁移这些层次的时候,怎么知道哪些层可以不动,哪些层是specific的呢?
这个问题对于理解神经网络以及迁移学习很有意义,也是此论文的研究点。下面来看看
2.简介
本文通过实验说明结果,在ImageNet的1000个类中,作者将其分成2份(A与B),每份包含500个类,这里是随机分的。然后分别针对A和B份,分别训练一个AlexNet网络。关于AlexNet的结构就不多说了,一共8层,前面5层是卷积层,后面3层是FC层。作者分别对n=1~7进行了实验,
举个例子:比如n=3,那么AnB就是说在一个新的AlexNet上,前三层采用A网络的前三层并且将其frozen,后5层随机初始化,然后在B数据上去训练。
那么BnB就是用B网络的前三层frozen,剩下的5层初始化,然后在B上实验。
而AnB+是指使用A网络的前三层,后5层随机初始化,但是不做frozen,整个网络拿来做BP训练。
围绕着神经网络的可迁移性,作者设计了两大方面的实验:
- 迁移A网络的某n层到B(AnB) vs 固定B网络的某n层(BnB)
- 权重初始化与迁移表现
3.实验结果
我们来分析下结果:先看蓝色的BnB和BnB+
对于BnB而言,原来训练好的B模型的前两层直接拿来就可以用,而且不需要调整,不会对精度造成影响。从3层开始有点下降,到了第4~5层,模型精度开始下降,然而到了6-7层,模型精度又奇迹般地回升了!这是为什么呢?
作者说明如下:对于一开始精度下降的4~5层,确实是到了这一步,feature变得specific了,但是都是从B数据训练来的,就算4~5层的特征specific,那不也是数据B的特征吗?为什么会下降呢?作者认为:中间连续层之间存在一定的相互适应调整关系,这种关系是复杂而又脆弱的,这种关系不能够仅仅通过上层学习到,所以在3层开始,我们固定底层,导致网络无法进行上下之间的相互适应调整,使得3层之后的层无法进行很好地协调而学习到相对于task很specific的特征,使得精度开始下降。而到了6~7层,精度又回升了,这是因为网络一共就8层,你把6层都固定住了,基本上整个特征学习也被固定住了,因此精度和原来的B不会相差太多。因此作者认为:神经网络中间特征层的连续协调关系要强于最顶和最下层的,这是之前文献所没有注意到的。
对于BnB+来说,模型精度没有什么变化,说明finetune对模型没有损失,并且训练时间还可减少,对训练有促进作用。
我们重点看下AnB和AnB+
对AnB来说,直接将网络的前两层迁移到B,固定住,貌似对精度不会有什么影响,这说明AlexNet的前两层学习的特征是很基础,很泛化的,因此可以直接从A迁移到B而不损失精度。到了4~5层,精度开始大幅下降,而到了6~7层,精度出现小小上升然后又下降,这是为什么呢?根据BnB的结论,我们认为这种下降由两个因素导致:
- 中间层之间具有相互适应协调的依赖关系
- 特征太specific了,导致迁移到B上特征不适用
而在4~5层,是第一个因素占主导作用,使得模型在固定了前面4~5层后,之后的层无法学习进行上下层的相互协调,无法学习到针对B数据很specific的特征。而在6~7层,则是第二个因素起作用,此时整个网络差不多都被固定住了,模型提取的特征就和A差不多,自然无法在B上适用。因此中间出现一个过渡,然后又下降的情况。
再看AnB+,加入了finetune之后的模型,在任何时候表现都很好,甚至比base B的表现还好,这又一次说明finetune对模型有很好的促进作用!
4.结论
虽然该论文并没有提出一个创新方法,但是通过实验得到了以下几个结论,对以后的深度学习和深度迁移学习都有着非常高的指导意义(杨强教授非常赞赏该论文的工作):
- 神经网络的前3层基本都是general feature,进行迁移的效果会比较好;
- 深度迁移网络中加入fine-tune,效果会提升比较大,可能会比原网络效果还好;
- Fine-tune可以比较好地克服数据之间的差异性;
- 深度迁移网络要比随机初始化权重效果好;
- 网络层数的迁移可以加速网络的学习和优化。