权重掩码单网络多任务:Piggyback: Adapting a Single Network to Multiple Tasks by Learning to Mask Weights

在这里插入图片描述
在这里插入图片描述

Abstract

本文提出了一种在不影响已学习任务性能的情况下,使单个固定深度神经网络适应多个任务的方法。通过建立在网络量化和修剪的思想基础上,我们学习二进制掩码,这些掩码“依附”在现有网络上,或者应用于该网络的未修改权重上,以在新任务上提供良好的性能。这些掩码是以端到端可微的方式学习的,并且每个任务的每个网络参数都会产生1位的低开销。即使底层网络是固定的,屏蔽单个权重的能力允许学习大量的滤波器。对于各种分类任务,包括从初始任务(ImageNet)进行大规模域转换的专用微调网络,以及各种网络架构,我们展示了与专用微调网络相当的性能。我们的表现不受任务排序的影响,我们不会遭遇灾难性的遗忘或任务间的竞争。

1 Introduction

在以前的工作中,为新任务或数据集训练深层网络最常用的方法是微调已建立的预训练模型,例如在ImageNet分类上训练的vgg-16[1]。微调的一个主要缺点是灾难性遗忘[3]的现象,即随着新任务的学习,旧任务的性能显著下降,需要为每个任务或数据集存储专门的模型。为了实现持续学习[4,5],我们需要更好的方法来增强现有网络的能力,同时避免灾难性遗忘和要求尽可能少的附加参数。
已有的避免灾难性遗忘的方法,如无遗忘学习法(LwF)[6]和弹性权值合并(EWC)[4],在修改网络权值的同时,通过代理损失和正则化项来保持对旧任务的性能。最近的另一项工作PackNet[7]采用了一种不同的方法,迭代地修剪不重要的权重,并对它们进行微调,以学习新的任务。作为修剪和权重修改的结果,PackNet生成了一个二进制参数使用掩码。我们质疑网络的权重是否必须改变才能学习新的任务,或者我们是否可以有选择地屏蔽或将某些权重设置为0,同时保持其余权重不变。基于这一思想,我们提出了一种新的方法,在这种方法中,我们学会屏蔽现有骨干网的权重,以在新任务上获得良好的性能,如图1所示。以{0,1}为值的二进制掩码在优化手头任务时,通过端到端可区分的方法学习。这些掩模基本上被按元素应用于主干权重,允许我们学习大量不同的滤波器,即使在固定权重下也是如此。我们发现,一个初始化良好的骨干网络对于良好的性能是至关重要的,流行的ImageNet预训练网络可以用于多个新任务。在为一个新任务进行训练之后,我们获得了一个每个任务的二进制掩码,它只需“装载”到主干网上。

2 Related Work

虽然之前的许多著作[18,19,20]已经探索了多任务训练(在训练时所有任务的数据都是可用的),但我们认为新任务顺序可用的设置是一个更现实、更具挑战性的场景。之前在该设置下的工作基于Learning without forget (LwF)[5,6,21]和Elastic Weight Consolidation (EWC)[4,22]。
LwF在新任务训练中使用对新数据的初始网络响应作为正则化目标,而EWC则对权重的变化施加平滑惩罚。这些方法的一个问题是,无法预先确定之前任务的性能变化,因为允许对网络的所有权重进行不同程度的修改。PackNet[7]通过网络搜索来确定对之前任务的重要权重,并在完成特定任务后保持重要权重不变,从而避免了这个问题。附加信息存储在网络的每个权重参数中,以指示使用它的任务。然而,对于这些方法中的每一种,随着向网络中添加任务的数量的增加,性能将下降。在LwF的情况下,新任务的较大域转移会导致先前任务性能的显著下降[6]。对于PackNet,由于缺少可用的可用参数,任务的性能会随着以后添加到网络中而下降,并且由于网络的固定大小,最终可以添加的任务总数受到限制。
我们提出的方法不改变初始骨干网的权值,并且每个任务学习不同的掩码。因此,它与任务分配无关,并且任务的添加不会影响任何其他任务的性能。此外,通过学习一种新的掩模,一个骨干网上可以承载无限数量的任务。PackNet中的参数使用掩码是网络修剪的副产品[23],但我们根据手头的任务学习合适的掩码。这种掩蔽的想法与PathNet[24]有关,PathNet利用进化策略学习神经元的选择性路由。我们通过一个端到端的可微方法来实现模拟行为,这在理论上是没有要求的。
对每个任务的单独掩码的学习将多个任务的学习解耦,从而使我们不必选择诸如批混合比[20]、修剪比[7]和成本加权[6]等超参数。与我们提出的方法类似,另一组方法通过学习额外的特定于任务的参数来添加新的任务。对于一个新的任务,渐进式神经网络[25]复制了基础架构,同时增加了对现有网络层的横向连接。新添加的参数针对新任务进行了优化,同时保持旧的权重不变。此方法会导致较大的开销,因为要为添加的任务数量复制网络。剩余适配器的方法[17]是在观察到网络的卷积滤波器组线性参数化与向网络添加额外的每个任务卷积层相同的基础上发展起来的。最新的深度适应网络(DAN)[16]允许学习新的滤波器,即现有滤波器的线性组合。与这些方法类似,我们允许为每个新的任务学习新的滤波器。然而,这些新的过滤器被限制为现有过滤器的Masked版本。我们学习的二进制掩码产生每网络参数1位的开销,比之前所有的工作都要小。此外,我们发现没有必要学习特定于任务的层偏差和批处理规范化参数。我们训练二值掩体的方法是基于Courbariauxet al.[26,27]引入的从头训练二值权值神经网络的技术。作者维护了一组实值权重,它们在前向传递过程中通过二进制函数传递。在反向传递过程中,应用链式规则计算二进制权重的梯度,并使用为二进制版本计算的梯度更新实值权重。在[26]中,作者认为,即使用这种方式计算出的梯度是有噪声的,它们有效地作为一个调节器和量化误差抵消了多次迭代。包括[28,29]在内的后续工作将这一思想扩展到三值权重。与这些工作不同,我们不是从头开始训练量化网络,而是学习应用于固定、实值滤波器权重的量化掩码。密集神经网络的稀疏化工作,特别是[30],使用了屏蔽权重矩阵的思想。然而,只有他们的权重矩阵是可训练的,他们的掩模值是权重矩阵大小的固定函数,不可明确训练。相反,我们把骨干网络的权值矩阵看作一个固定的常数。

