特征是如何在深度卷积神经网络中传递的?

How transferable are features in deep neural networks?

作者:Jason Yosinski, Jeff Clune, Yoshua Bengio, Hod Lipson

Abstract

​ 许多以自然图像训练的深度神经网络(dCNN)都有一种奇怪的现象:这些网络在第一层学习类似于Gabor滤波和色斑的特征。这样的第一层似乎是共通的,因为这适用于许多数据集和任务中。最后由网络的最后一层将CNN的功能从普遍过度到特定,而这个过度行为尚未进行过广泛的研究。在此文中,作者通过实验量化了dCNN每一层中神经元的普遍性与特殊性,并有了一些惊人的结果。可传输性受到两个问题的负面影响:(1).较高层神经元专门用于其原始任务,但以牺牲目标任务的性能为代价;(2).优化的困难度依赖于共同适应的神经元(co-adapted neurons)之间的分割网络(splitting networks)。在ImageNet上训练的一个网络中证明了以上两个问题谁占主导地位,取决于功能是从网络的底部、中间还是顶部转移来的。还发现了特征的可传递性随着基础任务和目标任务之间的距离的增加而降低,但即使从远距离任务中传递特征也比使用随机特征要好。最终一个惊人的结果是,初始化一个具有任何层的转移特征网络都可以增强他的泛化能力,即使对目标数据集进行fine-tuning之后,泛化效果仍然存在。

INTRODUCTION

​ 现代的CNN都有一种奇怪的现象,他们的第一层都倾向于学习看起来像Gabor滤镜和色斑的特征。这些图形样式深入人心,如果在图像数据集上获得其他东西,人们会倾向于怀疑是参数选择过高或软件发生错误。这现象不仅在不同的数据集上有,甚至在不同的训练目标上也有(监督图像分类、无监督密度学习、无监督稀疏表示的学习)。

​ 我们称这样的第一层特征为通用(general),因为无论成本函数和图像数据集如何,都几乎会在第一层上找到这些标准特征。将最后一层称为特定(specific),因为由训练网络的最后一层计算出的特征,在很大程度上取决于所选的数据集和任务。在下文会有关于以上两点的详细定义。既然第一层为通用,最后一层为特定,那么一定会在网络的某个位置存在一个变化的过程,于是我们提出了几个问题:

  • 我们能否量化通用和特定的度?

  • 过渡会在单层上突然出现吗,还是会扩散至多个层?

  • 过渡会在哪里发生?接近第一层、中间还是最后一层?

​ 这些问题的答案很有意义,因为在一定程度上网络上的特征是通用的,我们能够将其用于迁移学习。在迁移学习中,首先在基本数据集和任务上训练基本网络,然后将学习到的特征重新利用,或者将其迁移到第二个目标网络上,以便在目标数据集和网络上进行训练。

​ 当目标数据集远远小于基本数据集时,迁移学习可以成为一种能够训练大型目标网络而不会产生过拟合的工具。一些研究结果进一步强调了研究这种通用的确切性质和程度的重要性。

​ 基本的迁移学习的方法是先训练好一个基本网络,然后将它的前N层复制到目标网络的前N层。目标网络的其它层会进行随机初始化,然后向目标任务进行训练。可以选择将错误从新任务反向传播到基本(复制的)特征中,以将其fine-tuning到新任务;或者可以froze(冻结)迁移的特征层,以便让它们在训练期间不会变化。是否fine-tuning目标网络的前N层,取决于目标数据集的大小和前N层参数的数量。如果目标数据集小但参数很多,fine-tuning会导致过拟合,于是经常选择冻结特征。但是如果目标数据集很大参数少,便不会产生过拟合,然后基础特征会fine-tuning至新目标以改善性能。当然,如果目标数据集非常非常大,则可以不考虑迁移,因为较低级别的过滤器过滤器只能从目标数据集的头开始学习(because the low level filters could just be learned from scratch on the target datasets)。在下面各节中,将比较上面两种技术——fine-tuned和冻结——并给出结果。

