计算机视觉中的终身学习综述

2023-07-03 14:11陈一驰
计算机应用 2023年6期
关键词:梯度损失样本

陈一驰,陈 斌

(1.中国科学院 成都计算机应用研究所,成都 610041;2.中国科学院大学 计算机科学与技术学院,北京 100049;3.哈尔滨工业大学(深圳)国际人工智能研究院,广东 深圳 518055;4.哈尔滨工业大学 重庆研究院,重庆 401151)

0 引言

传统的机器学习总是被限制在一个封闭的静态环境中,通常被称为孤立学习,这种学习方式不考虑任务以外的信息,即针对一个任务,模型的训练和推理只在符合独立同分布假设的数据上进行;然而这样的学习方式是低效的,毕竟现实场景显然是一个开放的动态环境,人类在这种环境下会不断地积累知识并优化形成经验,用于帮助解决出现的问题[1]。

终身学习(LifeLong Learning,LLL)范式是通过模仿人类的学习过程抽象而来。人类拥有强大的获取、调整和迁移知识的能力,例如会骑自行车的人能够很快学会骑摩托车,在遇到新任务或者新问题时会很快产生联想并无缝地将这些知识迁移,然后根据特定的问题进行特别的学习。这样的学习方式是高效且自然的,这也是终身学习过程中最为重要的一环。

在计算机视觉领域,以深度学习为代表的学习框架尚未达到终身学习范式的要求。例如要单独训练一个过参数化的深度模型,就必须为每个任务收集大量的数据和进行繁琐的人工预处理等,这使得学习成本随着任务量大幅增加,这无疑是耗时且低效的方式,尤其是在一些对时间和性能有特殊要求的应用场景下甚至是不被允许的。深度学习独特的训练和推理模式使得深度学习模型还远远达不到人类的学习效果,例如要融入终身学习范式目前还存在着两个严峻的挑战:1)灾难性遗忘,即网络在学习了新的知识之后,可能会彻底遗忘在先前任务上学到的知识[2];2)概念漂移,即网络对属于同类但是不同分布的新数据表现效果差[3]。因此要求深度学习模型既要满足一定的可塑性以适应新数据的输入,又要具备一定的稳定性以避免在整合新知识的同时产生大量的遗忘,即摆脱稳定性-可塑性困境[4]。

此外,一个简单的思路是融合所有的数据训练一个大规模模型,即联合训练或者多任务学习,但这并不在本文定义的终身学习范式内;因为把时间线拉长,无休止地存储所有数据必然无法实现,所以需要对它进行一定程度的限制,其次每当接受新任务时就要重新训练所有的数据也不符合人类的学习方式。针对深度学习的框架,直观上联合训练或许是终身学习方法的一个上界,因为深度学习是一个优化问题,联合训练更有可能找到所有任务的全局最优解。

为满足对模型存储上的限制要求,大量的研究者从深度学习的框架入手,从多个角度探索终身学习的解决方式,并在多个应用方向展现了它的可行性。本文调研并跟踪了近年来的终身学习相关文献,相较于文献[5-6],本文增加了评估终身学习模型性能的相关指标,不仅考虑了模型在终身学习过程中识别的能力,同时考虑了存储即资源利用的能力;相较于文献[7-8],本文不仅在图像分类中详细调研了终身学习的相关应用,还介绍了终身学习在其他计算机视觉如目标检测等中的应用。终身学习不仅要解决实际应用环境中的成本问题,更有可能是现阶段弱人工智能迈向未来强人工智能的重要一步。

1 终身学习的定义

终身学习是一个连续学习的过程。假设在时间点t模型Mt已经完成了N个学习任务T1,T2,…,TN,其中每个任务都有对应的数据集D1,D2,…,DN,任务之间没有严格的约束并且此时模型积累了源自这N个任务的知识并存储于知识库中。当面对新的任务TN+1及其数据DN+1时,Mt可以利用知识库中积累的先验知识帮助学习TN+1,并且在学习TN+1后,Mt能够根据从TN+1中学到的知识进行同步更新为Mt+1以供未来继续使用,同时Mt+1能最大限度地保留在先前N个任务上的性能。由此可见,终身学习的关键是持续地学习和不断积累知识,即Mt如何利用先验知识学习TN+1和如何存储新知识演化为Mt+1。在这个定义下,还额外需增加一个存储限制,即知识库不能保留所有的训练数据,否则将会与多任务学习无异,违背终身学习的初衷。

根据定义可以看出,终身学习旨在解决3 个主要问题:1)知识保留(Knowledge Retention),当训练有素的模型学习新的任务时,很容易造成灾难性遗忘,因此需要将旧知识以某种形式进行保留,但也不能简单地将数据全部保留在内存中从而造成严重的存储负担;2)知识迁移(Knowledge Transfer),即利用旧知识解决新问题,终身学习与传统的迁移学习(Transfer Learning)最大的不同是迁移学习更加关注模型在新任务上的效果,而终身学习在此基础上还要兼顾在旧任务上的性能;3)模型扩充(Model Expansion),当使用的模型无法容纳新增的任务时就可以考虑对模型进行适当扩充,但扩充的参数必须是高效的,即要求模型扩充的速度慢于任务的增加速度。

