how transferable are features in
第一次书写这样的文章,问题颇多,还望指正。
本文来源:arxiv.org/pdf/1411.1792.pdf
最近在写开题报告,被老师怼的死去活来。老师竟然不知道我想表达什么,这就很尴尬了,于是萌生了写一些文章,提升一下自己的写作能力的想法。
接下来进入正题,本文做了些什么:
特征的迁移是在哪一层最有效的
作者介绍了深度学习以往的一些迁移算法,认为:迁移学习中的前几层是提的一般性特征,最后的几层提取的是该任务下的专有特征。
然后提出出疑问,迁移是如何在深度学习中进行的:
图11.迁移学习哪些层次提取的是一般性特征,哪些是特征是针对性的
2.这些迁移的特征是突然发生在哪一层的,还是分散开的
3.这些迁移主要发生的位置,开始,中间或是最后?
随后作者根据这些问题设计了实验并去验证。
实验设计
作者设计了一个8层的卷积网络用于特征提取并验证特征的迁移(或是权重的迁移?)如下图所示:
图2数据的切分
作者在ImageNet上将ImageNet的1000类以500类为一个数据集,且分为两种情况:1、假如有13中类似的数据:如:4种不同的猫,2种不同的狗,4中不同狮子,3种不同的豹子,尽量均衡的将他们分来两个数据集中去,称这两个数据集为baseA,baseB;2、原数据中有551中是人为实体数据,449中自然数据(不太理解,不过意思应该是前者数据之间的类别比后者数据类别之间的差距小)。
迁移的设计
在获取到数据后,就需要对网络的权重进行重构,由图2可知道作者做了4种类别的试验。
网络中的第0层为数据的输入,1-8层为卷积层,最后一层为分类层
第一步:先将A、B两个数据自己训练自己的网络,得到一个训练好权重的网络Wa1-Wa8和Wb1-Wb8(不知道怎么下标,请教一下);
第二步:然后在将网络的前几层(不包含最后一层的权重,即W8,这一层是针对本任务下的权重训练)的权重迁移到另一个网络,在此曾网络之后再添上新的网络重新组成一个8层网络再次训练。
第一种情况
训练好了网络之后可以得到一个8层的卷积网络,第一种做法,将在baseB上的前n(n<8)层网络,固定权值,对其余的(8-n)层网络随机初始画圈中之后再次的在baseB上训练,作者称其为BnB(图中的B3B表示前网络的前三层的权重用于迁移)。对应的将固定的权重进行fine-tuned(微调),作者称其为BnB+。
第二种情况
同样是训练好网络,但是这一次将在baseA上训练好的权重的前n层固定,其余网络随机初始化后,再次的在baseB数据集上训练,这种方式表示为AnB,同样通过微调这些迁移来的权重的方式表示为AnB+。
实验结果
作者的代码可以他的主页下找到yosinski.com/transfer,不管其他直接上图对结果进行分析:
图3图3是在相似的数据集上做的试验,即baseA和baseB中的数据类别类似。
图3中的上图是不同迁移层次对结果(accuracy)的影响,layers=0表示没有迁移(白色圆圈),
蓝色圆圈表示自迁移,但是没有微调,淡蓝色中有十字的表示自迁移且微调,
红色菱形表示从baseA中迁移来的权重层,但没有微调,最后一种是有微调的训练。
下图表示对应层次重新被训练后的结果,将准确率点直接连接起来画出的图。
结果分析
1.作者得到的结果比原来比赛的结果好是应因为只训练了一般的数据,可能是过拟合,也是因为分类的类别小了(只有500,原来有1000类)所以得到的结果比原来的结果高。
2.图3上中前2层的迁移和7层的迁移对结果的影响不大,而在第3,4,,5,6层是准确率开始下降。特征是在第4、5时表现的非常明显。由此证明了原始网络中层次之间的适应性是非常脆弱的。即以一种复杂的方式或非常不稳定的方式在层次之间传递特征;
3.对于BnB+的方式图中可以看见微调之后的结果与原结果的非常相似,但是在前几层的方式却比BnB的方式略差;
4.对于AnB的方式可以看见在低层(low layer)特征提取时,效果并不会有多大的影响,而越靠后,准确率下降的越是厉害。可以看见在第4、5、6、7时同在BnB时的第4,5,6的结果是很相似的,这些下降说明了层次之间的相互影响下降了,一般性(general)的特征学习的越来越少.
5.最后的AnB+可以看出在微调的情况下,迁移的层次越多,准确率竟然有了上升。此前人们都是在小的数据集上预训练,而这里证明了即使数据集很大,迁移依然能够得到非常好的训练效果,且随着层次的增加,效果也会有轻微的上升。在图4中可一看出来
图4结果分析2
结果分析2的来源是将数据集分为man_made/nature image 两种数据集,同时也比较了随机权重,且不训练这些权重的情况。结果如下图所示:
图5图5左的上方的线表示在nature image上训练后迁移到man-made上在训练,下方先相反。
图5右表示前n层不训练,但是会给每一层一个随机权重值。
图5下表示的上方的两条线对前两种实验结果的取平均值,第三条线,表示随机权重的情况下。
可以看出,有训练的迁移效果大于随机权重的效果,而数据相似之间的迁移的效果又比不相似的效果要好。
总结
作者的总结可以在论文中直接看,在此简单总结一下
1、数据有迁移的情况下比没有迁移的效果好
2、数据之间相似情况下迁移比不相似的效果要好
3、特征在迁移之后,经过微调可以得到较好的效果。
此次是我第一次写的论文阅读记录,有任何问题请直接私信我,侵删。