已弃坑,希望以前翻译的论文对感兴趣的人们有所帮助。

机翻+自己手动改一些内容。

Learning without Forgetting

摘要

在构建统一视觉系统或逐渐向系统添加新功能时,通常的假设是始终可以获得所有任务的培训数据。但是,随着任务数量的增加,对这些数据的存储和再培训变得不可行。在我们向卷积神经网络(CNN)添加新功能时出现了一个新问题,但其现有功能的训练数据不可用。我们提出了我们的学习无遗忘方法,该方法仅使用新的任务数据来训练网络,同时保留原始功能。与通常使用的特征提取和微调自适应技术相比,我们的方法具有更好的性能,并且与使用我们假定不可用的原始任务数据的多任务学习类似。更令人惊讶的观察是,LWF可能能够用取代新旧任务数据集上的微调,以提高新的任务性能。

Introduction

例如,可以使用一组默认对象识别功能将机器人交付给某人的房屋,但是需要添加新的特定于站点的对象模型。 或者为了施工安全,系统可以识别工人是否穿着安全背心或安全帽,但是管理者可能希望增加检测不合适的鞋类的能力。 理想情况下,可以在分享旧的参数时学习新任务,而不会遭受灾难遗忘[1],[2](降低旧任务的性能)或访问旧的训练数据。 遗留数据可能是未记录的,专有的,或者在训练新任务时使用起来太麻烦。 这个问题在精神上与转移,多任务和终身学习类似。

我们的目标是利用卷积神经网络(CNN)分类器,针对各种图像分类问题制定一种简单但有效的策略。在我们的设置中,CNN具有一组共享参数θs,(例如,AlexNet的五个卷积层和两个完全连接的层)[3]架构),先前学习的任务的任务特定参数θo。(例如,ImageNet的输出层)[4]分类和相应的权重),以及用于新任务的随机初始化的任务特定参数θn。(例如,场景分类器)。将θo和θn视为对由θs参数化的特征进行操作的分类器是有用的。目前,有三种常见的方法(图1,2)学习θo,同时受益于先前学习的θs,:

·特征提取(例如,Donahue等人[2014]):θs和θo保持不变,而某些层的输出作为训练θn这个新任务的特征。