​ 在本文中,作者有以下贡献:

​ 1.定义了一种用来量化指定层是通用还是特定的程度的方法,即该层的特征从一个任务迁移到另一个任务的程度(第二节)。然后在ImageNet数据集上训练了一对CNN,并一层层描述了从通用到特定的转换(4),并有了以下四个结果。

​ 2.实验中发现了两个问题,这两个问题导致了在不经过fine-tune时再使用迁移的特征会导致性能下降:(i).特征本身的特殊性 (ii).由于相邻层的共同适应的神经元之间分裂了基础网络,导致优化困难。本文展示了这两种影响如何在网络的不同层占主导地位(4.1)。

​ 3.本文量化了若基础任务和目标任务越来越不相似,那么迁移特征的性能优势将如何降低(4.2)。

​ 4.在相对较大的ImageNet数据集上,当使用的特征是根据随机的下层权重与训练后的权重计算出的时,发现性能比以前针对较小数据集的报告的要低。本文将随机权重与已迁移的权重(冻结与fine-tune)相比,发现已迁移的权重表现更好(4.3)。

​ 5.最后此文发现,在fine-tune到一个新的数据集后,初始化来自几乎任何层的特征迁移网络,都能提高泛化性。这很让人惊讶,因为来自第一个数据集的影响即使在进行了广泛的fine-tune之后还会持续存在(4.1)。

2.以迁移性能来衡量通用(Generality)和特定(Specificity)

​ 在这项研究中,将定义在任务A上学习的一组功能的普遍性为该功能可用于另一任务B的程度。需要注意到此定义依赖于A、B之间的相似程度。A、B是通过ImageNet来构建的,需要其中成对的非重叠子集。这些子集可以选择彼此相似或不同。

​ 将ImageNet中的1000个类随机分为2组,每组包含500个类和大约一半的数据(645000个),分的两类即为A与B。每个都训练8层的CNN,将这些网络称为baseA与baseB,如下图的前两行所示。然后,从{1,2......,7}中选取第n层,并训练几个新网络。在以下的说明和下图中,使用n=3作为示例层。首先定义并训练以下两个网络:

  • 自我网络B3B(A selffer network B3B):前三层复制于baseB,并冻结。较高的5层(4-8)进行随机初始化然后在B数据集上进行训练。这个网络是下一个迁移网络的调节器(control)(下图第三行)。
  • 迁移网络A3B(A transfer network A3B):前三层复制于baseA 并进行冻结,后面的4-8层进行随机初始化,并训练于B数据集。直观地讲,我们从在A数据集上训练的网络复制前三层,然后在它们之上训练更高层的特征,以对新的B目标数据集进行分类。如果A3B的性能和baseB一样,那么这就证明了至少对于B而言,三层特征是通用的。如果性能下降。则证明了三层特征仅特定于A(下图第四行)。
迁移1.jpg

​ 此文对所有的在{1,2,......,7}中的n和两个方向(如AnB、BnA)都重复进行了以上步骤。在之前的两个网络中,迁移层都被冻结。于是此文也创建了两个使用fine-tune的版本:

  • 自我网络B3B+和B3B类似,但是所有层都会进行学习。
  • 自我网络A3B+和A3B类似,但是所有层都会进行学习。

​ 为了使基本数据集和目标数据集类似,将ImageNet的1000个类进行随机对半分。ImageNet包含类似类别的群体,平均下来,A、B都将分别包含6或7种猫科动物。当推广到其他数据集后,我们希望旧的探测器到新的上面也能很好的工作,并且也期望与AB不相似时相比,迁移特征的表现会更好。

​ 幸运的是,ImageNet也提供了父类的层次结构。这一点可以将A、B数据集分为尽可能不相似的两大类,如人为的和自然的,但是划分一个有551个类,另一个有449个类。在4.2中本文会展示当数据集不是很相似时,特征迁移会更差。