终身学习的建模不同于传统的机器学习范式,更偏向于一个系统性方法[1],这就意味着对任务进行终身学习建模需要涉及多个组件的共同协作。如图1 所示,该系统主要由4个组件构成。

图1 LLL系统示意图Fig.1 Schematic diagram of LLL system

1)任务管理器。可以接受和管理任务流,并向学习器呈现新的任务。

2)基于知识的学习器。是终身学习的核心部件,能够从知识库中提取需要的先验知识解决新任务,并将学到的新知识传递给知识库。

3)知识库。能够向学习器传递先验知识,接受学习器学到的新知识并且同步更新。

4)输出。根据应用的实际需求决定。现阶段大多数终身学习方法主要侧重于对学习器和知识库的构造,因为知识的积累和持续的学习就发生在这两个组件中。

2 终身学习方法的分类

计算机视觉作为深度学习最为成功的应用,框架一般可以拆解为输入、优化和结构这3 个部分,用于积累和再应用的知识就可以以这3 个部分作为切入点,同时也可以组合使用它们。本文将从知识的角度对终身学习方法进行分类与归纳,如表1 所示。

表1 终身学习方法的分类Tab.1 Classification of lifelong learning methods

2.1 基于数据驱动的终身学习

深度学习模型工作的基础就是特定任务的数据,如引言所述,受到实际应用环境的存储限制,保存每个任务的数据会使得存储成本非常昂贵。现实生活中人类能使用的数据复杂多样,但是并不需要存储所有的数据,仅需简单的回忆就可以防止遗忘。

因此,在终身学习中,面对任务序列的多个数据集可以通过维护记忆容器增量式地存储重要的数据子集或者数据信息。例如,Rebuffi 等[9]首次提出了一种经典的类增量学习方法iCaRL(incremental Classifier and Representation Learning),首先设置了一个固定大小的记忆容器,然后使用记忆中的旧数据和新类的所有数据训练表示学习器和特征分类器,并更新记忆容器。不同于传统深度模型,iCaRL 没有使用端到端的全连接分类器,而使用样本最邻近类别均值(Nearest Class Mean,NCM)算法选取距离最近的类作为预测结果。Chaudhry 等[10]提出了一种基于微小情景记忆(Tiny Episodic Memories,TEM)方法,首先将当前任务中的实际小批样本与从记忆缓冲区中随机抽取的小批样本进行叠加,逐步更新网络参数,然后对比了4 种不同的记忆缓冲区更新策略,其中蓄水池采样法在多个数据集上表现突出,最后通过实验得出了对微小记忆的反复使用不会影响模型泛化性的结论。TEM 方法实际上是对iCaRL 的改进,关键在于更新知识库的采样方法,因此后续也有大量的研究着重于此,如Buzzega 等[11]研究了独立缓冲区增强、偏置控制、指数学习率衰减、平衡蓄水池采样和损失了解蓄水池采样这5 种采样技术,并在TEM 和多个基于经验回放的终身学习方法上进行了实验,具有很高的参考价值。Aljundi 等[12]将工作重点放在取样上,提出了一种最大干扰检索(Maximally Interfered Retrieval,MIR)方法,文献[12]中认为知识库中用于联合新样本训练的数据受到模型参数更新的负面影响最大,从而显著改善了常用的随机抽样和基准方法。Belouadah 等[13]提出了一种双记忆类增量学习(Incremental Learning with Dual Memory,IL2M)方法,为存储过去任务的统计信息再开拓了一块新内存,与用于重放的旧样本一起参与微调过程,有效改善了深度学习模型微调出现的样本不平衡问题。Chaudhry 等[14]提出了一种基于后见任务锚点的持续学习方法HAL(Hindsight Anchor Learning),与IL2M 方法类似,不过另一个记忆存储的是先前数据的锚点,该锚点被认为是最容易遗忘的任务信息,使用最大化遗忘损失计算,通过在训练过程中保证对锚点的准确预测有效保留过去任务的性能。Iscen 等[15]选择不再保留先前任务的图像数据子集,而是保存每类训练图像的特征描述符,并通过多层感知机实现新旧特征描述符之间的自适应,因此分类器只需要在新旧任务的特征上联合训练,显著减少了内存的开销。Zhu 等[16]用类原型代替旧类样本,通过原型增强以保留它在深度特征空间上的决策边界,并使用自监督学习方法得到泛化性和迁移能力更好的特征供新任务学习。He 等[17]探索了类不平衡学习(Class Imbalanced Learning,CImbL)与基于经验回放的类增量学习(Class Incremental Learning,CIncL)之间的关系,阐明了CImbL 中的后缩放和CIncL 中的权重对齐之间的潜在相似性。Korycki 等[18]引入了数据流挖掘技术,将用于管理数据多样性的集群驱动缓冲区与集群跟踪、切换和分割结合起来,不仅可以防止灾难遗忘,还能忘记过时信息以自动适应概念漂移。Mai 等[19]将对比学习引入使用NCM 分类器的持续学习方法中,提出了一种监督对比回放(Supervised Contrastive Replay,SCR)方法,通过对比损失可以将属于同一类的特征嵌入被紧密聚类,同时更大距离地分离不同类的特征嵌入。

