本文提出了一种新的学习范式-滤波器嫁接,旨在提高深神经网络(DNNs)的表示能力。其动机是dnn具有不重要(无效)的过滤器(例如,l1范数接近0)。这些过滤器限制了dnn的潜力,因为它们被认为对网络几乎没有影响。为了提高效率,过滤修剪去除了这些无效的过滤器,而过滤嫁接则从提高精度的角度重新激活它们。通过将外部信息(权重)嫁接到无效的过滤器中来处理激活。为了更好地执行嫁接过程,我们提出了一种基于熵的准则来测量滤波器的信息量,并提出了一种自适应加权策略来平衡网络间的嫁接信息。嫁接操作后,网络中的无效滤波器与未触及状态相比非常少,使得模型具有更大的表示能力。我们还对分类和识别任务进行了大量的实验,以证明我们的方法的优越性。例如,在CIFAR-100数据集上,嫁接的Mo bileNetV2的性能比未嫁接的Mo-bileNetV2高出约7%。代码可以在https://github.com/fxmeng/filter-graphy.git上找到。

自从Krizhevsky等人。[7] 在2012年ImageNet竞赛中取得突破[16],研究人员在探索DNN的各种体系结构方面取得了重大进展(Simonyan&Zisserman[18];Szegedy等人。[20] ;他等。[4] ;Lu等人。[12,11])。DNNs逐渐成为计算机视觉[7,10]、语音识别[2]和语言处理[24]等领域非常流行和强大的模型。然而,最近的研究表明dnn具有无效的(不重要的)过滤器[9]。这些滤波器被认为对输出精度影响很小。去除某些滤波器可以在不影响性能的前提下加速DNNs的推理。这一发现启发了许多研究如何确定哪些滤波器是唯一的[13]以及如何有效地去除性能下降可容忍的滤波器[29,19]。
然而,目前尚不清楚直接放弃此类过滤器和组件是否是最佳选择。如果这种传统的无效过滤器在某些方面确实有用呢?类似boosting这样的集成学习也发生了同样的情况,在这种情况下,虽然单个弱分类器性能较差,但它们的组合和再训练可能会打开通向最佳性能的大门。此外,考虑到多个网络,还不清楚一个网络能否从其他网络中学习。在这篇文章中,我们探讨了通过引入外部信息来重新激活一个网络中的有效过滤器的可能性。这是通过提出一种新的滤波器嫁接方案来实现的,如图1所示。滤波器嫁接不同于滤波器修剪,因为我们通过分配新的权重来重新激活滤波器,从而保持每一层中的层数和滤波器数相同。由于网络中处理信息的有效滤波器较多,因此嫁接网络具有更高的表示能力。
过滤嫁接的关键步骤是选择合适的信息源(即我们应该从哪里移植信息)。本文对这一问题进行了深入的研究,认为我们应该从外部(其他网络)而不是内部(自网络)移植信息。一般来说,我们可以同时训练几个网络。在特定时期的训练中,我们将一个网络的有意义的过滤器移植到另一个网络的无效过滤器中。通过执行嫁接,每个网络可以从其他网络学习外部信息。详情见第3节。
本文的主要贡献有三点:

•我们提出了一种新的学习范式,称为DNNs的过滤嫁接。嫁接可以在不改变网络结构的情况下,重新激活有效的滤波器以提高DNNs的潜力。
•提出了一种基于熵的准则和一种自适应加权策略,以进一步提高滤波器嫁接方法的性能。
•我们对分类和识别任务进行了广泛的实验,结果表明嫁接可以显著提高DNNs的性能。例如,移植的MobileNetV2在CIFAR-100上的准确率达到78.32%,比未移植的MobileNetV2高出约7%。

2。相关工作
过滤修剪。

过滤剪枝的目的是去除无效的过滤以加速网络的推理。[9] 首先利用l1范数准则剪除不重要的滤波器。从那时起,更多的标准来衡量过滤器的重要性。[29]利用光谱聚类来决定需要移除哪个滤波器。[19] 提出了一种新的数据驱动方法,该方法利用主成分分析(PCA)来确定应保留能量的比例。[21]将子空间聚类应用于特征映射以消除卷积滤波器中的冗余。而不是放弃无效的过滤器,菲尔特嫁接打算激活它们。值得注意的是,尽管过滤嫁接的动机与修剪相反,但嫁接仍然需要选择适当的标准来决定哪些过滤器不重要。因此,不同的修剪方法很容易用于嫁接。
蒸馏和相互学习。