·微调(例如,Dauphin等人[2012]):(θs和θn针对新任务进行优化和更新,同时θo保持固定。为了防止θs的大改变,通常应用低学习率。此外,出于类似的目的,可以为每个新任务复制和微调网络,从而为N个任务分配N个网络。另一种变化是微调θs的部分,例如顶层。这可以看作是微调和特征提取之间的折衷。
·联合训练(例如,Caruana[1997]):所有参数θs,θo,θn在所有任务中联合优化。这需要存储所有任务的所有训练数据。多任务学习(MTL)通常采用这种方法。

这些策略中的每一个都有一个主要缺点。特征提取通常在新任务上表现不佳,因为共享参数无法表示对新任务具有辨别力的某些信息。微调会降低先前学习的任务的性能,因为共享参数在没有针对原始任务特定预测参数的新指导的情况下发生变化。每个任务的复制和微调都会导致在添加新任务时线性增加测试时间,而不是共享共享参数的计算。正如我们在实验中所示,微调FC仍然会降低新任务的性能。随着更多任务被学习,联合训练在训练中变得越来越麻烦,并且如果先前学习的任务的训练数据不可用则不可能。

除了这些常用的方法,方法[8],[9]已经出现,可以通过调整共享参数来不断添加新的预测任务,而无需访问先前学习的任务的训练数据。(见章节2)

在本文中,我们扩展了我们以前的工作[10],学习没有遗忘(LwF)。仅使用新任务的示例,我们优化新任务的高精度和保留原始网络对现有任务的响应。我们的方法类似于联合训练,除了我们的方法不需要旧任务的图像和标签。显然,如果保留网络使得θo。在所有相关图像上产生完全相同的输出,则旧的任务准确性将是与原始网络相同。在实践中,新任务的图像可能会对原始任务域提供不良的采样,但我们的实验表明,保留这些示例的输出仍然是保持旧任务性能的有效策略,而且作为一个正则化器来提高新任务的性能也有意想不到的好处。我们的学习无遗忘方法有几个优点:

  1. 分类性能:lwf优于特征提取,更令人惊讶的是,在新任务上进行微调,而在旧任务上使用微调参数θs则有很大的优势。我们的方法在实验中的表现也比最近的替代方法要好[8],[9]。
  2. 计算效率:训练时间比联合训练快,只比微调慢一点,测试时间比使用多个微调网络完成不同任务时更快。
  3. 部署简单:一旦学习了任务,就不需要保留或重新应用培训数据以保持适应网络中的性能。
    与我们以前的工作相比[10],我们进行更广泛的实验。我与其他方法进行比较,微调FC,一种常用的基线,以及Less Wegetting Learning,这是最近提出的方法。我们尝试调整新旧任务损失之间的平衡,提供相关方法的更彻底和直观的比较(图7).我们从过时的Places2切换到较新的Places365标准数据集。我们执行更严格,更仔细的超参数选择过程,这略微改变了我们的结果。我们还包括对我们方法的更详细说明。最后,我们在附录A中进行了视频对象跟踪应用的实验。

2相关工作

多任务学习,转移学习和相关方法历史悠久。简而言之,我们的学习无遗忘方法可以被视为蒸馏网络[11]和微调[6]的组合.微调使用来自在数据集丰富问题上训练好的模型在新的任务上使用较小的学习率来找到一个局部最优,蒸馏网络的想法是在更简单的网络中学习参数,这些参数产生与原始训练集上的更复杂的网络集合或大的未标记数据集相同的输出。我们的方法不同之处在于我们解决了一组有效的参数很好地利用相同的数据监督新任务的新旧任务,并为旧任务提供无监督的输出指导。

2.1比较方法

特征提取[5],[12]使用预先训练的深度CNN来计算图像的特征。 提取的特征是一层(通常是最后一个隐藏层)的激活或给定图像的多个层。经过这些功能训练的分类器可以获得有竞争力的结果,有时甚至超越人类设计的功能[5].深度学习[13]展示应如何选择超参数(例如原始网络结构)以获得更好的性能。特征提取不会修改原始网络,并允许新任务受益于从先前任务中学习的复杂功能。但是,这些功能并不专门用于新任务,通常可以通过微调来改进。

微调[6] 修改现有CNN的参数以训练新任务。对于新任务,输出层使用随机初始化权重进行扩展,并使用较小的学习速率从其原始值调整所有参数以最小化新任务的损失。有时,网络的一部分被冻结(例如卷积层)以防止过度拟合。使用适当的超参数进行训练,得到的模型通常优于特征提取[6],[13]或从随机初始化的网络中学习的方法[14],[15].微调适应共享参数θs,使其对新任务更具辨别力,低学习率是一种间接机制,可以保留在原有任务中学习到的一些表示结构。我们的方法提供了一种更直接的方法来保存对原始任务很重要的表示,相对于大多数实验中的微调,改进了原始任务和新任务的性能。

多任务学习(如[7])旨在通过结合所有任务的共同知识,同时改进所有任务。每个任务为共享或约束的参数提供额外的训练数据,作为其他任务的正规化形式[16]。对于神经网络,Caruana[7]对多任务学习进行了详细的研究。通常,网络的底层是共享的,而顶层是特定于任务的。多任务学习需要所有任务的数据,而我们的方法只需要新任务的数据。

向每个网络层添加新节点是一种在学习新的判别特征的同时保留原始网络参数的方法。例如,Terekhov等人。[17]提出用于全连接神经网络的深块模块化神经网络,以及鲁苏等。[18]提出用于强化学习的渐进神经网络。原始网络的参数是不受影响的,新添加的节点完全连接到它们下面的层。这些方法的缺点是大幅增加了网络中的参数数量,如果没有足够的培训数据来学习新参数,则可能无法进行微调和功能扩展,因为它们需要从零开始培训大量参数。我们尝试扩展原始网络的完全连接层,但发现扩展并不能提供对原始方法的改进。

2.2主题相关的方法

我们的工作还涉及在网络之间传递知识的方法。Hinton等人。[11]提出知识蒸馏,知识从大型网络或网络组件转移到较小的网络,以实现高效部署。使用修改的交叉熵损失训练较小的网络(在第2节中进一步描述)。3)鼓励原始网络和新网络的大小响应相似。罗梅罗等人。[19]在此工作的基础上,通过在中间层上应用额外的指导来转移到更深的网络。陈等人。[20]提出了Net2Net方法,该方法可以立即生成更深,更宽的网络,该网络在功能上与现有网络等效。该技术可以快速初始化网络,以实现更快的超参数探索。这些方法旨在生成一个与原始网络近似的不同结构的网络,而我们的目标是为原始网络结构(θs,θo)找到新的参数,这些参数在为新任务调整共享参数θs时近似原始输出。

特征提取和微调是域适应(当新旧任务相同时)或转移学习(不同任务)的特殊cases。这些与多任务学习的不同之处在于不同时优化任务。根据Pan等人的调查,转移学习使用来自一项任务的知识来帮助另一项任务。[21].Long等人的Deep Adaption Network。[22]匹配RKHS嵌入源和目标任务的深度表示,以减少域偏差。另一个类似的领域适应方法是Tzeng等人[23],它鼓励共享深度表示在不同域之间无法区分。这种方法也使用知识蒸馏,但帮助训练新域而不是保留日任务。域适应和转移学习要求两个任务域至少存在未标记的数据。相反,我们感兴趣的是当原始任务(即源域)的训练数据不可用时。