除了为先前任务保留一个子集用于经验回放,也可以通过图像生成技术生成过去任务的数据供新模型学习。Shin等[20]提出了一种经典的深度生成回放(Deep Generative Replay,DGR)方法,构造一个增量式的Scholar 模块,其中的Generator 用于重构累积样本的输入空间,Solver 用于学习输入输出间的映射,Solver 在学习过程中不仅要给出新任务的标签,还用于给出生成样本的标签。Atkinson 等[21]指出先前的伪排练方法无法应对复杂的任务数据,因此考虑将生成式对抗网络(Generative Adversarial Network,GAN)用于生成旧任务数据,通过递归地使用GAN 进行联合训练,实现增量式的学习。得益于GAN 方法的迅速发展,大部分基于伪排练的终身学习方法都采用了该方法。如van de Ven 等[22]通过为生成模型GAN 设计正向和反向连接集成到主模型中,使得主模型也具有生成能力,且在保证性能的同时大幅减少了训练时间。Cong 等[23]借鉴了GAN 在风格迁移中的技巧,对深度模型的全连接层和卷积层分别运用了修正的FiLM(Feature-wise Linear Modulation)方法[24]和AdaFM(Adaptive Filter Modulation)方法[25],以此生成更加自然的样本用于记忆,其次还通过分析奇异值压缩了修正参数减少存储。Ramapuram 等[26]提出了一种基于变分自动编码(Variational Auto-Encoder,VAE)的学生-教师架构,学生模型接收来自当前任务的数据和从教师模型回放的数据进行学习,并用函数正则化保持以前的学习性能,学生和老师在任务迭代过程中交替更新。Ye 等[27]提出了一种联合VAE 和GAN 的终身学习方法,在学习过程中通过捕获任务的潜在表征信息,不仅能增强GAN 的生成能力,还有利于表征学习且能够支持包括无监督学习在内的多中下游任务。Lesort 等[28]探索了VAE、GAN、CVAE(Conditional VAE)、CGAN(Conditional GAN)、WGAN(Wasserstein GAN)和WGAN-GP[29]这6 种生成模型与持续学习方法结合的效果,并使用了FID(Fréchet Inception Distance)和IS(Inception Score)两种针对性的评估指标,发现最原始的GAN 生成回放效果最佳,但依然无法很好地解决环境复杂多变的问题。

无论是保留数据子集还是使用生成式数据,均为避免灾难性遗忘提供了良好且直接的技术解决方案,因此后续的大量研究在一定程度上沿用了该技术。

2.2 基于优化过程的终身学习

深度学习从理论上是一个优化问题,关键的两个步骤是损失函数的设计和梯度的反向传播。由于孤立学习范式下的优化过程仅适用于训练当前任务的模型,缺乏旧知识对新任务的指导,导致了灾难性的遗忘。

面对新任务和新数据时,可以通过在设计损失函数时增加约束模拟旧知识的指导,实现持续的学习。例如,Kirkpatrick 等[30]首次提 出了一 种弹性 权重巩 固(Elastic Weight Consolidation,EWC)方法,基本思想是减小先前任务中重要参数的变化程度,如图2 所示。在损失函数中也引入一个二次惩罚项并赋予重要参数更大的权重,该权重由计算费雪信息矩阵的对角线来得到,类似于人类大脑能够通过巩固突触来降低可塑性从而实现持续学习。然而EWC 方法只适用于任务差异不大的情况,并且假设参数的联合分布属于混合高斯、只使用费雪信息矩阵的对角线作为重要性估计等都是不完善的。针对EWC 方法存在的问题,大量的改进EWC 方法被提出,如Chaudhry 等[31]提出了 一种基 于KL(Kullback-Leibler)散度路径积分的EWC 推广方法RWalk(Riemannian Walk),在二次规划惩罚项中使用移动平均在线更新费雪信息矩阵,并添加改进的PI(Path Integral)因子,共同保证迭代过程中损失下降的方向有效性。Ritter 等[32]在贝叶斯的持续学习框架下,引入了克罗内克分解的在线拉普拉斯近似,以更新每个新任务的二次惩罚,从而把层内参数之间的交互作用考虑在损失函数当中。Zenke 等[33]提出了一种突触智能(Synaptic Intelligence,SI)方法;由于传统的一维突触具有显著的灾难性遗忘问题,因此将突触升至三维(Three-Dimensional,3D),通过度量突触的重要性惩罚重要参数的变化,以巩固过去任务中的重要知识。随后,Aljundi等[34]提出了一种记忆感知突触(Memory Aware Synapses,MAS)方法,该方法根据每个任务输出函数的敏感性来估算参数重要性,实质上是计算参数在数据点对应的偏导数,因此可以用无监督和在线学习的方式实现。Ren 等[35]将小样本学习引入增量学习框架,提出了一种基于元学习的注意力吸引网络,通过循环反向传播优化一个被认为是基类内存的正则化项,以减少增量小样本学习的灾难性遗忘。除了在损失函数中显式地巩固不同任务中参数的重要性,Hu 等[36]将一类学习引入持续学习,使用了一种整体正则化方法H-reg(Holistic regularization),H-reg 使学习算法不过度倾向于任何特定的特征,其次通过共享知识模糊决策边界,以减少类之间的共享知识。