3.实验设备

​ 略……

4.结果及讨论

​ 本文做了三组实验,4.1使用随机的A、B分割,4.2使用人为和自然的分割,4.3使用随机权重。下图是结果。

迁移2.jpg

4.1 相似数据集:随机分类

​ 1.白色baseB表示,对500个类训练的最高精度为0.625,虽然比1000个类的分类精度低,但他由于数据少,会产生过拟合,因此错误率较低。

​ 2.深蓝色的BnB(冻结前n层)分析如下:第一层的性能与baseB相同。即保留了第一层所学的Gabor特征和色斑,重新初始化整个网络,并针对同一任务进行训练,那么效果也一样。第二层同理。但第3.4.5和6层表现尤其是4和5较差。这就表明了,原始网络在连续层上有脆弱的共同适应的特征,这使得单独的上层无法重新获得这种适应。到后面的层尤其是第八层500-way softmax输出层,性能回升,表示显然重新学习这几层简单到足以让梯度下降找到一个好的解决方案。也可以说,6.7之间、7.8之间层的共同适应特征较小。

3.浅蓝色的BnB+ (有微调)表明,当复制的较低层特征也在目标数据集上学习时,性能类似于base。这样的fine-tune可以防止如BnB中的性能下降。

​ 4.深红色AnB首先显示了此文要测量的结果。首先在1.2层可以发现它们有完美的迁移能力,不仅在有Gabor和色斑的第一层,甚至第二层也是通用的。第三层有轻微的下降,多亏之前的BnB点,可以知道下降的原因有两点:一点是由于丢失共同适合(co-adaptation)而导致的下降,另一点是通用特征越来越小导致的下降。在3.4.5层上,第一点起主导作用,而在6.7层上,第一点削弱,其所呈现出来的特殊性使得性能下降。

​ 5.浅红色AnB+ (先迁移再fine-tune)的效果很令人意外:所生成的网络比直接在目标数据集上训练的网络更加具有泛化能力。以前人们使用迁移学习的原因是防止对小型数据集产生过拟合,而现在的研究证明,大型数据集若使用迁移特征,同样可提高泛化能力。需要注意的是,这个效果不应归因于训练的时间较长,因为BnB+ 也是经过相同的长时间训练,但是没有性能提升。合理的解释是,即使经过45W次fine-tune迭代,基本数据集的影响也还在,从而提高了泛化性能。性能提升程度表如下所示。

迁移3.jpg

4.2 不相似数据集:分为人为的和自然的

​ 如前所述,随着基本目标与任务目标越来越不相似,特征迁移的有效性预估会越来越低。通过对比4.1的例子与本节例子来验证。下图的左上白圈表示baseA和baseB的精确度,橘色六边形表示BnA和AnB。对包含自然类别(baseB和AnB)的目标任务训练的网络,在这两条线的上部存在。这些网络的性能比经过人工分类的网络要好,可能是由于它只有449个类别而不是551个,或者这只是一个简单的任务,或者两者都有。

迁移4.jpg

4.3 随机权重

​ 结果如上图,详细分析略……

5.讨论

​ 此文展示了两个对迁移性的性能造成影响的问题:与脆弱的自适应层之间拆分的优化问题,以及以牺牲目标任务的性能为代价,将高层特征专门化到原始任务的问题。可以观察到,这两个问题都有可能占据主导地位,取决于迁移是从网络的底部、中部还是顶部进行的。还发现了随着任务之间的距离增加,可迁移性的差距也越来越大,尤其是在传递更高层时,但是,即使是从遥远的地方迁移的特征也比使用随机权重要好。最后,本文发现,即使在对新任务进行了fine-tune后,使用迁移特征进行初始化也可以提高泛化性能,这可能是提高CNN性能的通用技术。

你可能感兴趣的:(特征是如何在深度卷积神经网络中传递的?)