随着时间的推移整合知识的方法,例如Lifelong学习[24]永远不会结束学习[25],也有关系。终身学习侧重于灵活地添加新任务,同时在任务之间传递知识。Never Ending Learning专注于构建多元化知识和经验(例如每天阅读网页)。尽管与我们的工作有关,但这些方法没有提供在没有原始训练数据的情况下保持现有任务的性能的方法。Ruvolo等人。[26]描述了一种有效地将新任务添加到多任务系统的方法,在仅使用新任务数据的同时共同训练所有任务。然而,该方法假设所有分类器和回归模型的权重可以线性地分解为一组基础。与我们的方法相比,该算法仅适用于工程特征的逻辑或线性回归,并且这些特征不能特定于任务,例如通过微调。

Less Forgetting Learning[9]也是一种类似的方法,它通过阻止共享表示发生更改来保留旧的任务性能。 该方法认为,特定于任务的决策边界不应改变,并保持旧任务的最终层不变,而我们的方法则不鼓励旧任务的输出发生变化,并共同优化共享表示和最终层。 我们的经验表明,在新任务中,我们的方法优于Less Forgetting Learning.

2.3 Concurrently developed methods

与我们以前的工作同时,我们提出了两种方法,可以在不使用以前任务的数据的情况下连续地添加和集成新任务。

A-LTM[8]是独立开发的,方法几乎相同,但实验和结论却截然不同。方法的主要区别在于用于训练的权重衰减正则化和在完全微调之前使用的预热步骤。

但是,我们使用大型数据集来训练我们的初始网络工作(例如ImageNet),然后从较小的数据集(例如Pascal VOC)扩展到新任务,而A-LTM使用小型数据集来完成旧任务,使用大型数据集来完成新任务。 在A-LTM[8]中进行的实验发现,由于微调而造成的损失要比我们大得多,因此本文得出结论,维护原始任务中的数据对于保持性能是必要的。 相比之下,我们的实验表明,在执行新任务的同时,我们可以保持旧任务的良好性能,有时甚至优于对新任务的微调,而无需访问原始任务数据。 我们认为,主要的区别在于选择旧任务-新任务对,并且我们观察到,由于选择(部分到预热步骤,见表2(b)),旧任务性能从微调下降的幅度较小。 我们相信,我们的实验,从一个训练有素的网络开始,并增加任务,而培训数据较少,从实践的角度来看,是更好的动机。

Less Forgetting Learning[9]也是一个类似的方法,它通过阻止共享表示的改变来保持旧的任务性能。该方法认为特定于任务的决策边界不应改变,并保持旧任务的最终层不变,而我们的方法不鼓励旧任务输出改变,并联合优化共享表示和最终层。实验结果表明,该方法在新任务的遗忘学习方面效果较好。

3 LEARNING WITHOUT FORGETTING

假设CNN具有共享参数θs和特定于任务的参数θo(图2(a)),我们的目标是为新任务添加特定于任务的参数θn,并学习仅使用新任务的图像和标签(即,不使用现有任务的数据)在旧任务和新任务上工作良好的参数。我们的算法如图3所示,网络结构如图2(e)所示。

首先,我们记录来自原始网络的每个新任务图像上的响应y o,用于旧任务(由θs和θo定义)的输出。 我们的实验涉及分类,因此响应是每个训练图像的标签概率集。 每个新类的节点被添加到输出层,完全连接到下面的层,随机初始化权重θn。 新参数的数目等于新类的数目乘以最后一个共享层中节点的数目,通常只占参数总数的很小百分比。 在我们的实验中(第4.2),我们还比较了为新任务修改网络的其他方法。

接下来,我们训练网络,使所有任务的损失最小化,并使用随机梯度下降的正则化r。 正则化r对应于0.0005的简单重量衰减。 训练时,首先冻结θs和θo,训练θn收敛(预热步骤)。然后,我们共同训练所有权重θs、θo和θn,直到收敛(联合优化步骤)。 预热步骤大大提高了微调的旧任务性能,但对于我们的方法或比较少遗忘的学习(见表2(b))都不是那么重要。 我们仍然在LWF中采用这种技术(以及大多数比较方法),以实现轻微增强和公平比较。

为了简单起见,我们表示单例的损耗函数、输出和基态。 在训练中,对一批图像的总损失进行平均。 对于新任务,损失鼓励预测y*n与基本事实y n保持一致。 我们实验中的任务是多类分类,因此我们使用常见的多项逻辑损失:

其中,y*n是网络的Softmax输出,y n是一个热地真值标签向量。 如果有多个新任务,或者如果任务是多标签分类,我们对每个标签进行正确/错误预测,那么我们将计算新任务和标签的损失总和。

对于每个原始任务,我们希望每个图像的输出概率接近原始网络的记录输出。我们使用Hinton等人发现的知识蒸馏损失。[11]在鼓励一个网络的输出接近另一个网络的输出方面工作良好。这是一个改进的交叉熵损失,它增加了较小概率的权重:

如果有多个旧任务,或者一个旧任务是多标签分类,那么我们就取每个旧任务和标签的损失之和。Hinton et al. [11][11]建议设置t>1,这会增加较小的logit值的权重,并鼓励网络更好地编码类之间的相似性。

根据网格搜索结果,我们使用t=2,这与作者的建议一致。 在实验中,知识蒸馏损失的使用导致了一个略好但与其他合理损失非常相似的性能。 因此,限制原始任务的输出与原始网络相似是很重要的,但是相似性度量并不重要。

λo是一个损失平衡重,大多数实验设置为1。使λ变大将有利于旧任务的性能优于新任务的性能,因此通过改变λo可以得到旧任务的新任务性能线。(图7)


图7 对比较方法的新任务和旧任务性能进行可视化,有些方法具有不同的损失权重。 (a)(b):比较方法; (c)(d):比较损失。 较大的符号表示较大的λo,即对保持损失的响应的权重较大。

Relationship to joint training.与联合培训的关系。 如前所述,联合训练和我们的方法的主要区别在于对旧数据集的需求。 联合训练在训练中使用旧任务的图像和标签,而LWF不再使用它们,而是使用新的任务图像x n和记录的响应y o作为替代。 这就消除了对旧数据集的需求和存储,带来了共享θs联合优化的好处,并且节省了计算,因为对于新任务和旧任务,图像x n只需要通过共享层一次。 但是,来自这些任务的图像的分布可能非常不同,这种替换可能会降低性能。 因此,联合训练的表现可以看作是我们方法的一个上限。

效率比较。 使用神经网络最昂贵的计算部分是评估或通过共享参数θs反向传播,特别是卷积层。 对于培训,特征提取是最快的,因为只有新的任务参数被调优。 LWF比微调稍慢,因为对于旧任务,它需要通过θo进行反向传播,但只需要通过θs进行一次评估和反向传播。 联合训练最慢,因为不同的图像用于不同的任务,每个任务都需要通过共享参数进行单独的反向传播。

所有方法对测试图像的评估时间大致相同。但是,复制网络和对每个任务进行微调需要m倍的时间来评估,其中m是任务总数。

3.1 Implementation details

我们使用matconvnet[28]来训练我们的网络,使用动量为0.9的随机梯度下降和在完全连接的层中启用的退出。 原始任务的数据标准化(平均减法) 用于新任务。 调整大小遵循原网络的实现,Alexnet为256×256,最短边为256像素,长宽比保留为VGG。 我们通过在5×5网格上对具有偏移量的已调整大小的图像进行随机固定大小的裁剪,随机镜像裁剪,并向rgb值添加方差(如Alexnet[3])来随机抖动训练数据。 这种数据扩充也适用于特征提取。

培训网络时,我们遵循对现有网络进行微调的标准实践。 对于θn的随机初始化,我们使用xavier[29]初始化。 我们使用的学习率远远小于培训原始网络时的学习率(0.1~0.02倍原始率) 。 选择学习率是为了在合理的时间段内最大限度地提高新任务的绩效。 对于每个场景,除特征提取外,所有方法都共享相同的学习率,特征提取由于参数较少,使用5倍的学习率。

在对现有数据集进行验证的基础上,选择预热和联合优化两个阶段的个数。 在验证期间,我们只查看新任务的性能。 因此,我们选择的超参数更倾向于新任务。 比较的方法收敛速度相同,因此我们对每种方法使用相同数量的epoch进行公平比较; 然而,收敛速度在很大程度上取决于原始网络和任务对,我们分别对每个场景的历元数进行验证。 我们比以前的工作执行更严格的验证[10],并且对于每个场景,epoch的数量通常更长。 一个例外是ImageNet→场景,我们观察到过度拟合,必须缩短特征提取的训练时间。 在保持精度平稳的时期,我们将学习率降低了10倍。

为了进行公平比较,我们的方法(预热后)训练的中间网络作为联合训练和微调的起点,因为这可能加速训练收敛。 换句话说,对于我们的实验的每一次运行,我们首先冻结θs、θo和训练θn,并使用得到的参数初始化我们的方法、联合训练和微调。 特征提取是6个单独训练,因为与我们的方法不共享相同的网络结构。