图2 EWC方法优化示意图Fig.2 Schematic diagram of optimization of EWC method

约束方面也可以使用知识蒸馏的技术,用蒸馏损失来尽可能保留模型在过去任务上学到的知识。例如,Li 等[37]最早提出了一种经典的基于蒸馏损失的终身学习方法LwF(Learning without Forgetting),用当前数据在旧模型上的输出作为软标签,然后联合数据本身的分类损失和软标签提供的蒸馏损失共同微调模型,如图3 所示。Rannen 等[38]为每个任务特别地训练了一个自动编码器用于捕获重要的特征,在训练阶段联合自编码器损失、分类损失和蒸馏损失一起优化主网络,以解决由于任务差异较大时引起的误差累积问题。Dhar 等[39]提出了一种不记忆的增量学习方法LwM(Learning without Memorizing),将注意力引入蒸馏损失,使得卷积神经网络(Convolutional Neural Network,CNN)能保留定位类别首次训练时与类高度相关区域的能力。Douillard 等[40]提出了一种合并输出蒸馏方法,用蒸馏损失约束表示的演化,即不仅将蒸馏方法用于分类器,也用于特征提取阶段,是一种基于空间的蒸馏损失;同时引入了一种基于cosine 相似度的新分类器LSC(Local Similarity Classifier),使增量学习模型变得更加鲁棒。Cha 等[41]将对比学习引入持续学习过程,以在旧任务中学到更多可转移的表征,并使用自监督蒸馏来保留学习到的表示。

图3 LwF方法优化示意图Fig.3 Schematic diagram of optimization of LwF method

考虑到梯度反向传播的目的是更新和计算网络参数,使它尽可能地接近所有任务的全局最优解,因此以梯度的大小和方向作为切入点也可以实现终身学习。Lopez-Paz 等[42]提出了一种经典的基于情景记忆的梯度优化方法GEM(Gradient Episodic Memory),利用情景记忆中的数据产生的梯度来约束新任务的梯度,保证新梯度与旧梯度的夹角为锐角,从而实现最小化的负向迁移,并且可以通过二次规划的对偶问题进行求解。由于GEM 需要利用情景记忆中所有的数据,会消耗大量的计算在求解问题上,Chaudhry 等[43]在GEM 的基础上提出了A-GEM(Averaged GEM),通过随机抽取情景记忆中的样本模拟旧梯度的平均值,减少约束条件,使得计算和内存都更加高效。Guo 等[44]引入混合随机梯度MEGA(MixEd stochastic GrAdient)解决GEM 和A-GEM 的局限性,MEGA-I 的大小取决于当前梯度和情景相关梯度以及当前任务和情景记忆的损失;而MEGA-Ⅱ由当前梯度的旋转得到,大小仅取决于当前梯度。Tang 等[45]将记忆缓冲区中任务的梯度分解为共享和特定两个部分,要求新任务梯度的更新与共享部分保持一致,以促进新任务的学习;同时,要求与特定部分正交,以保证旧任务的性能,并采用了分层梯度更新策略,减轻了灾难性遗忘。Farajtabar 等[46]提出了一种正交梯度下降(Orthogonal Gradient Descent,OGD)方法,通过保持一个旧任务的梯度空间保留先前获得的知识,当对一个新任务进行训练时,新任务的梯度将会映射到该梯度空间的正交空间上,最低程度地干扰旧任务的学习。Saha 等[47]在OGD 的基础上提出了一种梯度投影记忆(Gradient Projection Memory,GPM)方法,将梯度空间进一步分解为核梯度空间(Core Gradient Space,CGS)和残差 梯度空 间(Residual Gradient Space,RGS),同时有效存储CGS 的权值,新任务的梯度更新被要求在CGS 的正交空间中。除了梯度,也可以针对参数的更新过程,即以学习率作为方向,实现持续的学习,如Ebrahimi 等[48]提出了一种基于不确定性引导的连续贝叶斯神经网络,对网络权重的概率分布定义了一种不确定性,网络的学习率根据这种不确定性自适应更新,即不确定性越大的参数可以采取更大的梯度。

优化深度网络是破解终身学习困境的重要步骤,尤其是针对反向传播过程。在融入先验知识的基础上,参数如何在连续任务迭代中的寻优是研究的主要方向。

2.3 基于网络结构的终身学习

深度学习的结构设计一直是学界持续研究的方向,与传统的结构设计不同,终身学习侧重于结构在学习过程中的构造方式,为不同的任务自适应地分配不同的参数,以避免新任务的学习影响过去任务的性能。