嫁接可以并行地训练多个网络。因此,这个过程类似于蒸馏[6]和相互学习[25]。嫁接和蒸馏的区别在于,蒸馏是一个“两阶段”的过程。首先,我们需要训练一个大的模型(教师),然后使用训练的模型来教一个小的模型(学生)。虽然嫁接是一个“一个阶段”的过程,但我们在训练过程中移植参数。相互学习与嫁接的区别在于,相互学习需要相互损失来监督每个网络的学习,而不能很好地推广到多个网络。当我们在训练过程中加入更多的网络时,嫁接不需要有监督的损失,并且表现得更好。同时,我们在每一个阶段而不是每一次迭代中移植权重,从而大大降低了网络间的通信成本。

RePr。

RePr[14]类似于我们考虑在过滤级别上改进网络的工作。然而,RePr的动机是在网络过滤器捕获的特征中存在不必要的重叠。RePr首先对重叠滤波器进行剪枝以训练子网络,然后恢复剪枝滤波器并重新训练整个网络。从这个意义上讲,RePr是一种多阶段的训练算法。相比之下,滤波器嫁接的动机是l1范数较小的滤波器对网络输出的贡献较小。因此,每个方法操作的过滤器是不同的。嫁接也是一种更有效的一步训练算法。为了更好地说明嫁接与上述学习类型的区别。我们在表1中画一张桌子。从表1可以看出,滤波器嫁接是一种单阶段学习方法,不需要改变网络结构,也不需要监督损失。

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_BP神经网络与滤波器子带区别

 

 

3.过滤嫁接

本节安排如下:在第3.1节中,我们研究了嫁接过程中所需信息的来源;在第3.2节中,我们提出了计算滤波器信息的两个准则;在第3.3节中,我们讨论了如何有效地利用嫁接信息;在第3.4节中,我们将嫁接方法扩展到多个网络,并提出了最终基于熵的嫁接算法。

3.1。嫁接信息源
另一方面,我们将原始的无效过滤器称为“砧木”,将有意义的过滤器或信息称为“接穗”,这与植物学对嫁接的解释是一致的。过滤嫁接是将信息(权重)从接穗传递到砧木上,因此选择有用的信息对嫁接至关重要。本文提出了三种获得接穗的方法。
3.1.1接穗噪音
一种简单的方法是将高斯噪声N(0,σt)移植到无效滤波器中,因为高斯噪声通常用于DNNs的权值初始化[8,3]。嫁接前,无效滤波器的l1范数较小,对输出的影响较小。但嫁接后,无效滤波器的l1范数变大,对DNNs的影响也越来越大。

σt =at(0<a<1) (1)

我们还让σt随时间而减小(见(1)),因为大量的噪声可能使模型更难收敛。

3.1.2作为接穗的内部过滤器
在无效滤波器(l1范数较小)中加入其它滤波器(l1范数较大)的权重,而不是加入随机噪声。嫁接是在一个网络内进行的。具体来说,对于每一层,我们根据l1范数对滤波器进行排序,并设置阈值γ。对于l1范数小于γ的滤波器,我们将这些滤波器视为无效滤波器。然后将第i大滤波器的权值嫁接到第i小滤波器中。这个过程如图2所示。

 

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权值_02

 

 

     图2。嫁接内部过滤器。首先根据l1范数对滤波器进行排序,然后将l1范数较大的滤波器的权值嫁接到l1范数较小的滤波器中。(最好用彩色观看)

由于无效滤波器具有新的l1范数较大的权重,因此可以激活它们以对输出产生较大的影响。但是这种方法并没有给网络带来新的信息,因为权值是在自网络中嫁接的。我们通过信息语言理论对其进行了进一步的评价。为了简化证明过程,我们在网络的某一层处理两个滤波器(见定理1,证明可在补充材料中找到)。根据定理1,选择内部滤波器作为接穗不会带来新的信息。第4.1节的实验也与我们的分析相符。
定理1假设网络的某一层有两个滤波器,分别表示为随机变量X和Y。Z是另一个满足Z=X+Y的变量,然后H(X,Y)=H(X,Z)=H(Y,Z),其中H表示信息论中的熵。