对于特征提取基线,我们不在原始网络的最后一个隐藏层(θs的顶部)提取特征,而是冻结共享参数θs,禁用dropout层,并在隐藏层上添加一个两层网络,其中4096个节点位于隐藏层的顶部。这与在提取的特征上训练两层网络的效果相同。对于联合训练,一个任务的输出节点的损失仅应用于其自身的训练图像。为了平衡每个历代任务的损失,对相同数量的图像进行子采样,并对不同的任务进行交叉批处理,以实现梯度下降。

4 EXPERIMENTS

我们的实验旨在评估无遗忘学习(LWF)是否是在保持旧任务性能的同时学习新任务的有效方法。我们比较了特征提取、微调和微调fc的常用方法,还比较了遗忘学习(lfl)[9]。这些方法利用现有网络执行新任务,而不需要原始任务的培训数据。特征提取保持了原始任务的精确性能。我们还将联合训练(有时称为多任务学习)作为可能的旧任务性能的上限进行比较,因为联合训练将图像和标签用于原始和新任务,而LWF仅将图像和标签用于新任务。

我们对不同程度的任务间相似性的图像分类问题进行了实验。对于原始(“旧”)任务,我们考虑了IMAGENET[4]的ILSVRC 2012子集和Places365标准[30]数据集。 请注意,我们之前的工作使用了places2,这是ILSVRC 2015[4]中的品尝者挑战,也是places365的早期版本,但是在我们发布之后,数据集被弃用了。Imagenet有1000个对象类别类和1000000多个培训图像。Places365有365个场景课程和~1600000张培训图片。 我们使用这些大数据集也是因为我们假设我们从一个训练有素的网络开始,这意味着一个大规模的数据集。 对于新任务,我们考虑Pascal VOC 2012图像分类[31](“VOC”)、Caltech UCSD Birds-200-2011细粒度分类[32](“CUB”)和MIT室内场景分类[33](“场景”)。 这些数据集有中等数量的图像用于培训:5717用于VOC;5994用于CUB;5360用于场景。 其中,VOC与ImageNet非常相似,因为其标签的子类别可以在ImageNet类中找到。 麻省理工学院的室内场景数据集反过来类似于places365。 CUB和这两者都不一样,因为它只包含鸟类,需要捕捉图像的细节来做出有效的预测。 在一个实验中,我们使用mnist[34]作为新任务,期望我们的方法性能不佳,因为手写字符与ImageNet类完全无关。

我们主要使用的是Alexnet[3]网络结构,因为它训练速度快,社区研究也很好[6]、[13]、[15]。我们还验证了在较小的一组实验中使用16层vggnet[27]的类似结果。对于这两种网络结构,最终层(fc8)都被视为特定于任务的,而其余层则被共享(θs),除非另有规定。在ImageNet和Places365标准上预先培训的原始网络是从公共在线资源获得的。
我们报告了VOC的中心图像裁剪平均精度,以及所有其他任务的中心图像裁剪精度。 我们报告了VOC、ImageNet和Places365的验证集以及CUB和场景数据集的测试集的准确性。 由于前三个测试集的测试性能不能经常被评估,因此我们只在一个实验中提供它们的测试集的性能。 由于CNN培训的随机性,我们进行了三次实验,并报告了平均表现。

我们的实验研究了向网络中添加单个新任务或逐个添加多个任务。 我们还研究了数据集大小和网络设计的影响。 在烧蚀研究中,我们研究了替代响应保持损失、扩展网络结构的效用以及以较低的学习速率进行微调以保持原始任务性能的方法。 请注意,结果有多种差异来源,包括随机初始化和训练、预先确定的终止(性能可能因训练1或2个附加时段而波动)等。

4.1 Main experiments

单个新任务方案。 首先,我们比较了不同任务对和不同方法学习一个新任务的结果。 表1(a),1(b)显示了我们方法的性能,以及与使用Alexnet的其他方法相比的相对性能。 我们还将图7中两个任务对的旧的新性能比较可视化。我们进行了以下观察:

table 1 单个新任务方案的性能。 对于所有表,报告了方法性能与LWF(我们的方法)之间的差异,以便于比较。 报告VOC的平均精度和所有其他的精度。在新任务中,LWF在大多数情况下都优于基线,并且与联合训练相比,联合训练使用了我们认为其他方法不可用的旧任务训练数据。在旧的任务上,我们的方法大大优于微调,并且比联合训练的性能稍差。一个例外是imagenet mnist任务,其中lwf在旧任务上执行得不好。

在新的任务中,我们的方法始终优于微调、LFL、微调fc和特征提取,除了使用微调的imagenet→mnist和places365→cub之外。 微调的增益出乎意料,表明保留旧任务的输出是一个有效的正则化器。(请参见第5节了解简要讨论)。 这一发现促使人们用LWF代替微调,将其作为使网络适应新任务的标准方法。