3 Approach

我们的方法背后的关键思想是学会选择性地掩盖一个基础网络的固定权重,从而提高在新任务上的表现。我们通过维护一组实值权值来实现这一点,这些实值权值通过一个确定阈值函数来获得二进制掩码,然后应用于现有的权值。通过反向传播更新实值权值,我们希望学习到适合当前任务的二进制掩码。这个过程如图1所示。通过学习不同的二进制值{0,1}掩码pertask,这些掩码按元素应用于网络参数,我们可以以最小的开销重用相同的底层基础网络执行多个任务。尽管我们不修改网络的权值,但通过掩蔽可以得到大量不同的滤波器。实际上,我们从一个网络开始,例如VGG-16或ResNet-50,作为我们的基础网络在ImageNet分类任务上进行了预先训练,称为BackboneNetwork,并将区域值掩码变量与所有卷积层和完全连接层的每个权重参数相关联。通过结合网络二值化[26,27]和剪枝[30]中使用的技术,我们训练这些掩码变量以端到端的方式学习任务,如下所述。骨干网初始化的选择是获得良好性能的关键,并在第节中进一步分析
在这里插入图片描述
在这里插入图片描述
在为给定任务训练掩码之后,我们不再需要实际值任务权重。它们被丢弃,只存储与主干网层相关联的阈值掩码。

预训练的权值的大小在网络的各个层中都是不同的,因此,掩模梯度在不同的层中也会有不同的大小。这种关系要求我们注意初始化和训练mask权重 m r m^r 的方式。
在这里插入图片描述
第二种better。
随机初始化实值掩码的权值,使得阈值化的二进制掩码有相等的0和1,并不能取得很好的性能。确保所有阈值掩码值都为1,可以提供与基线方法相同的网络初始化。我们也尝试用一个带有两个截止阈值的方程4的修正版本来学习三元掩模{-1,0,1},但是没有得到与用二元掩模得到的结果有显著不同的结果。(三值意义不大)

4 Experiments and Results

此外,我们还包括了另外两个从ImageNe的自然图像中提取的具有重大领域转移的数据集,WikiArt Artists分类数据集,从WikiArt数据集[11]和草图分类数据集[12]创建。
在这里插入图片描述
在这里插入图片描述

5 Analysis

在跨网络架构中,我们观察到基于任务难度的类似稀疏模式。所得到的稀疏度也与用于二值化的实值掩模初始化和阈值大小有关(见公式4),阈值越大稀疏度越大。表6报告了总体稀疏性,或者在二进制搭载掩码中设置为0的掩码值的数目,这些掩码值是为数据集和网络结构的相应选择而学习的。
在这里插入图片描述
最简单的Flowers数据集需要最少的更改,稀疏度为4.51%,而较难的WikiArt数据集导致vgg16网络掩码的稀疏度为34.14%。在跨网络架构中,我们观察到基于任务难度的类似稀疏模式。所得到的稀疏度也与用于二值化的实值掩模初始化和阈值大小有关(见公式4),阈值越大稀疏度越大。
在这里插入图片描述
在这里插入图片描述
图3显示了ImageNet预先训练的VGG-16网络的每层稀疏度,对于考虑的三个数据集。虽然每个数据集捕获的稀疏总量不同,但我们观察到跨层稀疏的一致模式。一般来说,改变的次数随着网络层的深度而增加。

5.3 Handling large input domain shifts

我们怀疑,在训练搭载掩码时保持batchnorm参数不变可能是性能差距的一个原因,因为域偏移可能导致理想批处理范数参数值与从ImageNet继承的参数值之间存在更大的差异,其影响通过大量层级联。
因此,特定于任务的batchnorm参数有助于提高性能,同时导致两个网络的存储开销略微增加∼1 MB
在这里插入图片描述

7 Conclusions

骨干网络和已学掩码的可重用性应该有助于简化和扩展对大量潜在用户和设备的新任务的学习。方法的一个缺点是,添加的任务不能相互受益。除了解决这个问题之外,未来工作的另一个有趣的领域是对任务的扩展,比如需要专门Layer的对象检测,以及对现有层进行更大容量的扩展。

猜你喜欢

转载自blog.csdn.net/g534441921/article/details/107578665
今日推荐