3.1.3作为接穗的外部过滤器
针对在单个网络中加入随机噪声和权值的缺点,我们从其他网络中选择外部滤波器作为接穗。具体来说,我们可以并行地训练两个网络,即M1和M2。在特定时期的训练中,我们将M1的有效滤波器权值移植到M2的无效滤波器中。与第3.1.2节中的嫁接过程相比,我们做了两个修改:
•嫁接是在层一级进行的,而不是在膜一级进行的,这意味着我们将M1中某一层中的所有滤光片的重量嫁接到M2中的同一层中(也将M2反向地嫁接到M1中)。由于两个网络使用不同的权值初始化,因此无效滤波器的位置在统计上是不同的,只有将信息移植到一个层中的部分滤波器中可能会破坏层一致性(参见补充材料中的更多分析和实验结果)。通过嫁接,两个网络的无效滤波器可以互相学习信息。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权值_03

 

 

两个网络的嫁接过程如图所示-
第3题。从等式(2)和图3中,有两个键
嫁接要点:1)如何计算
W M1和W M2;2)如何确定加权系数ii
α. 我们在第3.2节和第3.3节中深入研究了这两个问题。同时,我们希望增加两个网络的多样性,从而使两个网络的初始化不同,并且两个网络的一些超参数也不同(例如,学习率、数据采样顺序……)。值得注意的是,当在两个网络上执行嫁接算法时,两个网络在从(2)开始的嫁接过程之后具有相同的权重。但嫁接只在每个时期进行。对于其他迭代步骤,由于两个网络是用不同的超参数来学习的,所以它们的权重是不同的。另外,当我们在嫁接算法中加入更多的网络(N>2)时,这个问题就消失了。可在第3.4节中找到多个网络嫁接。

 

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_BP神经网络与滤波器子带区别_04

 

 

3.2。纤维层信息计算准则
在这一部分中,我们研究了两个准则来计算滤波器或层的信息。
3.2.1 L1规范
在前面的章节中,我们使用l1范数来度量过滤器的信息。表示Wi,j∈RNi×K×K为第i卷积层中第j个滤波器的权重,其中Ni为第i层中滤波器的数目。其l1规范可通过以下方式来表示:

 

 

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_BP神经网络与滤波器子带区别_05

l1范数准则在许多研究中被广泛使用[9,23,22]。但最近的研究表明,较小的规范不太重要的标准并不总是正确的。一个特殊的情况是,0-1个规则排列的过滤器比所有1个过滤器都好。[5] 同时指出,利用这一小范数不太重要的准则有一些先决条件。另一方面,修剪可能会损害有效的过滤器。

3.2.2熵
l1范数准则只关注滤波器权值的绝对值,而我们更关注权值的变化。l1范数准则的一个问题是l1范数忽略了权重的变化。假设一个滤波器的权重Wi,j∈RNi×K×K满足Wi,j(n,k1,k2)=a,对于每个n∈{1,…,Ni}和k1,k2∈{1,…,K},Wi,j中的每个单值都是相同的。因此,当使用Wi,j对输入进行卷积运算时,即使a很大,输入的每个部分对输出的贡献也是相等的。因此,滤波器不能区分哪个部分的输入更重要。基于以上分析,我们选择测量weight的变化。我们假设Wi,j的每个值都是从随机变量X的分布中抽取的,并用熵来度量分布。假设分布满足P(X=a)=1,则Wi,j中的每个单值相同,熵为0。在计算连续分布的熵比较困难的情况下,我们遵循了文献[17,1]中的策略。我们首先将连续分布转化为离散分布。具体来说,我们将值的范围划分为m个不同的容器,并计算每个容器的概率。最后,变量的熵可以计算如下:

BP神经网络与滤波器子带区别 基于神经网络的滤波器_基线_06

3.3。嫁接中的自适应加权
在这一部分中,我们提出了一种自适应加权策略

 

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_BP神经网络与滤波器子带区别_07

 

 

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_基线_08

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权值_09

BP神经网络与滤波器子带区别 基于神经网络的滤波器_BP神经网络与滤波器子带区别_10

 

 

 

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权重_11

 

 

