APP下载

基于VAE的伪样本重排练实现的类增量学习

2021-08-23莫建文陈瑶嘉

计算机工程与设计 2021年8期
关键词:排练增量分类器

莫建文,陈瑶嘉

(1.桂林电子科技大学 信息与通信学院 认知无线电与信息处理省部共建教育部重点实验室, 广西 桂林 541004;2.桂林电子科技大学 信息与通信学院,广西 桂林 541004)

0 引 言

自然学习系统本质上是渐进的,新知识是随着时间的推移而不断学习的,而现有的知识是保持不变的[1]。在现实世界中,许多计算机视觉应用都需要内置的学习能力。例如,人脸识别系统应该能够在不忘记已学过的面孔的情况下添加新面孔。然而,大多数深度学习方法都遭遇了灾难性的遗忘[2],即当无法获得过去的数据时,性能会显著下降。这是完成能不断学习的人工智能体目前最迫切需要解决的问题。

伪样本重排练(pseudo-rehearsal)被提出作为一个在神经网络中进行增量学习解决灾难性遗忘的方案。当需要对网络进行新任务训练时,伪样本重排练会通过生成捕获旧任务结构的网络行为样本来保护先前的旧任务学习。这是通过随机生成输入样本并使其通过网络分配其目标输出来完成的。然后可以在学习新任务时,对这些随机生成的输入与其输出对一同进行训练。伪样本重排练限制了网络功能的更改,因此,对于以前学习的任务的输入空间,该功能将保持大致相同,而对于新任务的输入空间,该功能将进行更改。伪排练与突触可塑性假说是一致的,因为只要网络的整体功能保持一致,编码上一个任务的单个神经元的权重就可以改变。

然而,在深层学习中,纯随机生成的伪样本不太可能很好地表示训练数据。这对于图像来说尤其明显,因为生成具有均匀分布的伪图像会生成不代表自然图像的静态图像。此外,这些静态图像不能很好地表示类的分布。当这些静态图像被用于伪样本重排练时,网络对之前所学的任务几乎一无所知。

针对这个问题,本文采用变分自编码器(variational autoencoder,VAE)生成伪样本的方法来实现伪排练。VAE是一种利用无监督学习生成随机图像的神经网络模型。它能很好生成与真实图像相似的伪图像。此外,引入Large-Margin Softmax Loss(L-Softmax损失)[3]来训练分类器,它能使得分类器学习到类间距离更大,类内距离更小的特征。最后,因为采用的VAE是无监督模型,且样本的生成是随机的,随着类数目的增加,仅靠着VAE模型的随机生成很难准确把控每个旧类的样本生成数量及其质量。因此,提出一种基于类均值特征的伪样本选择策略,它基于分类器训练样本的类均值特征,使得筛选出来的伪样本更具代表性。

1 相关工作

灾难性遗忘是对基于神经网络的人工智能的一个根本性挑战。最近的文献中,改善增量学习中存在的灾难性遗忘现象的方法大致可分为4大类:正则化方法、网络扩展方法、精馏方法和重放方法。

正则化方法:近年来,将正则化函数应用到由旧任务训练的网络中学习新任务的概念受到了广泛的关注。这种方法可以解释为一个连续贝叶斯的近似。具体来说,正则化方法对权值更新施加额外的约束,以便在学习新概念的同时保留以前的记忆。受神经可塑性的启发,文献[4]提出一种记忆感知突触(memory aware synapses,MAS)的增量学习方法来减少灾难性遗忘,该方法基于神经网络主动应用的数据以无监督的方式计算神经网络参数的重要性。学习完任务后,每当样本被网络接收时,都会根据预测的输出对该参数变化的敏感程度,为网络的每个参数积累重要度。当学习新任务时,对重要参数的更改会受到处罚。文献[5]基于增量矩匹配(incremental moment matching,IMM)的方法来解决灾难性遗忘,IMM首先用正则化方法对网络进行细化,然后通过矩匹配将得到的模型与原始模型进行混合。为了使后验参数的搜索空间平滑,IMM过程中加入了各种转移学习技术,包括权值转移、新老参数的L2范数、旧参数的dropout变式等。文献[6]提出一种弹性权重巩固(elastic weight consolidation,EWC)的方法,该方法允许在新的学习过程中对网络参数进行选择性正则化,它使用Fisher信息矩阵(FIM)来判断网络中权值对执行已学习任务重要的重要性,并通过约束重要的权值来保持网络对旧任务的性能。其中Fisher信息矩阵是一个可以用来描述神经网络模型参数关于任务的信息量,即它对每个网络参数计算一个值,这个值表明了这个网络参数对任务的重要程度,值越大,越重要。