通过固定网络结构在内部为每个任务分配参数,实现持续的学习。例如,Fernando 等[49]提出了一种经典的由神经网络组成的网络PathNet,将网络路径上的每一层模块化,通过遗传算法选择最适合的路径,在训练完一个任务后,固定该任务的路径,然后初始化其他模块,接着为新任务搜索最优路径。Rajasegaran 等[50]提出了一种动态的随机路径算法,通过重新使用以前的路径逐步选择适合新任务的最佳路径,当一个任务学完后,固定用于未来任务的参数,同时引入了一种堆叠的残差结构弥补学过的知识。Mallya 等[51]提出了一种基于模型剪枝的终身学习算法PackNet,通过模型剪枝去除对任务不重要的冗余参数,这些参数将用于训练新的任务;在测试时,通过为各个任务维护一个掩模进而选择对应的参数进行推理。Serra 等[52]提出了一种硬任务注意力机制HAT(Hard Attention to the Task),通过随机梯度下降与门控单元,为每个任务学习一个近乎二元的硬注意力掩模,并且新任务网络权重的更新会受到先前掩模的约束,以此减少灾难性遗忘。Mallya 等[53]在PackNet 的基础上提出了一种改进的二元掩模方法Piggyback,把预训练好的骨干网络权值矩阵看作一个固定的常数,通过端到端的学习一种新的掩模,让一个骨干网络可以承载无限数量的任务。Hurtado 等[54]提出了一种基于元学习的知识重用方法MARK(MetA Reusable Knowledge),在任务间维护一个共享的权重集合作为知识库,通过一组可训练的掩码器从知识库中调取适合任务的知识,之后使用元学习更新扩展该知识库。Abati 等[55]为每个卷积层添加了一个特定于任务的门控模块,根据给定的输入特征图选择合适的滤波器,其次通过使用稀疏目标保证有足够的剩余参数学习新的任务。Mazumder 等[56]提出了一种小样本终身学习方法,即新任务中带标签的数据很少,在训练过程中选择绝对值小于阈值的网络参数作为可训练参数,并结合三联体损失、正则化损失和余弦相似度损失共同优化特征提取器。

与固定结构相反的是动态结构,它的主要出发点建立在保存模型参数远比保存数据本身要节省存储空间的基础上,一个简单的解决方法是为每个任务单独地复制和微调参数,但是独立的微调无法运用到之前多个任务的知识。Rusu等[57]提出了一种经典的渐进式神经网络(Progressive Neural Network,PNN)架构,如图4 所示,每个任务的神经网络结构相同且参数不共享,当训练新任务网络时,通过横向连接数据在旧任务网络上的层级输出并通过适应模块实现多任务知识的转移;因此该方法在测试阶段需要给出任务索引,以确定使用哪个网络作为学习器。Aljundi 等[58]提出了一种带专家门控的终身学习方法Expert gate,该方法为每个任务多训练一个自动编码器提取任务特征,这个特征在训练阶段将通过专家门控单元决定使用哪一个在旧任务上训练好的网络作为预训练模型,测试阶段将用于激活最适合输入的专家模型。Yoon 等[59]提出了一种用于终身学习的动态可扩展网络(Dynamically Expandable Network,DEN)方法,通过执行选择性再训练进行在线训练,对每个新任务只使用必要数量的单元扩展网络,并通过分裂或复制单元和时间戳有效防止语义漂移,从而在学习时动态地决定网络的最佳容量。Xu等[60]为解决DEN 方法对超参数过于敏感的问题,提出了一种强化持续学习(Reinforced Continual Learning,RCL)方法,将扩展网络看作一个组合优化问题,使用强化学习中的演员评论家策略训练一个控制器,该控制器本质上是一个循环神经网络,使得新任务到来时能够自适应地确定每个任务的神经网络的最佳架构超参数。Li 等[61]提出了一种学会成长的持续学习框架,该框架由用于神经结构优化和参数微调的两个组件构成,因此将学习模型结构和参数估计两个步骤分开实现,并且将神经网络的架构搜索方法用于查询每个任务的最优网络结构。Lee 等[62]为各任务构造了一个共享的参数知识库,当新任务到来时,使用反卷积映射和张量收缩的方法从知识库中提取CNN 需要的参数,然后同步实现变换参的学习和知识库的更新,该方法在反向迁移上也取得了不错的效果。Yoon 等[63]提出了一种加性参数分解(Additive Parameter Decomposition,APD)方法,将网络的各层参数分解为任务共享和稀疏任务适应的两类,后者用于补偿前者无法解释的增量差异,并通过追溯过去的任务共享参数防止它在更新时产生过度的偏移。Singh 等[64]使用较少的空间和通道校准参数作用于第一个任务产生的激活特征图上,并且只需要训练这些校准参数就能在新任务上达到很好的迁移性能,在计算量和存储上实现了终身学习的目标。

图4 PNN架构示意图Fig.4 Schematic diagram of PNN architecture

不同于静态和动态地分配参数,Kuo 等[65]提出了一种基于高速公路连接的分类器HCNs(Highway-Connection Classifier Networks)作为全连接层的替代,在GEM、EWC 和HAT 方法中表现出了更好的性能。

基于网络结构的终身学习是模型由小到大、由稀缺到完整的过程,就像人脑在生活中不断开发并逐渐博学一样,这也是挖掘与分析“黑箱”的关键一环。

2.4 基于知识组合的终身学习

仅仅积累和学习单一形式的知识存在一定的效率局限性,因为深度学习从整体上是相互联系的架构,其次终身学习系统中的各个组件也是相互关联的,很难从单一方面实现整体的持续学习,所以在终身学习方面,知识的组合运用能一定程度地发挥更好的效果。