3.4条。扩展到多个网络的嫁接方法可以很容易地扩展到多个网络的情况,如图5所示。在训练的每个阶段,每个网络Mk接受来自Mk-1的信息。经过一定的训练阶段,每个网络都包含来自所有其他网络的信息。并自适应地计算了加权系数。在4.5节中,我们发现通过使用嫁接来训练多个网络,每个网络都获得了很大的性能增益。我们在算法1中提出了基于熵的嫁接。值得注意的是,嫁接是在多个网络上并行执行的,这意味着当我们使用WMk-1更新WMk时,ll WMk-1尚未通过嫁接进行更新。

四。实验
本节安排如下:在第4.1节中,我们考察了不同信息源对嫁接方法的影响;在第4.2节中,我们证明基于熵的嫁接优于基于l1范数的嫁接;在第4.3节中,我们分析了进行嫁接时的训练多样性;在第4.4节中,我们将嫁接与其他学习方法进行了比较;在第4.5节中,我们展示了通过使用多个网络,嫁接可以极大地提高网络的性能;在第4.6节和第4.7节中,我们检验了在闭集分类和开集识别任务上的嫁接;在第4.8节中,我们进一步分析了嫁接算法的有效性。所有的实验都是可重复的。该代码可根据需要提供,并将在线发布。

我们在第3节中提出了三种获得scion的方法,并在表2中对CIFAR-10和CIFAR-100数据集上的三种方法进行了实验检验。以无嫁接的DNN训练为基线。所有的方法都使用MobileNetV2作为基础模型。为了进行公平的比较,每个方法都部署了相同的超参数:mini batch size(256)、optimizer(SGD)、initial learning rate(0.1)、momentum(0.9)、weight decay(0.0005)、number of epochs(200)、learning rate decay(0.1 at per 60 epochs)。这里的“外部”包括并行训练两个网络。在实践中,我们发现每个网络在“外部”方法中的性能是非常接近的。因此在重新维护时,我们总是记录第一个网络的性能。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权重_12

从表2可以看出,“内部接穗”的性能类似于“噪声”,因为我们在定理1中证明了选择内部滤波器作为接穗不会给网络带来新的信息。选择外部滤波器作为接穗,在三种方法中效果最好。在嫁接过程中,所有的嫁接试验都选择外部滤子作为接穗。

4.2。比较L1范数和熵准则,我们在第3.2节中提出了两个衡量滤波器固有信息的准则。在这一部分中,我们基于CIFAR-10和CIFAR-100数据集对l1范数嫁接和熵嫁接进行了定量评估。结果见表3。两个网络用于嫁接,具有相同的模型结构和训练超参数。从表3可以看出,基于熵的嫁接在每个模型和数据集设置上都优于基于l1范数的嫁接。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权重_13

4.3。嫁接中训练多样性的评估我们发现,当我们增加两个网络的训练多样性时,性能会提高。由于嫁接是在模型之间传递权重,因此如果外部信息(权重)有更多的变化,则网络可以更好地学习。为了达到这一目的,我们可以多样化的超参数设置(采样顺序和学习率在我们的情况下)看看这些因素如何影响嫁接性能。结果见表4。在不同的LR情况下,为每个模型设置了具有不同初始学习率的余弦退火LR调度(这确保了在每个步骤中,每个模型的学习率是不同的)。我们发现,抽样顺序和学习率带来的权重变化丰富了嫁接信息,从而鼓励模型更好地学习。另一方面,在进行嫁接时,所有网络在数据装载器和学习率方面使用不同的超参数。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_BP神经网络与滤波器子带区别_14

4.4。嫁接与其它方法的比较
我们在表1中深入研究了嫁接和其他学习方法的区别。在这一部分中,我们对表5中的CIFAR-10和CIFAR-100数据集的嫁接与其他方法进行了实验比较。
为了公平比较,“蒸馏”、“相互学习”和“过滤嫁接”都涉及训练两个网络。蒸馏和嫁接的区别在于蒸馏是一个两阶段的训练过程。当进行蒸馏时,我们首先训练一个网络直到收敛,

然后我们利用网络,作为教师,将知识提炼成学生网络。为了公平地与嫁接进行比较,教师和学生的网络结构是相同的,这与[25]中的设置是一致的。而对于grating,训练是在一个阶段完成的,不需要再培训过程。互学习与嫁接的区别在于,互学习训练的两个网络具有另一个很强的监督损失,网络间的通信成本很高。在使用互学习方法时,应仔细选择互监督损失系数和主损失系数。而对于移植物,转移重量不需要监督。利用熵对权重进行嫁接,自适应计算权重系数,效率更高。表5的结果表明,在所有学习方法中,滤波器嫁接的效果最好。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_基线_15

