摘要
训练有素的卷积神经网络可以很容易地进行修剪而不会显著降低性能。这是因为网络滤波器捕获的特性中不必要的重叠。网络体系结构中的创新,如跳过/密集连接和Inception单元,在一定程度上缓解了这个问题,但是这些改进伴随着运行时计算量和内存需求的增加。我们试图从另一个角度来解决这个问题——不是通过改变网络结构,而是通过改变训练方法。我们证明,通过临时剪枝然后恢复模型滤波器的子集,并循环地重复这个过程,可以减少学习特性中的重叠,从而产生改进的泛化。结果表明,现有的模型剪枝准则对于选择要剪枝的滤波器并引入滤波器间正交性作为确定低表达滤波器的排序准则并不是最优的。我们的方法既适用于一般的卷积网络,也适用于更复杂的现代体系结构,并能提高各种任务的性能,特别是应用于较小的网络时。
一、简介
卷积神经网络在各种计算机视觉任务中都取得了最先进的结果[1,2]。这种成功在很大程度上归功于一种新颖的、特定于任务的网络体系结构的创新[3,4]。尽管网络设计存在差异,但在不同任务之间使用的核心优化技术是相同的。这些技术将每个单独的权重看作自己的实体,并独立地更新它们。在发展专门为卷积网络设计的训练过程方面取得了有限的进展,其中滤波器是网络的基本单元。滤波器不是一个单一的权重参数,而是一堆空间内核。
由于模型通常是过度参数化的,一个经过训练的卷积网络将包含冗余滤波器[5,6]。这从剪枝滤波器[7,8,6,9,10,11]的常见实践中可以明显看出,而不是通过单个参数[12]来实现模型压缩。这些剪枝方法中的大多数都能够删除大量的滤波器,而模型的性能只会有微小的损失。然而,一个滤波器更少的模型不能从零开始训练来达到一个大模型的性能,而这个大模型已经被修剪成大致相同的大小[6,11,13]。标准的培训过程倾向于学习具有无关和不能执行滤波器的模型,即使对于没有任何过剩容量的架构也是如此。这说明卷积神经网络(ConvNets)的训练还有改进的空间。
为此,我们提出了一种训练方案,在经过一些标准训练的迭代之后,我们选择模型滤波器的子集来临时删除。在对缩减后的网络进行了额外的训练之后,我们重新引入之前删除的过滤器,并使用新的权重初始化滤波器,然后继续进行标准训练。我们观察到,在重新引入丢掉的滤波器之后,模型能够获得比丢弃之前更高的性能。这个过程的反复应用得到的模型比通过标准训练得到的模型性能更好,如图1所示,并在第4节中进行了讨论。我们在不同的任务和不同类型的卷积网络上观察到这种改进。这种训练过程能够在选择删除哪些过滤器的一系列可能标准上产生改进的性能,并且通过仔细选择排名标准可以实现进一步的改进。根据最近的假设[14],超参数化网络的相对成功可能在很大程度上是由于初始子网络的丰富。我们的方法旨在保持成功的子网络,同时允许重新初始化不太有用的滤波器。
除了我们新颖的训练策略之外,我们工作的第二个主要贡献是探索指导滤波器丢弃的度量标准。我们的实验表明,在我们的设置中,永久滤波器剪枝的标准技术是次优的,我们提出了一个可有效计算的替代指标,并在性能上有了显著的改进。我们提出了一种基于卷积层内滤波器间正交性的度量方法,并证明了该度量方法优于在我们的训练策略上下文中用于网络剪枝的最先进的滤波器重要性排序方法。我们观察到,即使是小的、参数化不足的网络也倾向于学习冗余滤波器,这表明,滤波器冗余不仅是参数化过度的结果,也是训练无效的结果。我们的目标是减少滤波器的冗余,提高卷积神经网络的表达能力,我们通过改变训练方案而不是模型结构来实现这一点。
二、相关工作
训练框架
为了减少过度拟合和提高泛化,人们对训练范式进行了许多修改。Dropout[15]广泛应用于深度网络训练中。通过随机丢弃神经元,可以防止特征检测器的共适应。通过删除激活[16]的子集也可以达到类似的效果。Wu等人通过卷积激活的概率池化,将随机下降的思想扩展到卷积神经网络。另一种形式的随机训练建议随机删除整个层[17],迫使模型学习不同层的相似特征,以防止极端的过拟合。相反,我们的技术鼓励模型使用特征的线性组合,而不是复制相同的特征。Han等人[18]提出了一种类似的训练方案Dense-Sparse-Density (DSD),他们在训练过程中采用权值正则化来促进稀疏权值的发展,然后去除正则化来恢复稠密权值。虽然DSD工作在单个参数的级别,但我们的方法是专门设计用于卷积滤波器的。
模型压缩
知识蒸馏(KD)[19]是一种利用较大训练模型(教师)的软逻辑训练较小模型(学生)的训练方案。Soft logits捕获对象的层次信息,并提供更平滑的优化损失函数。这使得小模型的训练更容易,收敛性更好。一个令人惊讶的结果是,重生网络[20]表明,如果学生模型具有与教师相同的能力,那么它可以超越教师。KD的其他一些变体已经被提出,它们都需要训练几个模型。我们的培训方案不依赖于外教,对培训的要求比KD少。更重要的是,当与KD结合时,我们的方法比单独使用任何一种技术都能获得更好的性能(在第7节中讨论)。
神经元排名
寻找最不显著的神经元/权重有着悠久的历史。LeCun[22]和Hassibiet al.[23]表明,使用含有二阶导数的Hessian识别弱神经元,比使用权值的大小表现得更好。计算Hessian非常耗时,因此没有得到广泛的应用。Han等人的[12]表明,权值范数仍然是有效的排序标准,并产生稀疏模型。稀疏模型不能转化为更快的推理,但作为神经元的排序标准,它们是有效的。Hu等人研究了激活中0的平均百分比(APoZ),并使用数据驱动的阈值来确定截止值。Molchanov等人的[9]建议从泰勒展开的损失函数的第二项。我们在第5节中提供了详细的比较,并显示了使用这些度量与我们的训练计划的结果。
框架搜索
神经框架结构搜索[25,26,27]是在训练过程中对体系结构进行修改,探索多个神经网络结构,为给定的数据集寻找最佳体系结构。如果提前修复了体系结构,这些方法就没有任何好处。我们的方案通过更好地利用可用的参数来改进给定体系结构的培训。如果最终的体系结构具有灵活性,或者体系结构由于经过认证的模型部署、内存需求或其他考虑因素而被固定,则可以将其与体系结构搜索结合使用。
特征相关性
普通卷积网络的一个众所周知的缺点是其相关特征图[5,28]。像Inception-Net[29]这样的架构是通过分析跨层特性的相关统计数据来驱动的。他们的目标是通过使用不同大小过滤器的连接特性来降低层之间的相关性,随后的研究显示[30]的情况并非如此。最近的体系结构,如ResNet[1]和DenseNet[31],旨在通过对前一层的激活进行求和或连接,隐式地降低特性相关性。也就是说,这些模型在计算上非常耗时,并且需要很大的内存来存储以前的状态。我们的目标是在不改变卷积网络结构的前提下,引入去相关特性。这使ConvNet的所有现有实现都受益,而无需更改基础设施。虽然我们的技术在普通的ConvNet体系结构中表现最佳,但它仍然略微提高了现代体系结构的性能。
三、正交特征的动机
卷积滤波器的一个特性被定义为滤波器各个内核的激活量的逐点和。如果一个特性有助于改进模型的泛化,那么它就被认为是有用的。一个泛化能力较差的模型通常具有这样的特征:总的来说,它捕获了激活空间[32]中有限的方向。另一方面,如果一个模型的特征彼此正交,它们将各自捕获激活空间中不同的方向,从而提高泛化能力。对于一个小尺寸的卷积网络,我们可以通过分析各层特征之间的相关性,并将其聚类为[33]组,从而计算出表达性最大的滤波器。然而,对于实际应用中使用的深对流,该方案在计算上是不切实际的。或者,一个计算上可行的选择是在标准SGD训练中使用的损失函数中增加一个正则化项,它鼓励将激活的协方差最小化,但这只对模型性能产生有限的改进[34,5]。类似的方法,正则化项反而鼓励滤波器权值的正交性,也产生了边际改进[35,36,37,38]。尚等人[39]发现低电平滤波器与反相位重复。强制过滤器正交将在不改变激活函数的情况下最小化这种重复。Saxe等人的[40]表明,权值的正交性除了提高了性能和泛化外,还提高了训练过程中网络收敛的稳定性。[38,41]的作者进一步证明了正交权值对网络有效训练的价值。由于递归神经网络对初始条件[42]的敏感性增加,正交初始化是递归神经网络的一种常用方法,但对于卷积神经网络来说,正交初始化已不太受欢迎。这些因素形成了我们在ConvNet中鼓励特征正交性的动机,并形成了我们排名标准的基础。由于特性依赖于输入数据,因此确定它们的正交性需要跨整个训练集计算统计数据,因此是禁止的。相反,我们计算滤波器权值的正交性作为替代。我们的实验表明,通过正则化项来鼓励权正交性不足以促进特征的发展,这些特征能够捕获输入数据流形的全部空间。该方法作为一种隐式正则化方法,在不影响模型收敛的前提下,提高了滤波器的正交性。
我们使用典型相关分析[43](CCA)来研究单层特征的重叠。CCA找到随机变量的线性组合,它们之间的相关性最大。这是一个有用的工具,以确定学习的特征是否在其表征能力重叠。Li等人将相关分析应用于过滤激活,以表明大多数著名的ConvNet架构都学习了类似的表示。Raghu等人[30]将CCA与SVD相结合,对各层激活物的奇异值进行相关分析。他们表明,增加模型的深度并不总是导致相应的模型维数的增加,这是由于在相关方向上有多个层次的学习表示。我们问一个更基本的问题——在一个单层中,来自不同滤波器的激活之间的相关性如何?在一个像VGG-16这样的超参数化网络中,它有几个卷积层,每个卷积层有512个滤波器,因此大多数滤波器的激活高度相关就不足为奇了。因此,VGG-16被证明是很容易修剪的-超过50%的过滤器可以删除,同时保持整个网络的性能[9,44]。对于小得多的卷积网络来说也是这样吗?
我们将考虑一个简单的网络,它有两个卷积层,每个卷积层有32个过滤器,最后还有一个softmax层。在CIFAR-10上对该模型进行100个时点的训练,退火学习率为58.2%,远低于VGG-16的93.5%。在VGG-16的情况下,我们可能期望滤波器之间的相关性仅仅是模型的过度参数化的产物——数据集没有足够高的维数来要求每个特性都正交于其他特性。另一方面,我们的小网络显然没有捕捉到训练数据的全部特征空间,因此它的滤波器之间的任何关联都是由于训练效率低下,而不是参数化过度。
给定一个经过训练的模型,我们可以通过移除(归零)该滤波器并测量测试集上精度的下降来评估每个滤波器对模型性能的贡献。我们将这个滤波器重要性的度量称为“贪婪的Oracle”。我们对模型中的每个滤波器独立地执行这个评估,并在图2(右)中绘制结果准确度下降的分布。大多数第二层滤波器的精度低于1%,而对于第一层滤波器,则有一个长尾。有些滤波器很重要,其精度超过4%,但大多数滤波器的精度在1%左右。这意味着即使是一个很小的性能不佳的网络也可以在没有显著性能损失的情况下进行筛选。模型没有有效地分配滤波器来捕获必要特性的更广泛表示。图2(左)显示了两个层上滤波器激活(CCA)的线性组合的相关性。很明显,在这两层中滤波器激活之间存在着显著的相关性,其中有几层的相关性接近1(亮黄色斑点)。第二层(右上角对角线)有更多的重叠的特点,第一层(右下角)。对于随机正交矩阵,任何大于0.3的值(浅于深蓝色)都是异常。如果将线性组合推广到核函数[45]或奇异值[30],则激活的相关性更强。无论如何,只要说卷积滤波器的标准训练不能最大限度地发挥网络的表示潜力就足够了。
四、我们的训练计划:
我们通过循环删除冗余滤波器、重新训练网络、重新初始化删除的滤波器和重复来修改训练过程。
我们考虑每一个滤波器(3维张量)作为一个单元,并将滤波器表示为一个长向量。令定义为一个网络模型,模型里面有个滤波器分散在个卷积层。令为个滤波器的一个子集,那么就定义为完整的网络结构,定义为缺少的一个子网络。我们的训练计划交替训练完整网络()和子网络()。这里引入两个超参数。第一是转换训练每一个网络的迭代的数量,令是完整网络的,是子网络的。由于有有意义的数值,所以网络学习提升了之前文章的结果。第二个超参数是总共重复转换框架的数量,令为。该值在一定范围之外的影响很小,不需要调优。
算法中最重要的部分是用于对滤波器进行排序的度量。设R为将某个数值与滤波器相关联的度规。这可以是权值或梯度的一个范数,也可以是一层中矩阵-滤波器间正交性的一个范数。在这里,我们提出了我们的算法不确定度规的选择。当应用于我们的训练方案时,对滤波器重要性的最明智的选择会导致比标准训练更好的效果(见模型简化测试6)。
我们的训练计划是在宏观层面上进行的,并不是一个权重更新规则。因此,不能代替SGD或其他自适应方法,如Adam[46]和RmsProp[47]。我们的方案与任何可用的优化器一起工作,并显示了全面的改进。然而,如果使用具有特定学习速率参数的优化器(如Adam),则必须重新初始化与剪枝过滤器(Fb)的权重相对应的学习速率。相应的批规范化[48]参数(γ&β)也必须被重新初始化。由于这个原因,我们的训练计划与标准训练的比较是使用一个通用的优化器完成的。
我们重新初始化过滤器(),使其与被删除前的值和非剪枝过滤器()的当前值正交。我们对同一层滤波器的权值进行QR分解,求出零空间,并以此求出正交初始化点。
算法框架:
我们的算法是训练与重新初始化和修剪- RePr(发音:reaper)。我们在算法1中总结了我们的训练方案。
我们使用一个浅层模型来分析我们的训练方案的动力学及其对训练/测试精度的影响。一个浅层模型将使计算每个过滤器的贪婪Oracle排名成为可能。这将使我们能够了解训练计划的影响,而不会因为排名标准的影响而混淆结果。我们在第8节的结果中提供了关于更大更深卷积网络的结果。
思考一个层的普通卷积网络,没有跳跃连接或密集连接,带有个滤波器,如下表示:
令人惊讶的是,[E]处的测试精度显著高于[C]点,而[E]处是重新引入修剪后的过滤器后的几个时代。点[C]和点[E]是相同的容量网络,在[E]处更高的精度并不是因为模型收敛。在标准训练(橙色线)中,测试精度在此期间没有变化。不幸的是,那些先增长网络,然后再进行修剪的模型[49,50]停止了对另一个增长阶段的回避,从而提高了性能。在他们的辩护中,这种技术破坏了通过修剪获得更小网络的目的。但是,如果我们继续对另外两个迭代进行RePr训练,我们会看到点[F],它仍然是原始过滤器的70%,产生的精度与点[E]相当(模型大小的100%)。
从图中我们还可以看出,RePr模型的训练精度较低,这意味着模型上存在某种形式的正则化。这在图4(右)中很明显,图4显示了具有大量迭代的RePr (N = 28)。在提高测试精度的边际效益迅速减小的同时,训练与测试精度之间的泛化差距显著减小。
五、我们的度量:滤波器间正交性
寻找一个度量来对最不重要的滤波器进行排名的目标有两个方面:(1)计算贪婪的Oracle对于大型网络在计算上是不可行的,(2)贪婪的Oracle可能不是最佳标准。如果一个滤波器捕获了一个唯一的方向,因此不能被其他滤波器的线性组合所替代,那么它对精度的贡献就会降低,Oracle将删除该滤波器。在随后的重新初始化和训练中,我们可能不会得到相同的方向集。
激活模式捕获的方向表示深度网络[51]的容量。使正交特征将最大化所捕获的方向,从而提高网络的表现力。在密集连接层中,即使存在ReLU[42],正交权值也会导致正交特征。然而,目前还不清楚如何计算卷积层的正交性。
卷积层由参数组成,这些参数分组为空间内核,稀疏地共享传入的激活。在考虑正交性时,是否应该考虑单个卷积层中的所有参数?促进权值初始化正交的理论是基于密集连接层(FC-layers)的,流行的深度学习库遵循这一指导1,将卷积层视为一个巨大的向量,而不考虑稀疏连接。[41]中描述了最近对卷积滤波器正交性的研究,但其动机是非常深的网络(10K层)的收敛性,而不是特征的正交性。我们的实证研究表明,我们更倾向于要求层(层间和层内)中单个滤波器的正交性,而不是单个内核。
是大小的矩阵,并且代表矩阵的第i行。滤波器的一行的非对角元素表示与在同一层的所有其他滤波器的投影。当其它滤波器与给定滤波器正交时,行和最小。如果这个值在网络中的所有滤波器中是最大的,那么我们将滤波器排在最不重要的位置(因此需要进行修剪)。当我们在单层上计算滤波器的度量时,排名是在网络中的所有滤波器上计算的。我们不强制每一层排名,因为这将需要学习每一层的超参数p%和一些层比其他更敏感。与较早的层相比,我们的方法从较深的层删除了更多的滤波器。这与给定网络中每个滤波器的贡献分布一致(图2右)。
我们的度规的计算不需要昂贵的计算Hessian[22]的倒数或二阶导数[23],是可行的任何规模的网络工程。最耗时的计算是大小为的L矩阵乘积,但是gpu是为快速矩阵乘法而设计的。然而,我们的方法仍然比计算权重、激活量或零的平均百分比(APoZ)的范数要耗时。
在选择滤波器的正交性时,一个明显的问题是,在损失函数中增加一个软惩罚是否能改进这种训练?一些研究人员[35,36,37]报告说,由于用于特定任务模型的ConvNets中增加了正则化,所以有了微小的改进。我们尝试通过添加损失函数,但是我们没有看到任何改善。软正则化对所有的滤波器进行了惩罚,并改变了损失面,从而在不提高表达能力的情况下鼓励权值的随机正交性。
六、消融研究
剪枝标准的比较
我们测量我们的度量与Oracle的相关性,以回答这个问题——我们的度量有多好地替代了滤波器重要性排序。皮尔逊相关度规,也就是后来的Ortho,与Oracle的关系是0。38。这不是一个很强的相关性,但是,当我们将它与其他已知的度量标准进行比较时,它是最接近的。Molchanov等人的[9]报告了他们的标准(泰勒)与贪婪Oracle的相关性为0.73。我们在早期发现了类似的泰勒排名数字,但随着模型的收敛,相关性显著减弱。这是由于低梯度值从滤波器已收敛。泰勒度规是活化和梯度的乘积。在学习的早期阶段,高梯度与重要的滤波器相关,但当模型收敛时,低梯度并不一定意味着较不显著的权重。可能是滤波器已经收敛到一个有用的特性,这个特性不会对模型的总体误差造成影响,也不会卡在鞍点上。对于激活的规范,关系是相反的。因此,把这些条件相乘,希望就能达到一种平衡。但我们的实验表明,在完全收敛的模型中,低梯度控制高激活。因此,当模型收敛时,泰勒项的值会降低,不再与低效滤波器相关。虽然值之间的相关性表示度量在多大程度上代替了预测精度,但是更重要的是度量滤波器等级的相关性。值与秩的相关性可能不相同,与秩的相关性是确定较弱滤波器的更有意义的度量。当在滤波器的等级上测量时,Ortho与Oracle的相关性为0.58。其他指标使用排名显示出非常差的相关性。图3(左和中)显示了与Oracle相关的各种度量的关系图。图3右边的表格显示了CIFAR-10上各种排名指标的测试精度。从表中可以明显看出,与标准训练和其他排名标准相比,正交性排名显著提高了准确性。
滤波器修剪的百分比
在我们的训练方案中,一个关键因素是在每个修剪阶段需要修剪的滤波器的百分比(p%)。它的行为类似于Dropout参数,影响模型的训练时间和泛化能力(见图4)。一般来说,剪枝率越高,性能越好。然而,超过30%,性能并不显著。高达50%,模型似乎从滤波器的下降中恢复。除此之外,训练不稳定,有时模型不能收敛。
RePr迭代次数
我们的实验表明,rer过程的每一次重复都有递减的回报,因此应该被限制在一个个位数上(参见图4(右))。与密度稀疏的[18]和重生网络[20]类似,我们发现对于大多数网络,两到三次迭代就足以获得最大的收益。
优化和S1 / S2
图5(左)显示了使用不同优化器时改进的差异。我们的模型与大多数著名的优化器都能很好地工作。Adam和Momentum的表现比SGD好,因为他们在训练中增加了稳定性。我们对S1和S2的不同值进行了实验,如果其中一个值足够大,模型可以暂时收敛,那么差异并不大。
学习速率安排
具有固定学习速率的SGD通常不会产生最优的模型性能。相反,在训练过程中逐步退火学习率可以生成具有更高测试精度的模型。在ResNet、DenseNet和Inception上的最新结果都是按照预定的学习进度报告的。然而,精确学习速率计划的选择本身就是一个超参数,需要针对每个模型进行专门的调优。循环学习速率[52]可以提供更强的性能,而无需对精确的学习速率计划进行彻底的调优。图6显示了我们的训练技术与固定进度学习率方案和循环学习率结合使用时的对比。我们的训练计划没有受到使用这些计划的影响,与标准训练相比,改进仍然很明显。
Dropout的影响
Dropout通常应用于多层感知器,但通常不用于ConvNets。我们的技术可以看作是一种非随机Dropout的类型,特别适用于ConvNets。与标准的Dropout不同,out方法作用于整个滤波器,而不是单个权重,并且只在选定的训练阶段应用,而不是在每个训练步骤中应用。Dropout通过鼓励权重的协同适应来防止过度拟合。这在参数化模型过多的情况下是有效的,但是在紧凑或浅模型中,退出可能不必要地减少已经有限的模型容量。
图7显示了标准训练的性能和我们提出的方法(RePr),在一个三层卷积神经网络上,每个层有32个过滤器,在有和没有Dropout的情况下。丢弃率为0.5。我们观察到,由于模型的有效容量减少了一半,包含Dropout降低了最终的测试精度。无论是否添加标准的Dropout,我们的方法都可以提高性能,这表明它的效果与Dropout的好处是不同的。
正交损失—OL 将滤波器的正交性(式1)作为正则化项加入到优化损失中,对模型的性能影响不大。因此,损失函数为
这里,是平衡损失项之间的超参数。我们试着用不同的λ值。表1报告的结果与损失项λ= 0.01,验证精度最高。OL是这个损失项的加法。
七、正交性和蒸馏
我们的方法,RePr和知识蒸馏(KD)都是提高紧凑模型性能的技术。RePr减少了滤波器表示的重叠,KD从更大的网络中提取信息。我们对这些技术进行了简要的比较,并表明可以将它们结合起来实现更好的性能。
RePr利用滤波器间正交性,在权值方向上重复丢弃重叠最多的滤波器,如式2所示。因此,我们希望在训练过程中,这个值会逐渐降低。图8(左)显示了这个值在整个网络上的和,其中包含三个训练方案。我们用两个不同的滤波器排名标准——Ortho和Oracle来显示RePr。使用Ortho排名的RePr训练方案具有最低的Ortho和并不奇怪,但是与标准训练相比,使用Oracle排名的RePr训练也减少了滤波器重叠,这令人惊讶。一旦模型开始收敛,基于Oracle排名的最不重要的滤波器就是重叠最多的滤波器。去掉这些滤波器可以获得更好的测试精度(图3右侧的表)。
这种改进与知识蒸馏的改进是否来自同一来源?知识蒸馏(KD)是一种行之有效的训练紧凑模型的方法。利用教师的软逻辑和真实信号,与标准训练相比,该模型收敛到更好的最优解。如果我们把KD应用到同样的三个实验中(见图8,右边),我们会发现所有的模型都有更大的正态和。即使是RePr (Ortho)模型也很难降低和,因为该模型被强烈地引导收敛于特定的解。这表明KD的改善并不是因为减少了滤波器的重叠。因此,一个同时使用这两种技术的模型应该受益于更好的泛化。确实,情况就是这样,因为组合模型的性能比单独的模型都好得多,如表2所示。
八、结果
我们给出了我们的训练方案RePr的性能,并给出了我们的排名标准,即在不同的ConvNets上的过滤器间正交性Ortho[53,1,29, 54,31]。对于提供的所有结果,RePr参数为:S1 = 20, S2 = 10, p% = 30,经过三次迭代,N = 3。
我们将我们的培训方案与其他类似的方案进行了比较,如表3中的BAN和DSD。三种方案都经过三次迭代训练,即N=3。所有模型均经过150个学习周期的训练,学习进度和初始化情况基本相同。DSD和RePr(权重)执行大致相同的功能——在大小的指导下对模型进行稀疏化,不同之处是DSD作用于单个权重,而RePr(权重)作用于整个过滤器。因此,我们观察到这些技术之间的性能相似。与需要N个完整训练周期的BAN相比,RePr (Ortho)优于其他技术,而且训练成本也低得多。
与现代架构相比,普通的ConvNets在分配其特性表示方面的效率要低得多。因此,与现代架构相比,我们发现将我们的方法应用于普通的ConvNets时,会有更大的改进。表4显示了CIFAR 10和100上的测试错误。与DenseNet或ResNet相比,带有32个滤波器的普通CNNs具有较高的错误,但它们的推理时间明显更快。在CIFAR-10和CIFAR-100上,RePr训练分别提高了8%和25%的相对准确度。基线DenseNet和ResNet模型的性能仍然优于使用RePr训练的普通CNNs,但这些模型的推理代价是前者的两倍多。为了进行比较,我们还考虑了一个只有5层的简化DenseNet模型,该模型的推理时间与3层的普通卷积网络相似。与传统的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训练的各种卷积神经网络的ImageNet[55]的top-1测试误差。RePr应用三次(N=3),每轮后误差见表。我们试图用建议的超参数尽可能接近地复制已知模型的结果,并在报告结果的±1%范围内。有关训练和超参数的更多细节载于补充材料。随后的每一份报告都会带来性能的改善,但回报却显著下降。改进在没有跳过连接的架构中更为明显,比如Inception v1和VGG,并且基线性能较低。
视觉问题回答
在可视化问题回答(VQA)领域中,模型提供了关于该图像的图像和问题(作为文本),并且必须生成该问题的答案。解决这一问题的模型大多采用标准的卷积神经网络提取图像特征,采用LSTM网络提取文本特征。然后将这些特征反馈给第三个模型,该模型学会选择正确的答案作为分类问题。最先进的模型使用注意力层和复杂的功能之间的映射。我们用一个更标准的模型进行了实验,图像特征和语言特征被输入到一个多层感知器中,该感知器的末端有一个softmax层,可以对候选答案进行1000种方式的分类。表6使用VQA-LSTM-CNN模型[56]对VQAv1进行了精度分析。开放式问题的结果是报告的,这是一个比选择题更难的任务。我们从incep -v1中提取图像特征,使用标准训练和RePr (Ortho)训练进行训练,然后将这些图像特征和问题中的语言嵌入(手套向量)输入到一个两层完全连接的网络中。因此,这两个报告结果6的唯一区别是incepepi -v1的训练方法。
目标检测
对于目标检测,我们使用在ImageNet上预训练的ResNet 50和101对更快的R-CNN进行了实验。我们用特征金字塔网络和c4 卷积层的基线RPN进行了实验。我们使用了来自Tensorpack[57]的模型结构,它能够重现报告的地图得分。该模型基于COCO数据集的“trainval35k + minival”分割进行训练(2014)。平均平均精度(mAP)是在10个IoU阈值(0.5到0.95)下计算的。通过标准训练和RePr训练获得的箱形图如表7所示。
我们引入了RePr,这是一种训练范式,它周期性地下降,并重新学习一些最不善于表达的过滤器的百分比。删除这些过滤器之后,经过修剪的子模型能够使用剩余的参数重新获得丢失的特性,从而在重新引入过滤器之后,允许更健壮和更有效地分配模型容量。我们表明在重新引入滤波器之前,减少的模型需要训练,并且仔细选择该训练持续时间可以获得显著的效果。我们还证明,这一过程可以重复而收益递减。
在前面的研究中,我们强调了卷积神经网络学习到的特征表示的低效率,为了训练RePr,我们进一步引入了一种新的过滤间正交度度量用于排序过滤重要性,并证明了该度量优于现有的排序度量。我们的训练方法能够通过确保有效地使用有限的容量,显著地提高低参数化网络的性能,并且性能的提高是对知识精馏的补充。即使在复杂的、参数化的网络体系结构中,我们的方法也能够提高各种任务的性能。
转载:https://blog.csdn.net/breezero/article/details/100856657