在旧的任务中,我们的方法比微调效果更好,但通常性能较差,如特征提取、微调fc,有时甚至还有lfl。 通过改变共享参数θs,微调显著降低了原网络训练任务的性能。 通过联合调整θs和θo,在旧任务上生成与原始网络相似的输出,大大降低了性能损失。

考虑到这两个任务,图7显示,如果调整λo,对于第一个任务对相同的旧任务性能,LWF在新任务上的性能优于LFL和微调FC,在第二个任务对上的性能与LFL相似。 实际上,微调fc在微调和特征提取之间提供了一种性能。与LFL相比,LWF提供了更改共享表示的自由,这可能提高了新任务的性能。

我们的方法类似于与Alexnet的联合训练。我们的方法在新任务上比联合训练稍有优势,但 在旧任务上表现不佳,这归因于两个任务数据集中的分布不同 。 总的来说,这些方法的表现类似,是一个积极的结果,因为我们的方法不需要访问旧的任务培训数据,而且培训速度更快。 注意,有时两个任务的性能都会随着λo太大或太小而降低。 我们怀疑过大会增加旧的任务学习率,可能使其处于次优状态,过小会减少规则化。

不同的新任务会降低旧任务的性能。 例如,cub与places365[13]的任务非常不同,将网络适配到cub会导致places365精度损失8.4%(3.8%+4.6%)用于微调,3.8%用于LWF,1.5%(3.8%-2.3%)用于联合训练。 在这种情况下,学习新的任务会导致共享参数发生很大的漂移,而LWF无法完全解释这一点,因为CUB和Places365图像的分布非常不同。 即使是联合训练也会导致旧任务的精度损失更大,因为它找不到一组对这两个任务都有效的共享参数。由于手写体对旧任务的间接监督能力较差,因此在新任务中,我们的方法没有比places365→cub和imagenet→mnist的微调更好。 旧的任务精度随着微调和LWF而大幅下降,但随着微调而下降的幅度更大。

vgg和alexnet结构都有类似的观察结果,除了联合训练优于vgg,而lwf在旧任务中的表现比以前更差。(表1(c)) 这表明,这些结果也可能适用于其他网络结构,尽管联合训练可能对具有更多代表性力量的网络有更大的益处。 在这些结果中,LFL使用随机梯度下降进行发散,因此我们调低了学习率(0.5倍),并使用了λi=0.2。

多个新任务方案。 其次,我们比较了在系统中累积添加新任务时的不同方法,模拟了一个场景,其中新的对象或场景类别逐渐添加到预测词汇表中。 我们尝试逐步将VOC任务添加到在Places365上训练的Alexnet中,并将场景任务添加到在Imagenet上训练的Alexnet中。 这些对在原始任务和新任务之间具有中等差异。我们根据它们的相似性将新的任务类分为三部分:VOC分为运输、动物和物体,场景分为大房间、中房间和小房间。 (见补充资料)场景中的图像被分成这三个子集。由于VOC是一个多标签数据集,因此不可能将图像分割为不同的类别,因此每个任务的标签都被分割,图像在所有任务之间共享。

每次添加新任务时,都会重新计算所有其他任务y o的响应,以模拟所有原始任务的数据不可用的情况。 因此,对于较旧的任务,Y O每次都会更改。 对于特性提取器和联合训练,累积训练不适用,因此我们只在添加所有任务的最后阶段报告它们的性能。 图4显示了两个数据集对的结果。 我们的发现通常与单个新任务实验一致:对于大多数新添加的任务,LWF优于微调、特征提取、LFL和微调FC。 但是,LWF仅对新添加的任务(场景第1部分除外)执行与联合训练类似的训练,并且在添加更多任务后,对旧任务执行的联合训练效果不佳

逐步向预培训网络添加新任务时,每个任务的性能。 不同的任务显示在不同的子图中。X轴标签表示每次添加到网络的新任务。 误差条显示3次运行的±2标准偏差,具有不同的θn随机初始化。 标记水平抖动以便于可视化,但线图不抖动以便于比较。 对于所有的任务,我们的方法随着时间的推移会比微调慢,并且在大多数情况下都优于特征提取。 对于places2→voc,我们的方法与联合训练的效果相当。

图5。二次抽样新任务训练集对比较方法的影响。X轴表示训练集大小正在减小。 给出了三个不同随机θn初始化和数据集子采样的实验结果。 分散点水平抖动以便于可视化,但线图不抖动以便于比较。 在新任务和旧任务上,LWF方法和比较方法的差异随着数据的减少而减小,但观察结果保持不变。尽管训练集大小发生变化,LWF仍优于微调。