实际上,在前文所述的分类中,许多算法已经从实现上体现了知识组合的特征,如iCaRL 算法,在更新表征学习器的过程中加入了蒸馏损失作为一种正则进行优化,又如经典的GEM 和EWC 算法,在对应的梯度或者参数重要性计算过程中都需要使用过去任务数据的一个子集作为参照;但是这些方法侧重点各不相同,所以在分类时暂且归于单一知识当中。在组合使用上,Nguyen 等[66]提出了一种基于贝叶斯推理的变分持续学习(Variational Continual Learning,VCL)方法,融合了在线变分推理和蒙特卡洛变分推理技术,从过去任务的数据中采集一个核心集以计算模型的后验信息并与新任务的信息进行合并,成功将VCL 运用到深度学习的判别器和生成器训练上。Castro 等[67]提出了一种端到端的增量学习方法,像iCaRL 一样维护了一个固定容量的记忆库,通过羊群选择方法实时更新,将蒸馏损失和分类损失融合引入了一种新的交叉蒸馏损失训练所有的网络参数。Hou 等[68]在知识蒸馏的基础上加入了一个新的回顾模块,该模块为新任务的训练提供了一些旧任务数据,其中主网络的分类损失是由新任务的专家网络通过蒸馏而来,是对LwF 方法的一种改进。李国锋[69]在LwF 的基础上结合样本记忆方法,并引入特征提取参数稀疏化策略,减少了由数据分布差异导致的权值更新冲突,有效实现了新旧任务知识共享。Wu 等[70]使用GAN 代替iCaRL 方法中的样本库生成具有代表性的旧任务样本,在此基础上融合交叉熵损失和蒸馏损失进行训练,并引入了一个标量来解决新旧样本之间的不平衡问题。He等[71]提出了一种支持样本复制技术,利用存储在记忆库的旧样本辅助生成旧数据,然后联合包括新任务数据在内的3种数据共同进行学习。Achille 等[72]提出了一种基于共享嵌入变分自动编码器(Variational AutoEncoder,VAE)的无监督表示学习方法VASE(Variational Autoencoder with Shared Embeddings),该方法能够自动地识别数据分布的变化,并将备用的表征数据提供给新任务,通过潜在语义的共享实现各任务表示的动态增长。Ostapenko 等[73]在突出可塑性框架下提出了一种动态生成记忆(Dynamic Generative Memory,DGM)方法,该方法结合了DGR 和HAT 方法,依赖于条件对抗网络逐步地学习新任务而不需要回放过去的知识,同时确保每个任务的自由参数数量恒定以自适应地扩展网络。Yang 等[74]提出了一种增量自适应深度模型(Incremental Adaptive Deep Model,IADM),为隐藏层提供了一个额外的注意力机制实现网络的可扩展性,同时采用自适应的费雪信息矩阵解决可持续性问题。Gupta 等[75]提出了一种基于快速优化的元学习在线持续学习算法La-MAML(Look-ahead Model-Agnostic Meta Learning),利用回放缓冲区优化元目标减轻遗忘,结合对每个参数学习率的调制,使模型能够与以前有关超梯度和元下降的工作建立联系。Choi 等[76]提出了一种结合无数据生成式回放(Data-Free Generative Replay,DF-GR)和双教师信息蒸馏(Dual-Teacher Information Distillation,DT-ID)的类增量学习方法,其中生成模型由当前的模型训练得到,新任务和旧任务的训练模型同时作为教师进行知识蒸馏。

组合知识的运用往往涉及多种方法的组合,意味着目前还没有一个固定的解决范式,因此可以广泛地吸纳各种技术,如前文所提到的贝叶斯推理、元学习和GAN 等,为终身学习提供了广阔的研究空间。

3 终身学习的其他应用

终身学习不仅在解决基础问题中开阔了研究空间,也逐渐助力 于目标检测(Object Detection)[77-81]、语义分 割(Semantic Segmentation)[77-81]、图像生成[90-95]和其他[96-102]等各类计算机视觉的研究方向。

3.1 目标检测

目标检测的任务旨在探测图像中所有感兴趣的物体,具体就是要给出感兴趣目标的类别以及位置。在终身学习的范式下,要求检测器在没有以前的训练数据情况下能够不断地检测新的对象,如图5[80]所示。

图5 目标检测中的终身学习Fig.5 Lifelong learning in object detection

Shmelkov 等[77]在Fast R-CNN 框架的基础上,引入知识蒸馏方法,对每一张新任务的图像,随机选择背景分较低的ROI(Region Of Interest)计算蒸馏损失,然后联合新任务损失共同优化扩展的检测网络,有效减轻了灾难性遗忘,实质上是LwF 的延伸。Pérez-Rúa 等[78]定义了一类逐步的少样本目标检测问题,并以CentreNet 为骨架提出了ONCE(OpeN-ended Centre nEt)方法,使用元学习方法在小样本数据集上获取一个特定的编码生成器,以前馈的方式递增地检测新类。Joseph 等[79]引入了一个开放世界的目标检测问题,并以Faster R-CNN 为基础提出了一种解决方案ORE(Open World Object Detector),基于对比聚类和能量来识别学习未知类,通过保存一个类平衡的样本集合对模型进行微调来实现增量学习。Zhou 等[80]在区域建议网络和区域分类网络上同时应用知识蒸馏,以保留对先前任务的检测,同时提出了一种伪正值感知采样策略,以进一步提高蒸馏质量从而巩固记忆。Liu 等[81]使用自下而上和自上而下的注意力来重点关注空间前景区域和有用的上下文信息,并提出了一种自适应的样本抽样方法,以利用之前任务中包含更多信息和多样性的样本。