4.5条。多网络嫁接
滤波器嫁接的威力在于,我们可以通过在嫁接算法中加入更多的网络来大大提高性能。我们在表6中检查了多网络嫁接的效果。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权重_16

随着网络数量的增加,性能会更好。例如,6个模组的嫁接效果可以比基线提高约7%,这是一个很大的改进。这是因为Mo-bileNetV2是基于深度可分卷积的,因此滤波器可能学习到的知识不足。过滤器抓取可以帮助过滤器从其他网络中学习互补的知识,这大大提高了网络的性能。值得注意的是,6个模型的嫁接效果甚至优于6个模型的组合。但与集成不同,嫁接只维护一个测试网络。然而,在嫁接算法中,当模型的个数增加到8时,性能会停滞。我们假设原因可能是网络从外部接收了太多的信息,这可能会影响网络学习的自我信息。如何很好地解释这一现象是一个有趣的未来工作。
4.6条。ImageNet上的嫁接
为了在更大的数据集上测试嫁接的性能,我们还验证了ImageNet上的嫁接,ImageNet是一个拥有超过1400万张图像的图像分类数据集。我们比较了在ResNet18和ResNet34模型上与基线的嫁接。基线超参数的设置与ImageNet1的官方Pythorch设置一致:小批量(256)、初始学习率(0.1)、学习率衰减(每30个阶段0.1)、动量(0.9)、权重衰减(0.0001)、阶段数(90)和优化器(SGD)。为了提高训练的多样性,在进行嫁接时,我们对两个网络使用不同的学习速率和数据装载器。其他超参数的设置与基线一致。结果见表7。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权重_17

4.7条。ReID任务的嫁接
嫁接是循环神经网络的一种通用训练方法。因此,嫁接不仅可以应用于分类任务,还可以应用于其他计算机视觉任务。在这一部分中,我们评估了在分布式多摄像机监控中的一个开放集检索问题——嫁接人再识别(ReID)任务,以匹配出现在不同非重叠摄像机视图中的人。我们对两个人的ReID数据集进行了实验:Mar-ket1501[26]和DukeMTMC-ReUD(Duke)[15,27]。基线超参数的设置与[28]一致:小批量(32),预训练(真),优化器(ams-梯度),初始学习率(0.1),学习率衰减(每20个阶段0.1),阶段数(60)。除数据加载和学习率外,其他超参数的设置与基线一致,结果如表8所示。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权重_18

从表8可以看出,对于每个模型和每个数据集,嫁接的性能都优于基线。此外,如前所述,增加接枝中的网络数目可以进一步提高性能。
4.8条。嫁接效果
在这一部分,我们进一步分析了嫁接方法的有效性。为了证明嫁接确实提高了网络的性能,我们计算了训练过程后的无效滤波器数目和信息增益。选择MobileNetV2作为实验对象,在CIFAR-10上进行嫁接算法训练。选择相同的无嫁接网络结构作为基线。实验结果如图6和图7所示。
从图6可以看出,在1e-3的阈值下,大约有50%的过滤器对基本网络无效或不重要,而嫁接网络只有一小部分过滤器被认为是“无效的”,这表明嫁接确实有助于网络减少无效的过滤器。从图7可以看出,嫁接训练的模型比基线包含更多的信息。通过训练多个网络进行嫁接,网络可以获得更多的信息。因此,通过以上分析,我们证实了嫁接可以提高神经网络的潜力。在补充材料中可以找到更多的分析,包括评估无效滤波器的位置、保持层一致性的必要性和自适应加权策略的效率。

BP神经网络与滤波器子带区别 基于神经网络的滤波器_权值_19

 

 

 

 

 

 

 

五。结论与讨论
本文提出了一种新的学习范式“过滤嫁接”。本文认为有效地应用滤波器嫁接算法有两个关键点:1)如何选择合适的准则来计算DNNs中滤波器的固有信息。2) 如何平衡网络间信息的协同效率。针对这两个问题,我们提出了基于熵的准则和自适应加权策略来提高网络的性能。但这不是唯一的解决办法。为了进一步改进嫁接算法,还可以发展其他的准则或方法。从启发式的角度来看,有一些未来需要考虑的问题:1)如何在大量网络的情况下提高网络的性能;2)如何在不同网络结构的多个网络上进行嫁接。