网络扩展方法:基于网络扩展的增量学习方法类似于域自适应和转移学习。域自适应将为任务获取的知识从一个数据集转移到另一个(相关)数据集。转移学习利用从一项任务中学到的知识来协助学习另一项任务。文献[7]提出一种残差适配器的方法,该方法通过在相对较小的残差网络中压缩许多可视域,并在它们之间共享大量的参数来解决灾难性遗忘问题。文献[8]提出了一种扩展的网络架构(ExpandNet)来增强CNN的增量学习能力。它一方面保留了原始网络的过滤器,另一方面又为卷积层和全连接层添加了额外的过滤器。新的体系结构不需要原始数据集的任何信息,它只使用新数据集进行训练。文献[9]提出一种增量式神经网络来支持任务序列间的转移。增量式神经网络在整个训练过程中保留了一组预训练的模型,并从中学习横向连接以提取新任务的有用特征。通过以这种方式组合先前学习的特征,增量式神经网络实现了更丰富的组合性,其中先验知识不再是瞬时的,可以在特征层次结构的每一层进行集成。

精馏方法:知识精馏[10]一开始提出的目的是为了实现知识迁移,其主要思想是将复杂网络得到的软目标作为总损失的一部分,诱导简单网络的训练,使得简单网络能达到复杂网络的性能。文献[11]提出了一种学而不忘(learning without forgetting,LWF)的方法,该方法利用蒸馏损失和标准交叉熵损失来保持旧任务的性能,在学习新任务之前,将新任务的训练数据放入旧网络中,并将输出作为伪训练数据的伪标签。虽然这种方法通过优化旧任务的伪训练数据和新任务的真实数据在某种程度上减少了灾难性遗忘,特别是在简单的场景中,旧样本和新样本来自不同的数据集,它们之间几乎没有混淆,但因其旧类的知识表示较弱,其性能远非理想。文献[12]基于文献[11]的方法,使用自动编码器而不是蒸馏损失来保留旧任务的知识,该方法还在一个限制性场景中进行了评估,其中旧网络和新网络在不同的数据集上进行训练,结果类似于文献[11]。文献[13]蒸馏损失应用到增量目标检测器的学习中,并在目标检测方面取得了较好的效果,但是这种特定体系结构不太适用于更一般的分类场景。

伪样本重排练方法:基于伪样本重排练方法的神经网络模型不再保留关键滤波器或权重,通过训练生成器模拟旧类的数据和标签来估计旧类数据的分布,如文献[14]中,通过使用递归神经网络生成代表旧类的随机图像来实现类增量学习。但生成模型要求为每个学习的类别存储每个像素的平均值和标准差,这导致模型的存储需求随所学习的类的数量而增加。文献[15]提出的深度生成重放(deep generative replay,DGR)方法对每个任务都训练一个无条件的GAN来累积生成和区分图像,由于提出的GAN是无条件的,因此DGR使用了一个额外的分类器,该分类器经过并行训练,对生成的图像进行分类并分配相应的标签;文献[16]提出一种记忆重放GAN(memory replay GANs,MeRGAN)方法通过对DGR框架进行修改,将无条件的GAN替换为ACGAN,从而消除了额外分类器的需要。文献[17]结合这两个方面提出了一种闭环记忆GAN(closed-loop memory GAN,CloGAN)方法将非常小的内存缓冲区与训练生成器结合使用,用内存缓冲区中的真实样本充当生成器的外部正则化,以降低生成器生成的图像随类增量次数增多引起的生成图像退化问题。

尽管有越来越多的解决方案,但灾难性遗忘并不是一个已经解决的问题。正则化方法在类增量类学习中表现不佳,例如EWC[6]方法,文献[17]中的实验验证了这一局限性。另一方面,网络扩展的方法虽然通常为约束的增量问题提供简洁的解决方案,但很快就会变得不可持续,因为随着参数或网络层数量的快速增加,导致大量内存占用。

2 基于VAE的伪样本重排练实现的类增量学习

本文采用变分自编码器生成伪样本的方法来实现伪样本重排练。首先在训练分类器时加入L-Softmax损失来使得各类样本通过分类器能得类间距离更大,类内距离更小的特征,这使得接下来的基于类均值特征的伪样本选择能得到更具代表性的伪样本。其次需要训练一个VAE通过生成旧类的伪样本来保留旧类在分类器上的性能。最后基于类均值特征的伪样本选择能在平衡生成的每个类的伪样本数量的前提下,基于均值特征保留更具代表性的伪样本。总体的实现流程如图1所示。