数据集大小的影响。 我们检查新任务数据集的大小是否影响相对于其他方法的性能。 我们在ImageNet Alexnet中添加了cub。 在训练网络时,我们将cub数据集分为30%、10%和3%,并在整个验证集上报告结果。 请注意,对于联合训练,由于每个数据集的大小不同,因此相同数量的图像被子采样以训练两个任务(对每个epoch重新采样),这意味着一次使用的ImageNet图像数量较少。 我们的结果如图5所示。 结果表明,相同的观察结果成立。 我们的方法在这两个任务上都优于微调。尽管相关性不确定,但随着使用的数据增多,方法之间的差异往往会增加。

4.2 Design choices and alternatives


任务特定层的选择。 可以将更多的层视为特定于任务的θo、θn(见图6(a)),而不是仅将输出节点视为特定于任务的节点。 这可能为这两个任务都提供了优势,因为后面的层更倾向于特定于任务[13]。但是,这样做需要更多的存储空间,因为Alexnet中的大多数参数都位于前两个完全连接的层中。 表2(a)显示了三个任务对的比较。我们的结果并不表明拥有额外的任务特定层有任何优势。

网络扩展。 我们探索了另一种修改网络结构的方法,我们称之为“网络扩展”,它将节点添加到某些层。 这允许在使用原始网络信息的同时,在早期层中提供额外的特定于任务的信息。

图6(b)说明了这种方法。 我们将1024个节点添加到前三层的每一层。 从上一层的所有节点到当前层的新节点的权重初始化方式与net2net[20]通过复制节点扩展层的方式相同。 从上一层的新节点到当前层的原始节点的权重初始化为零。 新节点的顶层权重将随机重新初始化。 然后,我们要么冻结现有的权重并微调新任务的新权重(“网络扩展”),要么像以前一样使用学习进行培训(“网络扩展+LWF”)。 注意,两种方法都需要网络按照新任务的数量进行四次扩展。

表2(a)显示了与原始方法的比较。网络扩展本身的性能优于特征提取。 但在新任务上不如LWF。 网络扩展+LWF的性能与LWF类似,具有额外的计算成本和复杂性。

共享参数学习率低的影响。 我们研究简单地降低共享参数θs的学习速率是否能保持原来的任务性能。 结果如表2(a)所示。降低学习速度并不能阻止微调显著降低原始任务性能,也会降低新任务性能。这表明,仅仅降低共享层的学习速度对于原始任务的保存是不够的。

L2软约束权重。 对于LWF来说,一个明显的交替是保持网络参数(而不是响应)接近原始值。 我们比较了将1/2*λo w 0 2添加到微调损失的基线,其中w和w 0是所有共享参数θs及其原始值的展平向量。 我们改变系数λo并观察其对性能的影响。对于位置365→VOC,λo设置为0.15、0.5、1.5、2.5;对于ImageNet→Scene,λo设置为0.005、0.015、0.05、0.15、0.25。

图7。对比较方法的新任务和旧任务性能进行可视化,有些方法具有不同的损失权重。 (a)(b):比较方法;(c)(d):比较损失。 较大的符号表示较大的λo,即对保持损失的响应的权重较大。

如图7所示,我们的方法优于此基线,它在特征提取(无参数变化)和微调(自由参数变化)之间产生结果。 我们认为,通过调整输出,我们的方法比调整单个参数更好地保持旧的任务性能,因为许多小的参数更改可能导致输出发生较大的更改。

讨论

我们解决了将视觉系统适应新任务同时保留原始任务的性能而无需访问原始任务的训练数据的问题。我们提出了卷积神经网络的学习无遗忘方法,可以看作是知识蒸馏和微调的混合,学习参数可以区分新任务,同时保留训练数据上原始任务的输出。我们展示了我们的方法在许多分类任务中的有效性。

作为另一个用例示例,我们在附录中的跟踪应用中使用LwF在附录A.我们建立在MD-Net上[35],它将跟踪视为模板分类任务。从训练视频转移的分类器在线微调以将区域分类为对象或背景。我们建议用学习而不忘记取代微调步骤。我们将细节和实施留给附录。我们通过应用LwF观察到一些改进,但差异没有统计学意义。

我们的工作对两种用途有影响。首先,如果我们想要在现有网络上扩展可能预测的集合,我们的方法与联合培训的表现类似,但是训练更快,并且不需要访问先前任务的训练数据。其次,如果我们只关心新任务的性能,我们的方法通常优于当前标准的微调实践。微调方法使用较低的学习速率,希望参数将在不太远离原始值的“良好”局部最小值中稳定。保留旧任务的输出是保留为先前任务学习的重要共享结构的更直接和可解释的方式。我们看到了未来工作的几个方向。我们已经证明了LF在图像分类方面的有效性和一个跟踪实验,但是想进一步试验语义分割,检测,和计算机视觉之外的问题。另外,可以探索该方法的变体,例如维护一组未标记的图像以用作先前学习的任务的代表性示例。从理论上讲,基于保留从不同分布中抽取的样本的输出来约束旧任务性能将是有趣的。更一般地,需要适合于跨越不同任务的在线学习的方法,尤其是当类具有大尾分布时。