3.2 语义分割

语义分割是指将图像分成若干具有相似性质的区域的过程,本质上是像素级别的分类任务。在终身学习的范式下,要求模型能够持续学习新类别,而无需从头开始再训练。语义分割中的终身学习如图6[86]所示。

图6 语义分割中的终身学习Fig.6 Lifelong learning in semantic segmentation

Baweja 等[82]首次将EWC 方法应用在了医学图像分割上,但只在两个连续的任务上评估了该方法,相较于微调显著减少了灾难性遗忘。Özgün 等[83]提出了一种基于重要性驱动的持续学习语义分割方法,并应用在了医学图像的大脑分割数据上,该方法在MAS 的基础上将学习率作为正则化以限制模型参数的重要性。Michieli 等[84]提出了几种新的蒸馏损失函数,应用于网络的输出层和中间特征层,并冻结了网络的编码器部分以保留特征提取能力。Li 等[85]提出了一种基于双蒸馏和集成策略的持续语义分割方法,通过专家分类器和旧分类器同时蒸馏大量知识学习更新分类器,并联合过去任务数据的一部分和新任务数据一起训练集成知识。Cermelli 等[86]在经典的基于蒸馏的增量学习框架基础上,引入两个新的损失项合理解释背景类中语义分布转移的问题。Douillard 等[87]提出了一种使用局部多尺度池化蒸馏的方法,结合了基于置信度的伪标签和局部POD(Pooled Outputs Distillation)[40]两种方法,利用旧模型通过保持长程和短程的空间关系避免灾难性遗忘。Maracani 等[88]提出了一种基于回放的持续语义分割模型RECALL,第一种方法是利用GAN从过去学习步骤的类空间中采样;第二种方法依赖于网络爬虫的数据从在线数据库中检索包含旧类示例的图像。Michieli 等[89]通过原型匹配和聚类保留旧类的潜在表示,利用对比学习的稀疏性和排斥为新类腾出空间,同时解码器使用知识蒸馏保存先前的知识。

3.3 图像生成

图像生成是从现有数据集中生成新的图像,目前GAN模型由于强大的性能成为了图像生成模型的首选。在终身学习范式下,生成器能够在不使用旧数据的前提下保证所有数据的生成质量。

Seff 等[90]利用EWC 中的正则化方法增强了GAN 中生成器的损失函数,使GAN 可以对不同的条件输入集进行连续训练且不需使用先前任务的数据,从而对抗灾难性遗忘。Wu 等[91]通过修改DGR 的框架提出了具有记忆重放的GAN(Memory Replay GANs,MeRGAN)方法,将无条件GAN 替换为条件GAN,并对比了联合重放和重放对准两种训练方式。Rios 等[92]提出了一种累积闭环内存回放的GAN(Closed-loop memory GAN,CloGAN)方法,随着新任务的学习旧数据通过从当前状态下的生成器连续采样逼近,形成一个闭环训练范式,并通过构建一个小的动态内存缓冲区实现外部正则化。Zhai 等[93]提出了一种基于不同图像条件的终身GAN 方法,不同于过去的类条件生成模型,该方法在BicycleGAN[22]的基础上利用知识蒸馏技术将学习到的知识从以前的网络转移到新的网络中。Zhai 等[94]提出了一种参数有效的终身条件生成框架Piggyback GAN,通过构建一组卷积和反卷积学习当前任务,能够在较低的参数数量下产生高质量生成,对于以前的任务,通过重用卷积子集保持旧任务的生成质量。Zhai 等[95]随后提出了一种可扩展的终身条件生成模型Hyper-LifelongGAN,将所有卷积分解为动态基卷积和线性组合基卷积的权重矩阵,并在不同任务之间共享该确定性的矩阵,然后使用超网络从随机噪声中生成动态基卷积。

3.4 其他应用

终身学习除了应用在主流的图像分类、检测、分割和生成任务中,在其他计算机视觉任务上也能发挥一定的作用,它们的本质都是把特定的任务代入终身学习范式中,实现持续的学习。

Zhou 等[96]为连续地去除不同类型的降雨条纹,提出了一种基于参数重要性引导的权重修正(Parameter Importance Guided Weights Modification,PIGWM)方法,当遇到新任务时,已训练好的网络将根据它在之前的训练数据集上评估的重要性更新权重。Zhu 等[97]将基于CNN 的超像素分割重新定义为一个终身聚类任务,并提出了一种无监督方法,该方法通过轻量级特征嵌入器生成特征,并根据通道和空间上下文重新调整权值梯度适应顺序终身学习。Pu 等[98]提出了一种终身的人员重新识别方法,该方法被设置在了一个具有知识表征和知识操作的自适应知识积累框架中,通过整合塑性损失和稳定性损失实现看不见域上泛化的最优平衡。Fan等[99]提出了一个统一的小样本终身主动识别框架FLAR(Few-sample Lifelong Active Recognition),有限的样本以优先级顺序存储在代理内存中,利用知识蒸馏机制为样本复制一致的输出,并在学习新类的过程中合并旧类的分布。Li等[100]提出了一种多层弹性单元的弹性语义网络Else-Net 解决行为识别的持续学习问题,弹性单元存储了来自不同人类行为的不同知识,并使用一个开关选择最相关的学习块学习新任务,不相关的学习块将会被冻结以避免遗忘。Rostami等[101]将终身学习方法引入人脸表示攻击检测研究中,利用新的样本和存储在重放缓冲区中的样本,通过伪排练和重放缓冲区更新模型。Wang 等[102]也把终身学习中的经验重放技术应用于基于图像的相机定位任务中,提出了一种新的基于覆盖率评分的采样方法,使现有的采样策略在缓冲过程中能够适应3D 环境的数据。

