论文翻译-RePr: Improved Training of Convolutional Filters
本文的翻译是结合多个翻译软件(主),以及自己理解(辅)翻译的。仅供参考。
说明:由于论文的格式和公式等原因,本文在阅读上不太适合。这里给一个自己整理的word版翻译原文和相关阅读资料:
下载:链接:https://pan.baidu.com/s/1NMW4C-mOWLaMy-cPVF9_rg
提取码:h2d1
RePr:改进卷积滤波器的训练
摘要
一个训练有素的卷积神经网络很容易被修剪,而不会有明显的性能损失。这是因为网络的过滤器捕获的特征存在不必要的重叠。网络架构的创新,如跳转/密集连接和Inception单元,在一定程度上缓解了这个问题,但这些改进伴随着运行时计算和内存需求的增加。我们试图从另一个角度解决这个问题–不是通过改变网络结构,而是通过改变训练方法。我们表明,通过暂时修剪,然后恢复模型的过滤器子集,并循环地重复这个过程,学习特征的重叠被减少,产生改进的通用化。我们表明,现有的模型修剪标准并不是在这种情况下选择要修剪的过滤器的最佳标准,并引入了过滤器间正交性作为判断表现力不足的过滤器的排序标准。我们的方法既适用于普通卷积网络,也适用于更复杂的现代架构,并改善了各种任务的性能,特别是当应用于小型网络时。
1. 介绍
卷积神经网络已经在各种计算机视觉任务中取得了最先进的成果[1,2]。这种成功在很大程度上归功于一种新颖的、针对特定任务的网络架构的创新[3,4]。尽管网络设计存在差异,但相同的核心优化技术被用于不同的任务。这些技术将每个独立的权重视为自己的实体,并独立地更新它们。在开发专门为卷积网设计的训练过程方面进展有限,其中滤波器是网络的基本单元。一个滤波器不是一个单一的权重参数,而是一个空间核的堆栈。
由于模型通常参数化过高, 一个训练好的卷积网络将包含冗余的滤波器[5, 6]。这一点从修剪滤波器[7,8,6,9,10,11]而不是单个参数[12]来实现模型压缩的常见做法中可以看出。这些修剪方法中的大多数都能够在模型性能仅有边际损失的情况下,放弃大量的滤波器。然而,一个具有较少滤波器的模型不能从头开始训练,以达到一个大模型的性能,而这个大模型已经被修剪成大致相同的大小[6,11,13]。标准的训练程序倾向于学习具有无关的和可修剪的过滤器的模型,即使是对于没有任何多余容量的架构。这表明,卷积神经网络(ConvNets)的训还有改进的空间。
为此,我们提出了一种训练方案,在经过一定数量的标准训练迭代后,我们选择一个模型的滤波器子集暂时放弃。在对缩小后的网络进行额外的训练后,我们重新引入之前放弃的滤波器,用新的权重进行初始化,并继续进行标准训练。我们发现,在重新引入被丢弃的滤波器后,模型能够获得比丢弃前更高的性能。重复应用这个过程得到的模型,其性能优于通过标准训练得到的模型,如图1所示,并在第4节讨论。我们在各种任务和各种类型的卷积网络上都观察到了这种改进。这个训练过程能够在选择放弃哪些滤波器的一系列可能的标准中产生改进的性能,并且通过仔细选择排名标准可以获得进一步的收益。根据最近的一个假设[14],超参数化网络的相对成功可能在很大程度上是由于大量的初始子网络。我们的方法旨在保留成功的子网络,同时允许重新初始化不太有用的过滤器。
除了我们新颖的训练策略之外,我们工作的第二个主要贡献是探索了指导滤波器丢弃的度量。我们实验表明,在我们的环境中,用于永久性滤波器修剪的标准技术是次要的,我们提出了一个替代的度量,它可以有效地计算,并在性能上有显著的改善。我们提出了一个基于卷积层内滤波器间正交性的度量,并表明在我们的训练策略中,这个度量优于用于网络修剪的最先进的滤波器重要性排名方法。我们观察到,即使是小的、参数化不足的网络也倾向于学习重新冗余的滤波器,这表明滤波器冗余不仅仅是过度参数化的结果,也是由于无效的训练造成的。我们的目标是减少滤波器的冗余,提高ConvNets的表达能力,我们通过改变训练方案而不是模型架构来实现这一目标。
图1:在CIFAR-10上使用标准方案和我们的方法–RePr,三层ConvNet的性能,每层有32个过滤器,超过100个epochs。阴影区域表示只有部分网络被训练的时期。左:训练精度,右:测试精度。注释[A-F]在第4节讨论。
2. 相关工作
训练方案 为了减少过度拟合和提高泛化能力,人们提出了许多对训练范式的改变。Dropout[15]被广泛于训练深度网。通过随机地丢弃神经元,它可以防止特征检测器的共同适应。通过丢弃激活的子集[16]可以达到类似的效果。Wu等人[15]通过卷积激活的概率池化,将随机丢弃的思想扩展到卷积神经网络。然而另一种形式的随机训练建议随机放弃整个层[17],迫使模型在各个层中学习相似的特征,这样可以防止极端的过拟合。相比之下,我们的技术鼓励模型使用特征的线性组合,而不是重复相同的特征。Han等人[18]提出了Dense-Sparse-Dense(DSD)这是一种类似的训练方案,他们在训练中期应用权重正则化来鼓励稀疏权重的发展,随后去除正则化来重新存储密集权重。虽然DSD工作在个体参数的水平,我们的方法是专门设计应用于卷积滤波器。
模型压缩 知识提炼(KD)[19]是一种训练方案,它使用较大的训练模型(教师)的软对数来训练较小的模型(学生)。软对数可以捕获对象的层次信息并为优化提供更平滑的损失函数。这使得小模型的训练更容易,收敛性更好。在一个令人惊讶的结果中,Born-Again-Network[20]表明,如果学生模型的能力教师相同,它可以胜过教师。KD的其他一些变体已经被提出[21],所有这些变体都重新要求训练多个模型。我们的训练方案不依赖于外部教师,所需的训练量比KD少。更重要的是,当与KD结合时,我们的方法比任何一种技术单独使用都能获得更好的性能(在第7节中讨论)。
神经元排序 寻找最不突出的神经元/权重的兴趣由来已久。LeCun[22]和Hassibietal.[23]表明,使用包含二阶导数的Hessian可以识别弱神经元,并且比使用权重的大小表现更好。计算Hessian的成本很高,因此没有被广泛使用。Han等[12]表明,权重的规范仍然是有效的排序标准,并产生稀疏模型。稀疏模型并不能转化为更快的推理速度,但作为神经元排名标准,它们是有效的。Hu等[24]探讨了激活中的零的平均年龄百分比(APoZ),并使用数据驱动的阈值来确定截止值。Molchanovet等人[9]建议从损失函数的泰勒展开中提取第二个项。我们提供了详细的比较,并在第5节展示了使用这些指标与我们的训练方案的结果。
架构搜索 神经架构搜索[25,26,27]是在训练过程中对架构进行修改,探索多种神经网络结构,为给定数据集寻找最佳架构。如果架构提前固定,这种方法没有任何好处。我们的方案通过更好地利用可用参数来改善给定架构的训练。如果围绕最终架构有灵活性,这可以与架构搜索一起使用,或者当架构因认证模型部署、内存要求或其他考虑因素而固定时单独使用。
特征相关性 虚拟卷积网络的一个众所周知的缺点是其特征图的相关性[5,28]。像Inception-Net[29]这样的架构是通分析各层特征的相关性统计来实现的。它们的目的是通过使用来自不同大小过滤器的并联特征来降低层之间的相关性,随后的研究表明并非如此[30]。最近的架构,如ResNet[1]和DenseNet[31],旨在通过对前几层的激活进行求和或串联,隐性地降低特征相关性。也就是说,这些模型的计算成本很高,并且需要大量的内存来存储之前的激活。我们的目的是在不改变卷积网络的结构的情况下诱导装饰相关的特征。这有利于ConvNet的所有现有实现,而无需改变基础设施。虽然我们的技术在普通 ConvNe架构上表现得最好,但它仍然略微提高了现代架构的性能。
3. 正交特征的动机
卷积滤波器的特征定义为滤波器各个内核的激活的逐点求和。 如果一个特征有助于提高模型的泛化能力,那么它就被认为是有用的。 一个泛化性较差的模型,其特征通常总的来说是捕捉了激活空间中有限的方向[32]。另一方面,如果一个模型的特征是正交的,它们将各自捕获激活空间中不同的方向,从而提高泛化性。对于一个规模不大的ConvNet,我们可以通过分析不同次的特征的相关性,并将其聚类成组,计算出最大表现力的滤波器[33]。然而,这种方案对于现实世界中使用的深层ConvNets 来说在计算上是不切实际的。另外一个在计算上可行的方案是在标准SGD 训练中使用损失函数中增加一个正则化项,鼓励将活动的协方最小化,但这只会对模型性能产生有限的改善[34, 5]。一个类似的方法,即正则化项鼓励滤波器权重的正则化,也产生了边际改善[35,36,37,38]。Shang等人[39]发现低级滤波器的相位是重复的。迫使滤波器正交,可以在不改变激活函数的情况下,最大限度地减少这种重复。Saxe等人[40]除了在性能和泛化方面有所改进外,还表明权重的正交性还能在训练过程中证明网络收敛的稳定性。作者[38,41]进一步证明了正交权重对网络高效训练的价值。正交初始化对于循环神经网络来说是很常见的做法,因为它们对初始条件的敏感性增加了[42],但是对于ConvNets来说,它已经有些过时了。这些因素形成了我们鼓励ConvNet中特的正交性的动机,并构成了我们排名标准的基础。由于特征依赖于输入数据,确定它们的正交性需要计算整个训练集的统计数据,因此是非常昂贵的。相反,我们计算过滤器权重的正交性作为代用。我们的实验表明,通过一个规整化项来鼓励权重正交性不足以促进特征的发展,而这些特征能够捕获输入数据的全部空间。我们的放弃重叠滤波器的方法作为一种隐式正则化,在不妨碍模型收敛的情况下,导致滤波器的正交性更好。
我们使用典型相关分析[43](CCA)来研究单层中特征的重叠。CCA发现随机变量的线性组合,显示出最大的相互关联性。它是一个有用的工具,可以确定学习到的特征在表示能力上是否有重叠。Li等人[44]将相关性分析应用于滤波器激活,表明大多数著名的ConvNet架构都能学习到类似的表示。Raghu等人[30]将CCA与SVD结合起来,对来自不同层的激活的奇异值进行相关分析。他们表明,增加模型的深度并不总是导致模型维度的相应增
加,这是由于几个层在相关方向上学习表征。我们提出了一个更重要的问题–单层内来自不同滤波器的激活有多大的相关性?在一个像VGG16这样的超参数化网络中,它有几个卷积层,每个卷积层有512个滤波器,大多数滤波器的激活都是高度相关的,这并不奇怪。因此,VGG-16很容易被修剪–在保持全网性能的前提下,可以放弃50%以上的滤波器[9, 44]。对于那些对数据集拟合度较低的小卷积网络,是否也是如此?
我们将考虑一个简单的网络,有两个卷积层,每层32个滤波器,最后有一个softmax层。在CIFAR-10上用退火学习率训练这个模型100个纪元,结果测试集的准确率为58.2%,远低于VGG-16的93.5%。在VGG-16的情况下,我们可能期望过滤器之间的相关性仅仅是模型过度参数化的结果–数据集的维度不够高,不足以要求每个特征都是正交的。另一方面,我们的小型网络显然没有捕捉到训练数据的全部特征空间,因此其滤波器之间的任何相关性都是由于训练中的低效率,而不是参数化过度。
给定一个训练好的模型,我们可以通过移除(zeroing out)该过滤器并测量测试集上的精度下降来评估每个过滤器对模型性能的贡献。我们将把这个过滤器重要性的度量称为"greedy Oracle"。我们对模型中的每一个滤波器都不间断地进行这种评估,并绘制出分布图。
图2(右)所示的精度下降的结果。大多数第二层滤波器对精度的贡献小于1%,而第一层滤波器则有一个长尾。有些滤波器很重要,对精度的贡献超过4%,但大多数滤波器的精度在1%左右。这意味着,即使是一个微小的和表现不佳的网络也可以被过滤修剪,而不会有明显的性能损失。该模型并没有有效地分配过滤器来捕捉更广泛的必要特征。图2(左)显示了两层滤波器激活(CCA)的线性组合的相关性。很明显,在这两个层中,滤波器激活之间有显著的相关性,其中有几个接近于1的近乎完美的相关性(明亮的黄色斑点□)第二层(右上角对角线)与第一层(右下角)有更多的特征重叠。对于一个随机正交矩阵,任何高于0.3的值(浅于深蓝色□)都是异常值。如果将线性组合扩展到核函数[45]或奇异值[30],则激活的相关性更大。无论怎样,只要说卷积滤波器的标准训练并不能使网络的表征潜力最大化就足够了。
图2:左图:来自在CIFAR-10上训练的ConvNet的两层激活的典
范相关性分析。右图:评估模型时,每次放弃一个过滤器时 准确
率的变化。
4. 我们的训练计划:RePr
我们通过周期性地删除冗余过滤器、重新训练网络、重新初始化被删除的过滤器,并重复来修改训练过程。我们将每个滤波器(3D张量)视为一个单一单元,并将其表示为一个长向量–(f)。让Μ表示一个有 F个滤波器分布在L层的模型。让F ̂表示F滤波器的一个子集,这样,Μ_F表示一个完整的网络,而Μ_(F-F ̂ )表示一个没有该F ̂滤波器的子网络。我们的训练方案在训练完整网络(Μ_F)和子网络(Μ_(F-F ̂ ))之间交替进行。这就引入了两个超参数。 第一个超参数是切换之前训练每个网络的迭代次数;让它成为全网络的S_1和子网络的S_2。这些必须是非平凡的值,以便每个网络都能学习改进前一个网络的结果。 第二个超参数是重复这个交替方案的总次数,设为N,这个值超过一定范围影响很小,不需要调整。
我们算法中最重要的部分是用来对过滤器进行排名的度量。 让R成为度量标准,它将一些数值与滤波器联系在一起,这可能是权重的规范或它的梯度或我们的度量标准–层中滤波器间的正交性。在这里,我们提出了我们的算法不可知的度量的选择。对滤波器重要性的最合理的选择,当应用于我们的训练方案时,结果比标准训练有所改进(见消融研究6)。
我们的训练方案是在宏观层面上操作的,并不是一个权重更新规则。因此,不能替代SGD或其他自适应方法,如Adam[46]和RmsProp[47]。我们的方案可以与任何可用的优化器一起工作,并显示出全面的改进。然而,如果使用一个具有特定参数学习率的优化器(如Adam),重要的是要重新初始化与修剪后的滤波器(F ̂)中的权重相对应的学习率。相应的批归一化[48]参数(γ& β)也必须重新初始化。由于这个原因,我们的训练方案与标准训练的比较-是用一个通用的优化器来完成的。
我们将滤波器(F ̂)重新初始化,使其在被丢弃之前的值和非修剪滤波器(F-F ̂)的当前值正交。我们利用QR对同层滤波器的权重进行分解,找到空空间,并以此找到正交初始化点。
我们的算法是训练夹杂着重新初始化和修剪–RePr(发音:reaper)。我们在算法1中总结了我们的训练方案。
我们使用一个浅层模型来分析我们训练方案的动态及其对训练/测试精度的影响。浅层模型将使计算每个过滤器的贪婪Oracle排名变得可行。这将使我们能够理解单独的训练方案的影响,而不会混淆由于排名标准的影响的结果。我们在第8节结果中提供了更大和更深的卷积网络的结果。
考虑一个n层的普通 ConvNet,没有跳转或密集
连接,每层有X个过滤器,如下图所示。
我们将这种架构表示为C^n (X)。 因此,一个 C^3 (32)有96个过滤器,当用学习率为0.01的SGD训练时,达到73%的测试精度。图1显示了训练集(左)和测试集(右)的准确率的训练图。在这个例子中,我们使用RePr训练方案,S_1 = 20,S_2 = 10,N= 3,p% = 30,排名标准R为贪婪的Oracle。我们从训练集中排除一个单独的5K图像的验证集来计算Oracle排名。在训练图中,注释[A]显示了过滤器首次修剪的点。注释[C]标记了模型在这一点上的测试精度。在[C]处测试精度的下降低于在[A]处的训练精度,这并不令人意外,因为大多数模型都对训练集进行了过拟合。然而,[D]处的测试准确率与[C]相同,但此时,模型只有70%的过滤器。这并不是一个令人惊讶的结果,因为关于过滤器修剪的研究表明,在较低的修剪率下,即使不是全部性能,也可以恢复大部分性能[9]。
令人惊讶的是,在[E]点的测试精度明显高于[C]点,而[E]点是重新引入修剪后的几个纪元。点[C]和点[E]都是相同容量的网络,[E]处较高的精度不是因为模型收敛。在标准训练中(橙线),测试精度在此期间没有变化。先增长网络工作,然后修剪的模型[49,50],不幸的是,停止了羞于另一个阶段的增长,这产生了改进的性能。在他们的辩护中,这种技术违背了通过修剪获得较小网络的目的。然而,如果我们继续RePr训练再进行两次迭代,我们会看到该点[F],仍然是原始过滤器的70%,产生的精度与点[E](模型大小的100%)相当。
从图中我们可以看到的另一个现象是RePr模型的训练精度较低,这意味着模型上存在某种形式的正则化。这一点在图4(右)中很明显,它显示了RePr与大量的迭代(N=28)。虽然较高的测试精度的边际效益迅速减少,但训练和测试精度之间的泛化差距显著减少。
5. 我们的度量标准:滤波器间正交性
寻找一个度量标准来对最不重要的滤波器进行排名的目的有两个–(1)对于大型网络来说,计算贪婪的Oracle在计算上是不可行的,(2)贪婪的Oracle可能不是最好的标准。如果一个捕捉到唯一方向的滤波器,因此不能被其他滤波器的线性组合所替代,对精度的贡献较低,Oracle将放弃该滤波器。在随后的重新初始化和训练中,我们可能不会得到相同的方向集。
激活模式捕获的方向表达了深度网络的能力[51]。 做出正交特征将最大限度地捕获方向,从而使网络的表现力最大化。在一个密集连接的层,正交权重会导致正交特征,即使在ReLU存在的情况下也是如此[42].然而,如何计算卷积层的正交性并不清楚。
卷积层是由参数分组为空间核,并稀疏地分享传入的激活。在考虑正交性的同时,是否应该考虑单个卷积层中的所有参数?促进初始化权重为正交的理论是基于密集连接层(FC-层),流行的深度学习库遵循这一指南1,将卷积层视为一个巨大的向量,不考虑稀疏的连接性。最近研究卷积滤波器正交性的尝试在[41]中有所描述,但他们的动机是非常深的网络工程(10K层)的收敛性,而不是特征的正交性。我们的实证研究表明,人们更倾向于要求层中单个滤波器的正交性(滤波器间和层内),而不是单个核的正交性。
内核大小为k×k的滤波器通常是一个形状为k×k×c的三维张量,其中c是传入激活中的通道数。 将这个张量扁平化为大小为k∗k∗c的1维向量,用f表示,让J_l表示层l中滤波器的数量,其中l∈L,L是ConvNet的层数。让W_l是一个矩阵,使得各个行是层l的扁平化滤波器(f)。
让W ̂_l=W_l∕‖W_l ‖表示归一化权重。然后,计算滤波器f 在层l中的正交性度量(用O_l^f表示),如下式所示。
P_l是一个大小为J_l×J_l的矩阵,P[i]表示P的第i行,过滤器f的一行P的非对角元素表示与f在同一层的所有其他过滤器的投影。当其他滤波器与这个给定的滤波器是正交时,一行的总和是最小的。如果这个值在网络中的所有过滤器中最大,我们就将过滤器排在最不重要的位置(因此要进行修剪)。当我们计算一个过滤器在单层的度量时,排名是在网络中的所有过滤器上计算的。我们不强制执行每层排名,因为这需要为每一层学习一个超参数p%,而有些层比其他层更敏感。与早期层相比,我们的方法从更深的层中修剪出更多的过滤器。这与每个过滤器在给定网络工作中的贡献分布是一致的(图2右)。
我们的度量计算不需要昂贵的Hessian[22]的反演计算,也不需要二阶导数[23],并且对于任何大小的网络工程都是可行的。最昂贵的计算是大小为J_l×J_l的L个矩阵乘积,但是GPU是为快速矩阵乘法而设计的。不过,我们的方法比计算权重或激活或零值百分比(APoZ)的规范更昂贵。
考虑到滤波器正交性的选择,一个明显的问题是,如果在损失函数中加入软惩罚,是否可以改善这种训练?一些研究者[35, 36, 37]已经报告了由于在用于特定任务模型的ConvNets中添加正则化而带来的边际改进。我们通过在损失函数中加入λ*∑_l▒P_l 进行实验,但我们没有看到任何改进。软正则化对所有的滤波器进行惩罚,并改变损失面以鼓励权重的随机正交性,但没有提高表现力。
图3:左图:各种指标的皮尔逊相关系数值与greedy Oracle
的精度值。中间:使用各种指标的过滤器等级与greedy Oracle的等级的皮尔逊相关系数。右边:使用标准训练和采用不同指标的RePr训练下在CIFAR-10的测试准确率。
图4:左图:修剪不同百分比的过滤器的RePr训练。显示了从20号纪元开始的5个纪元的平均测试精度,以提高可见度。右图:RePR多次迭代的边际收益在CIFAR-10上的训练
和测试精度。
6. 消融研究
修剪标准的比较 我们衡量我们的度量标准与Oracle的相关性,以回答这个问题。- 我们的度量对过滤器的重要性排名有多好的替代作用。我们的度量标准(以下简称为Ortho)与Oracle的皮尔逊相关性为0.38。这并不是一个很强的相关性,然而,当我们将其与其他已知的度量进行比较时,它是最接近的。Molchanov等人[9]报告他们的标准(Taylor)与贪婪的Oracle的Spearman相关性为0.73。我们在早期的时代观察到Taylor排名的类似数字,但相关度随着模型的收敛而显著减少。这是由于已经收敛的滤波器的梯度值较低所致。Taylor度量是激活和梯度的乘积。在学习的早期阶段,高梯度与重要的滤波器相关,但当模型收敛时,低梯度不一定意味着不那么突出的权重。可能是过滤器已经收敛到一个有用的特征,而这个特征对模型的整体误差没有贡献,或者卡在一个鞍点上。随着激活的规范,关系是相反的。因此,将各项相乘,希望是达到一个平衡。但我们的实验表明,在一个完全收敛的模型,低梯度支配高激活。因此,随着模型的收敛,Taylor项的值会降低,不再与低效滤波器相关。虽然值的相关性表示如何度量是预测精度的替代品,它是更重要的测量过滤器的秩的相关性。值的相关性和秩的相关性可能不一样,与秩的相关性是更有意义的测量,以确定较弱的过滤器。在过滤器的等级上测量,Ortho与Oracle的相关性为0.58。其他指标使用秩来衡量,显示出很差的相关性。图3(左、中)显示了各种指标与Oracle的相关性图。图3右侧的表格是各种排名指标在CIFAR-10上的测试精度。从表中可以看出,与标准训练和其他排名标准相比,正交性排名能使准确率得到显著提升。
修剪过滤器的百分比 在我们的训练方案中,其中一个关键因素是在每个修剪阶段要修剪的过滤器的百 分比(p%)。它的行为就像Dropout参数一样,会影响模型的训练时间和泛化能力(见图:4)。一般来说,修剪百分比越高,性能越好。然而,超过30%,性能并不显著。高达50%的时候,该模型似乎可以从过滤器的下降中恢复过来。超过这个比例,训练就不稳定了,有时模型不能收敛。
RePr迭代次数 我们的实验表明,RePr过程的每一次重复都有递减的收益,因此应该限制在一位数(见图4(右))。与Dense-Sparse-Dense[18]和Born-Again-Networks[20]类似,我们观察到对于大多数网络工程来说,两到三次迭代就足以实现最大收益。
优化器和S1/S2 图5(左) 显示了使用不同优化器时的改进差异。我们的模型在大多数知名的优化器上都能很好地工作。Adam和Momentum由于在训练中增加了稳定性,所以表现比SGD好。我们用不同的S_1和S_2值进行了实验,如果其中任何一个值足够大,模型暂时收敛,则差别不大。
图5:左:使用各种优化器对RePr训练方案的影响。右图:使用不同的S1/S2值的结果。为了清楚起见,这些实验只显示了S1 = S2的结果。
图6:使用标准方案和我们的方法–RePr在CIFAR-10上测试三层ConvNet的精度,每层32个过滤器,超过100个纪元。阴影区域表示只有部分网络进行RePr训练的时期。左:0.1,0.01和0.001的固定学习率计划表。右:循环学习率,周期为50个纪元,振幅为0.005,起始LR为0.001。
学习速率计划 SGD的固定学习速率通常不会产生最佳的模型性能。相反,在训练过程中逐渐退火的学习率可以产生具有更高测试精度的模型。在ResNet、DenseNet、Inception上的最先进的结果都是以一个预定的学习率计划表。然而,选择准确的学习率计划表本身就是一个超参数,这个超参数是指需要针对每个模型进行专门的调整。循环学习率[52]可以提供更强的性能无需对精确的学习率时间表进行详尽的调整。图6显示了我们的训练技术与固定时间表学习率方案和周期性学习率结合应用时的比较。我们的训练方案并没有因为使用这些方案而受到影响,比标准训练的改进还是很明显的。
Dropout的影响 Dropout虽然通常应用在多层感知器中,但通常不用于ConvNets。我们的技术可以看作是一种非随机的Dropout,特别适用于ConvNets。与标准的Dropout一样,out方法作用于整个过滤器,而不是单个权重,并且只应用于训练的选定阶段,而不是在每个训练步骤中。Dropout通过鼓励权重的共同适应来防止过拟合。这在参数过高的模型中是有效的,但在紧凑或浅层模型中,Dropout可能会不必要地减少已经有限的模型容量。
图7:在CIFAR-10上使用标准方案、RePr与Oracle和RePr与
Ortho的三层ConvNet的测试精度,每层有32个滤波器,超过100个epochs。左图:Dropout为0.5。右:没有Dropout。
表2:知识蒸馏与RePr的比较。
图7显示了标准训练的性能和我们提出的方法(RePr),在一个三层卷积神经网络上,每层32个过滤器,有和没有Dropout。Dropout的应用概率为0.5。我们观察到,Dropout的加入降低了最终的测试精度,这是因为模型的容量有效地减少了一半。我们的方法在添加或不添加标准Dropout的情况下都产生了改进的性能,证明其效果与Dropout的好处是不同的。
正交损失–OL 将滤波器的正交性(式1)作为正则化项加入,作为优化损失的一部分,并不会显著影响模型的性能。因此,损失函数将是
其中,λ是一个超参数,它可以平衡成本项。我们试验了不同的λ值,表1报告了在λ=0.01的情况下使用该损失项的结果,对于该损失项,验证精度最高。OL指的是加入这个损失项。
表1:在标准训练和RePr中加入正交损失的比较。
7. 正交和蒸馏
我们的方法RePr和知识提炼(KD)都是提高紧凑模型性能的技术。 RePr减少了滤波器表征的重叠,而KD从更大的网络中提炼信息。
我们对这些技术进行了简要的比较,并表明它们可以结合在一起,以达到更好的性能。
RePr利用滤波器间正交性重复丢弃权重方向重叠最多的滤波器,如式2所示。因此,我们希望这个值在训练过程中会随着时间的推移而逐渐减小。图8 (左)显示了该值在整个网络中的三个训练方案的总和。我们展示了RePr与两种不同的过滤器排名标准–Ortho和
Oracle。与标准训练相比,使用Ortho排名的RePr训练方案具有最低的Ortho总和,但令人惊讶的是,使用Oracle排名的RePr训练也减少了过滤器的重叠。一旦模型开始收敛,基于Oracle排名的最不重要的过滤器就是那些重叠度最高的过滤器。而放弃这些过滤器会带来更好的测试准确率(图3右侧的表格)。这种改进是否与知识提炼导致的改进来自同一源头?知识提炼(Knowledge Distillation,KD)是一种训练紧凑模型的行之有效的方法。与标准训练相比,使用教师的软记录和基本事实信号,模型收敛到更好的最优状态。如果我们将KD应用于同样的三个实验(见图8,右图),我们看到所有的模型都有显著较大的Ortho和。即使是RePr(Ortho)模型也难以降低总和,因为该模型被强烈引导收敛到一个特定的解决方案。这表明,这种由于KD带来的改进并不是由于减少滤波器的重叠。因此,使用这两种技术的模型应该通过更好的泛化来获益。事实上,情况就是如此,因为组合模型的性能明显优于任何一个单独的模型,如表2所示。
图8:标准训练和RePr训练中过滤器正交性的比较(Ortho-sum - eq2),有无知识提炼。较低的值表示较少的滤波器重叠。虚线垂直线表示过滤器下降。
8. 结果
我们介绍了我们的训练方案RePr的性能,与我们的排名标准,滤波器间正交性,Ortho,在不同的ConvNets上[53,1,29,54,31]。对于所提供的所有结果,RePr参数为。S_1 = 20,S_2 = 10,p% = 30, 并且有三次迭代, N= 3.
我们将我们的训练方案与其他类似的方案如BAN和DSD进行比较,见表3。所有三个方案都进行了三次迭代训练,即N=3。所有模型的训练时间为150个纪元,学习速率安排和初始化相似。DSD和RePr(Weights)执行大致相同的功能–通过幅度引导模型稀疏化,不同的是DSD作用于独立的权重,而RePr(Weights)作用于整个滤波器。因此,我们观察到这些技术之间的性能相似。RePr(Ortho)的性能优于其他技术,并且与BAN相比,训练成本显著降低,BAN需要N个完整的训练周期。
与现代架构相比,普通 ConvNets在其特征表示的分配上表现出更大的低效率。因此,与现代架构相比,我们发现我们的方法在应用于普通 ConvNets时有较大的改进。表4显示了CIFAR 10和100上的测试误差。与DenseNet或ResNet相比,具有32个过滤器的普通 CNN各自具有较高的误差,但其推理时间明显更快。RePr训练在CIFAR-10上提高了普通 CNN的相对准确率8%,在CIFAR-100上提高了25%。基线DenseNet和ResNet模型的性能仍然优于用RePr训练的普通 CNNs,但这些模型产生的推理成本是其两倍多。为了比较,我们还考虑了一个只有5层的还原DenseNet模型,它的推理时间与3层的普通 ConvNet相似。这个模型的参数比普通 ConvNet少很多(11倍),导致错误率明显增加,但我们选择均衡推理时间而不是参数数量,因为推理时间在许多实际应用中的重要性。图9显示了更多关于普通 CNNs的不同深度的结果。普通 CNNs开始对数据进行过度拟合,因为大多数过滤器收敛到类似的表示。我们的训练方案迫使它们不同,从而减少了过拟合(图4 - 右)。这一点从18层普通 CNN与CIFAR-10相比3层CNN的测试误差较大可以看出。在RePr训练下,18层模型显示出较低的测试误差。
RePr还能够提高ResNet和浅层DenseNet的性能。在CIFAR-100上,这种改进较大,因为CIFAR-100是100个类的分类,因此是一个较难的任务,需要更多的专业过滤器。同样,我们的训练方案在ImageNet这个1000路分类问题上也有较大的相对改进。表5列出了使用标准训练和使用RePr训练的各种ConvNets在ImageNet[55]上的top-1测试误差。RePr被应用了三次(N=3),表中显示了每一轮之后的误差。我们试图用建议的超参数尽可能地复制已知模型的结果,并且在报告的重新结果的1%以内。训练和超参数的更多细节在补充材料中提供。每一个后续的RePr都会导致性能的改善,回报率明显下降。在没有跳过连接的架构中,如Inception v1和VGG,基线性能较低的架构中,改进更为明显。
我们的模型改进了其他使用类似ConvNets的计算机视觉任务。我们介绍了一小部分来自视觉问题回答和物体检测任务的结果。这两个任务都涉及使用ConvNets来提取特征,RePr改善了它们的基线结果。
图9:在普通 ConvNets上,使用RePr比标准训练在多个分层网络上的准确率有所提高[C^n(32)]。
表3:使用各种技术的测试误差比较。
表4:使用标准训练与RePr训练对Cifar-10 & Cifar-100的不同ConvNets的测试误差比较。Inf.时间显示的是单次通过的推理时间。所有的时间都是相对于三层的普通 CNN而言的。参数数不包括最后一个完全连接的层。
表5:不同模型在RePr不同阶段在ImageNet上的测试误差比较(Top-1)。N=1,N=2,N=3为每轮RePr后的结果。
表6:使用VQA-LSTM-CNN模型对VQA进行标准训练和RePr的比较。
表7:标准和RePr(Ortho)训练的mAP分数,用于ResNet的ConvNet(RPN在C4上)的对象检测。
视觉问题回答 在视觉问题回答(VQA)领域,一个模型被提供了一个图像和关于该图像的问题(作为文本),并且必须对该问题产生一个答案。大多数解决这个问题的模型使用标准的ConvNets来提取图像特征,使用LSTM网络来提取文本特征。
这些特征然后被输入到第三个模型中,该模型学习选择正确的答案作为分类概率。最先进的模型使用注意层和特征之间的三段式映射。我们试验了一个比较标准的模型,将图像特征和语言特征输入到一个多层Perceptron,最后有一个softmax层,对候选答案进行1000路分类。表6提供了使用VQA-LSTM-CNN模型[56]的VQAv1的精度。结果是针对开放性问题的报告,与选择题相比,开放性问题是一个更难的任务。我们从Inception-v1中提取图像特征,使用标准训练和RePr(Ortho)训练进行训练,然后将这些图像特征和问题中的语言嵌入(GloVe向量)馈送到一个两层全连接网络。因此,两篇报道的结果6唯一不同的是Inception-v1的训练方法。
对象检测 对于对象检测,我们用ResNet 50和101在ImageNet上预训练的Faster R-CNN进行了实验。 我们同时实验了特征金字塔网络和带有c4 conv层的基线RPN。我们使用Tensorpack[57]的模型结构,它能够重现报道的mAP分数。该模型在COCO数据集(2014)的’trainingval35k + minival’拆分上进行训练。平均平均精度(mAP)在0.5~0.95的10个IoU阈值下计算,用标准训练和RePr训练得到的盒子的mAP如表7所示。
9. 结论
我们引入了RePr,这是一种训练范式,它周期性地放弃并重新学习一定比例的表现力最差的滤波器。在放弃这些过滤器后,修剪后的子模型能够使用重新主控参数重新捕获丢失的特征,一旦重新引入过滤器,就可以更稳健和有效地分配模型容量。我们表明,在重新引入滤波器之前,一个缩小的模型需要进行训练,而对这个训练时间的仔细选择会带来可观的收益。我们还证明,这个过程可以重复进行,但收益却越来越少。
在之前的研究中,卷积神经网络学习到的特征表征中存在效率低下的问题,在此基础上,我们进一步引入了一种新型的滤波器间正交度量,用于对滤波器重要性进行排名,并证明这种度量优于现有的排名度量。我们的训练方法能够通过确保有效利用有限的容量来显著提高低参数化网络的性能,而且性能的提升是对知识提炼的补充。即使在复杂的、参数过高的网络架构的情况下,我们的方法也能够提高各种任务的性能。
10. 鸣谢
第一作者要感谢英伟达和谷歌捐赠了部分用于这项研究的硬件资源。他还要感谢Nick Moran、Solomon Garber和Ryan Marcus的有益意见。
参考文献
略(请查看原文的References)