图1 类增量学习实现流程

2.1 基于L-Softmax损失的分类器

分类器基于全连接神经网络模型,该框架采用了Softmax分类方法来预测输入的类别,Softmax的定义如下

(1)

其中,φ(x)为前级输出单元的输出,表示的是将输入的样本x映射为一组D维的特征,即φ∶x→RD,i表示类别的索引,Si表示x属于类i的可能性,C表示总的类别数,对应的权值为w1,…,wC。

在神经网络中,带Softmax的交叉熵损失是最常用的监督组件,尽管它很常用而且很简单,但是它并没有明显地鼓励区别性地学习特性。本文的分类器应用了L-Softmax损失,该损失明显地促进了学习特征之间的类间的可分性和类内的紧密性。具体地,对于二分类问题,假设x是属于0类的一个样本,为了正确的分类x,原始的Softmax是使

(2)

其中,θ是特征和权值之间的夹角。而L-Softmax损失则设置了更为严格的限制,即

(3)

其中,m为一个正整数。如上述公式所示,则新的分类损失是对正确分类x的一个更严格的要求,它为类0生成一个更严格的决策边界。对于更一般的分类问题,设输入样本x的标签为y,C为总的类别数,则对标签y进行one-hot编码后,可以获得带有C维向量的软标签{y1,y2,…,yC}。则L-Softmax损失的定义如下

(4)

其中

(5)

其中,k∈[0,m-1],且k为整数,m(前面提到过)是与分类边界密切相关的正整数。当m=1时,L-Softmax等于Softmax,更大的m意味着学习的边界更大,学习目标更困难。为了方便前向和反向传播,L-Softmax损失分别将cos(θj)与cos(mθy)替换为

(6)

(7)

其中,n为整数,且2n

为了更直观显示L-Softmax与Softmax在学习特征之间的类间的可分性和类内的紧密性,分别使用L-Softmax与Softmax损失在MNIST训练集上完成训练后,在MNIST的测试集的特征可视化如图2所示。

图2 MNSIT测试集的特征可视化

从图2中可以看到,运用L-Softmax损失训练分类器能得到类间距离更大,类内距离更小的特征。

2.2 基于VAE的伪样本生成器

图3 VAE的实现过程

(8)

通过得到专属于xk的均值与方差后,就能从这个专属分布中采样Zk,即

Zk=μk+ε·σk

(9)

其中,ε为均值为0,方差为1的标准正态分布,即ε∈N(0,1)。

x′>k=ψ(Zk)

(10)

最后为VAE的损失函数,VAE有两个损失函数,一个为重构损失LR,一个为Kullback-Leibler散度(KL散度)损失LKL。其中重构损失LR是为了使解码出来的重构样本与真实样本尽可能的一致,即

LR=(xk-x′>k)2

(11)

对于KL散度,描述的是两个概率分布间的差异,因为最终得到的解码网络是要从标准正态分布N(0,1)中采样Z来解码生成伪样本,所以VAE利用KL散度来让所有通过解码器得到的分布都向N(0,1)看齐,即

(12)

为了确认VAE可以用来生成看起来与真实图像相似的伪图像,将VAE应用于MNIST数据集。图4(b)说明了所生成的图像与MNIST的真实图像(图4(a))相似,尽管在仔细检查时会发现差异,但生成的图像仍然包含网络可以学习保留的类特定特征。通过将VAE在上一轮训练类的图像上进行训练,可以将其用于生成代表上一轮类的伪图像,而无需存储实际数据集。

图4 MNIST真实图像(a)与生成图像(b)的比较

2.3 基于类均值特征的伪样本选择

步骤1 计算分类器训练样本的类均值特征Fk,即

(13)

其中,nk为k类训练样本的总数,φ(xkj)代表第j个k类训练样本在分类器输出层前一层得到的特征。

步骤2计算每个k类训练样本到其均值特征Fk的距离,并得最大距离dkmax和最小距离dkmin,即

(14)

(15)

(16)

(17)

且当

dkminj)

(18)

则令伪样本x′>j的标签yj=k,且将伪样本x′>j和标签yj放入对应的数据集,即

(19)

经过样本选择后的伪样本如图5所示,通过图5与直接用VAE生成的伪图像(图4(b))的比较,可以很明显看出经过样本选择后,不仅能平衡每个旧类的伪样本数量,且能够剔除生成效果差的,基于类均值特征保留更具代表性的伪样本。

图5 经过样本选择后的伪样本的比较