4 终身学习常用评估指标

终身学习方法的评估与传统机器学习侧重点不同,不仅要专注于个别任务的准确率,而且还要从任务流的角度评估整个系统的性能表现。另外,以最终模型作整体评估往往会忽略终身学习的动态特性,无法洞悉过程的变化,因此使用阶段性的评估会更加直观和可靠。

定义Mt为已经执行 完第t个任务时的模型,at,i为Mt在第i个任务上的准确率。在阶段t,4 个常用的和需要考虑的评估指标[31,42,103]如下。

1)平均准确率。度量在阶段t该终身学习方法的整体表现:

2)向后迁移能力。度量在阶段t对先前任务的影响力:

3)向前迁移能力。度量在阶段t前各学习成果对未来任务的影响力:

其中ri为第i个任务进行随机初始化训练后的准确率。

4)平均遗忘率。度量在阶段t造成的最大遗忘程度:

以上是多数研究方案中采取的4 个评估指标,分别从性能、迁移能力和遗忘程度进行考核。实际上,对于一个终身学习系统,还需要对知识的存储进行考量。

定义存储样本的内存总量为S,Mt的模型参数内存使用量为Pt,用于存储样本子集的内存使用量为St。

5)模型存储效率。不要随着学习模型大小增长得太快:

6)样本存储效率。应该受到最后一个任务结束时存储样本占用内存的限制:

5 讨论

前文对终身学习在计算机视觉领域的应用进行了总结与归纳,本章将简单探讨现阶段终身学习方法可以发展的空间。

首先,现有方法还存在一些局限性阻碍了终身学习的发展:1)通过放宽对过去数据的存储限制使用部分进行回忆容易造成对子集的过拟合,如何使用少量的数据来唤起在旧任务上的全部性能是亟须解决的问题。2)使用生成式数据最关键的问题是永远无法得到最自然和包含完整信息的图像,而且学习模型与生成模型往往是解耦的,因此又进一步加大了信息的丢失。3)为CNN 的优化过程添加一个约束作为旧任务的指导在分布差异较大的任务间很难持续进行,而且误差的逐步积累也会增加约束的不确定性,因此需要在非平稳的任务流之间取得约束平衡。4)由于CNN 无论是动态还是静态地为任务分配网络参数都不能充分利用积累的信息,那么用新任务的知识提升过去任务的性能就更加困难,这主要是缺乏了整体上的融合与变迁。

其次,计算机视觉领域中大部分的终身学习研究是用于处理图像分类任务,这束缚了对终身学习的理解,因为在定义中并没有对任务流中的任务进行严格限制。从人类世界的角度而言,大脑是一个十分复杂的系统,能够处理各种各样的信息,在理解视觉信息的时候可能会使用到其他的信息如听觉。因此在未来的工作中应该逐渐放宽对任务的要求,让系统能够吸纳更多样的知识。另外在最近的研究中,越来越多的方法如对比学习、小样本学习、元学习和无监督学习等被引入了终身学习过程中,这是一个很好的趋势,因为人类学习的方式确实不是单一的。在多模态多方法的融合下,终会找到一个统一的有效的框架来定格终身学习范式。

最后,虽然在定义中终身学习的目标之一是保留旧任务上的性能,大多数方法也确实是在主攻灾难性遗忘问题,但实际上终身学习还需要在此基础上能够通过新任务的学习优化整个系统,即实现有效的负向迁移,这是在未来非常值得探索的一个方向,也是走向通用人工智能的必经之路。

6 结语

本文主要回顾了终身学习在图像分类任务上的基本方法,介绍了在其他计算机视觉任务上的成功应用,最后简要探讨了在未来可以进一步推动终身学习发展的方向。终身学习给予了模型在动态环境中更多更强大的学习能力,虽然目前仍处于起步阶段,但不可置疑这是人工智能发展的重要一环,无论是理论上的研究,还是工业界的落地都具有非常大的意义。

猜你喜欢
梯度损失样本
一个改进的WYL型三项共轭梯度法
胖胖损失了多少元
用样本估计总体复习点拨
一种自适应Dai-Liao共轭梯度法
一类扭积形式的梯度近Ricci孤立子
玉米抽穗前倒伏怎么办?怎么减少损失?
推动医改的“直销样本”
随机微分方程的样本Lyapunov二次型估计
村企共赢的样本
一般自由碰撞的最大动能损失