Learning without Forgetting 翻译相关推荐

  1. 【论文翻译】PLOP: Learning without Forgetting for Continual Semantic Segmentation

    论文地址:http://​https://arxiv.org/abs/2011.11390​ 代码地址:GitHub - arthurdouillard/CVPR2021_PLOP: Official ...

  2. [论文翻译] Learning Without Forgetting

    https://link.springer.com/chapter/10.1007/978-3-319-46493-0_37 Learning Without Forgetting Abstract ...

  3. 《Learning without Forgetting》 论文阅读笔记

    文章目录 1. 引言 2. 相关工作 2.1 方法对比 2.2 局部相关方法 2.3 同时期的方法 3. 不遗忘学习 原文链接: Learning without Forgetting 1. 引言 在 ...

  4. Learning Without Forgetting的pytorch实现

    最近看了关于Zhizhong Li, Derek Hoiem的Learning without Forgetting  ,在网上找了许多此方面的python代码发现运行的时候会出错.所以想着对代码做些 ...

  5. 《A Survey on Transfer Learning》中文版翻译《迁移学习研究综述》

    首先感谢(http://blog.csdn.net/magic_leg/article/details/73957331)这篇博客首次将<A Survey on Transfer Learnin ...

  6. Learning Without Forgetting 笔记及实现

    Learning Without Forgetting LWF简介 方法对比 LWF算法流程 总结 实现 LWF简介 LWF是结合知识蒸馏(KD)避免灾难性遗忘的经典持续学习方法.本质上是通过旧网络指 ...

  7. Dynamic Few-Shot Visual Learning without Forgetting

    摘要 人类视觉系统有显著的能力去毫不费力的从零样本示例中学习新颖概念.机器学习视觉系统上模仿相同的行为是一个有趣的非常具有挑战性的研究问题,这些研究问题有许多实际的优势在真实世界视觉应用上.在这篇文章 ...

  8. 小全读论文《Learning without Forgetting》TPAMI 2017

    <Learning without Forgetting> 一.介绍 这篇文章的论文版本发表于ECCV2016,会议版本发表于TPAMI2017,本文是针对会议版本进行展开. 本文关注的问 ...

  9. Learning without Forgetting 论文阅读和对应代码详解

    论文地址点这里 一. 介绍 基于终身学习思想,我们希望新任务可以分享旧任务的参数进行学习,同时不会出现灾难性遗忘.在这种场景下,需要开发一种简单有效的策略来解决各种分类任务.基于这种策略和单纯的想法, ...

最新文章

  1. invalidate()源码分析
  2. 1114. Family Property (25)
  3. I/O事件处理模型之Reactor和Proactor 【转】
  4. Spring-整合多个配置文件
  5. 关于SVM,面试官们都怎么问
  6. Spring和SpringMVC的区别
  7. Java实现qq截图工具
  8. 【实践】端智能在大众点评搜索推荐重排序的应用实践
  9. 人工智能还能登上微博热搜?热搜关键词你得看看!
  10. 小程序学习笔记(1)-基本了解
  11. js 图片浏览插件原生
  12. 电芯知识汇总(转载)
  13. 计算机一级安装的软件要钱吗,电脑没装这5个软件,基本算是废了
  14. 微信支付接口帮助文档
  15. PCB中邮票孔的用处以及常用设置
  16. PgSql时间格式转换
  17. 【技术类】ArcGIS里做影像分幅裁剪
  18. 苹果笔记本如何安装windows系统
  19. linux实训报告内容一万字,Linux实训报告.doc
  20. RHEL 8.2 镜像

热门文章

  1. 开发一款游戏平台需要多少资金成本?
  2. py文件被pycharm当成txt处理,无智能提示解决办法
  3. 上交船舶海洋与建筑工程学院考研经验
  4. php中按首字母查询城市,thinkphp 根据拼音首字母全国城市排序
  5. 2018.3.30软件网一周头条盘点(2018.3.26~2018.3.30)
  6. maxlength属性
  7. Java核心技术(一)
  8. oppo人脸识别解锁黑屏_oppok3有人脸识别吗 人脸解锁+屏下指纹解锁都没错过
  9. mysql倒序截取字符串_MySQL数据库之mysql截取字符串与reverse函数
  10. myCMS蚂蚁系统手机模板https,样式,JS加载无效