综上所述,基于VAE的伪样本重排练实现的类增量学习,不仅能使基于神经网络的分类模型克服灾难性遗忘问题,且不需要额外的内存来保留旧类的数据。此外,基于VAE的伪样本重排练不需要为每次添加新类扩展网络,且对于分类模型的单个神经元应该如何学习新类,网络也没有任何硬性约束。

3 实验结果与分析

3.1 实验数据集

实验采用MNIST与FASHION数据集,其中MNIST数据集是机器学习中用于识别手写数字的分类任务的常用基准数据集,问题的简单性使得测试精度很高。现代机器学习方法可以很容易地在MNIST上实现97%的测试精度。这种高测试精度使得机器学习算法之间的比较不是那么明显。FASHIO作为MNIST的一个更困难的替代被认为是解决这一问题的更好的选择。FASHION数据集包含从在线购物网站检索到的标记服装图像,由于图像更加多样化,使得算法区分类的问题更加困难,能更准确地对模型的表现进行反馈。在表1中总结了MNIST与FASHION数据集的统计信息。

表1 使用的数据集的统计信息

3.2 对比实验分析

在这里,以类的平均分类精度评估类增量学习,每次类增量学习都是来自整个数据集的类的一个不相交子集,MNIST与FASHION数据集每个子集有2个类,总共5个子集覆盖数据集所有的类。在MNIST与FASHION数据集中评估各种类增量学习方法,其中包括闭环记忆GAN(closed-loop memory GAN,CloGAN)、EWC与微调。CloGAN是一种将非常小的内存缓冲区与生成器结合使用的方法,该方法用内存缓冲区中的真实样本充当生成器的外部正则化,以此降低生成器生成的图像随类增量次数增多引起的生成图像退化问题。微调方法是使用随机梯度下降仅在新类的数据上直接微调现有的分类模型,这会导致分类模型完全遭受灾难性遗忘的影响。此外,在本实验中,CloGAN在MNIST与FASHION数据集上的预留图像缓冲区分为数据集训练样本数量的0.16%。各种方法的对比结果如图6所示。

图6中各个折线图的纵坐标为分类精度,横坐标为类名,通过比较各种方法的结果表明基于VAE的伪样本重排练方法比起CloGAN具有更好的分类效果,即使是不使用旧类的图像作为缓冲区,也能有效地降低灾难性的遗忘的影响。其次,从图6可以看出,随着类增量学习的进行,EWC方法的准确性迅速下降,逐渐接近微调方法,即接近完全遭受灾难性遗忘的效果,验证了EWC在类增量学习中表现不佳。

图6 各种方法在MNIST(a)与FASHION (b)数据集上的平均分类精度

表2比较了各种类增量学习方法在完成每个数据集的所有类增量训练后的最大平均分类精度。

表2 各种增量学习方法的平均分类精度

为了进一步说明基于VAE的伪样本重排练实现的类增量学习的有效性,在MNIST与FASHION数据集上进行了额外的实验,在实验中分离了算法的各个模块,其中包含:①基于均值特征的伪样本选择;②基于L-Softmax损失的分类器。创建了3种混合设置:第一种设置为基于传统VAE+one-hot标签;第二种设置为基于传统VAE+伪样本选择;第三种设置为基于CF-VAE+伪样本选择+L-Softmax。

以平均分类精度作为衡量标准,实验结果如图7所示。

图7 3种混合设置的平均分类精度

图7表明每增加一个模块,分类性能都能有所提升,即提出的基于VAE的伪样本重排练实现的类增量学习的各个模块都可以为其良好的性能做出贡献,所有这些模块结合能够获得最优的结果。

4 结束语

综上所述,实验验证了与简单的梯度下降来微调模型的微调方法、保留重要权值的EWC方法或结合生成器与图像内存缓冲区的CloGAN方法相比,本文的基于VAE的伪样本重排练方法具有主要的优势,因为它不需要为每次添加新类扩展网络,且对于分类模型的单个神经元应该如何学习新类,网络也没有任何硬性约束。并且它不仅在分类效果上更佳,更因为其完全不需要保留旧类样本数据,降低内存的占用,使其在内存资源受限的移动设备上进行类增量学习成为可能。

猜你喜欢

排练增量分类器
舞动未来
提质和增量之间的“辩证”
A quieter world during the lockdown
两个大忙人
“价增量减”型应用题点拨
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
指挥艺术指导与学生的排练教学
基于均衡增量近邻查询的位置隐私保护方法
德州仪器(TI)发布了一对32位增量-累加模数转换器(ADC):ADS1262和ADS126