汪荣贵,汤明空,杨 娟,薛丽霞,胡 敏
(合肥工业大学计算机与信息学院,合肥 230601)
近年来,深度学习方法在图像分类[1-3]、目标检测[4-6]等计算机视觉领域具有广泛应用,而应用的重要前提是使用海量带标注样本对深度学习模型加以训练。在很多特殊的应用场景下,获取大量标注样本成本较高,因此,如何赋予模型在少量样本中具有快速学习的能力并识别新的实体成为亟待解决的问题。
人类视觉模型从少量新事物中快速抽象出具有代表性概念的能力优于深度学习模型的学习过程。对于一类新事物,人类往往仅需要通过观察便可完成学习过程,并能够对新实体进行准确判断。为赋予深度学习模型快速学习的能力,小样本学习[7-9]问题应运而生。其中新实体称为查询样本,已观察的样本称为支持样本。
小样本学习问题是一类特殊的图像分类问题,此类任务要求使用少量待测试类别的训练样本构建性能优良的分类模型,而人类视觉模型的快速学习能力可满足小样本学习任务的需求。考虑人类认识并识别一类新事物的过程,首先需观察一个或数个新事物的实体,并从中抽象出具有代表性的特征,而在遇到新的实体时,则通过对比新实体特征与脑海中各类事物特征的相近程度完成对新实体类别的判断。受此启发,小样本学习的计算机视觉模型通常建模一个用于判断样本间相似度的分类器,该类方法称为度量学习。
度量学习处理过程符合人类在解决小样本问题时的思维方式,基于这一学习方式,研究人员提出了众多具有代表性的小样本学习方法。文献[10]提出孪生网络,通过多层神经网络提取查询样本及支持样本的深层卷积特征,并以二分类网络判断两个样本是否为同一类别。该方法仅计算样本视觉特征间距离,未利用同类别样本间的共同语义信息,如对不同种类的鸟进行分类时,仅利用鸟的视觉特征进行分类是不充分的,因为鸟总体的外形是非常相似的,依靠视觉特征进行分类的方法很可能会将鸟分到错误的类别中。而网络如果可以在图像视觉特征的基础上,进一步利用样本的语义信息,即视觉特征相似的物体属于不同的类别,则可以更加准确地对物体进行分类。文献[11]提出原型网络,该方法首先学习同类支持样本之间的原型(Prototype)表示,然后判断查询样本与支持样本间的原型距离以分类该样本所属的类别,其本质上仍是通过距离度量进行样本识别。文献[12]提出关系网络,通过建模一个小型网络来计算支持集和查询集的样本特征,使用另一个简单的网络判断特征间的距离。文献[13]提出匹配网络,首先提取目标视觉特征,然后以余弦距离表征目标间的相似性。上述方法总体思想均为视觉特征的距离度量,该类方法由于仅考虑视觉相关性,缺失语义显著性特征,在背景干扰等复杂场景下存在明显弊端。
本文提出语义匹配网络的小样本学习方法,提取支持样本的多尺度深层卷积特征,通过双注意力模型匹配样本间的语义信息,使得同类间各尺度特征相近,不同类之间的各尺度特征远离,使网络可以通过学习目标类别间的可区分语义特征提升分类效果。该方法通过多层级特征匹配提取,可缓解ResNet[14]网络结构在小样本学习中的过拟合问题。
本节阐述小样本学习的问题定义,并介绍本文的语义匹配网络方法,该方法主要由特征提取网络、特征语义匹配网络及特征分类网络三部分组成。本文方法的整体流程如图1 所示,其中,EM(Embedding Moudle)为特征提取模块,SM(Semantic Moudle)为语义匹配模块。给定一组支持集图片和一张查询样本,通过HeadNet降维图像输入,根据特征提取模块提取图像的多尺度特征,通过各尺度的语义匹配网络提取语义依赖关系,其中各尺度特征和语义匹配模块均接收其上层模块特征用以特征融合。最后根据分类特征分类网络获取各尺度下的查询样本与所有支持样本的相似度,并加权得到最终分类结果,查询样本的类别与支持样本的相似度呈正相关。
图1 语义匹配网络的整体结构Fig.1 Overall structure of semantic matching network
区别于经典分类问题,小样本学习方法将训练集分为支持集Dsupport和查询集Dquery。在训练时每一轮从支持集中随机挑选出n个类别,每个类别随机挑选出k个样本组成n-way-k-shot 的支持样本Dm⁃support。
其中,i∈{1~n},yi代表类别,xik代表第i类别中的第k个样本。查询样本是从n个类别中每个类别中随机挑选出k′个与支持集不重复的样本组成Dm⁃query。
其中,i、k′和y同Dm⁃support中的i、k的意思相同,表示第i类别中的第k′个不同于Dm⁃support中的样本,最终满足Dm⁃support∩Dm⁃query=∅。小样本学习的目的就是找出查询样本的类别,使得,即n-way-k-shot小样本问题。测试阶段的模式和训练时的模式相同,是将测试集分为支持集Dsupport和查询集Dquery,不同的是测试集中的类别与训练中的类别完全不一样,所以小样本的主要问题是如何学习到相同类别样本之间存在的共性。
本文网络的整体结构如图1 所示,给定支持样本xs和查询样本xq,首先通过HeadNet 进行降维,得到样本特征x′s和x′q,然后通过EM 模块分别提取各个尺度特征,如式(3)和式(4)所示:
其中,v表示第v个尺度特征,表示HeadNet 模块。支持样本和查询样本拼接后的特征通过语义匹配SM 模块提取和匹配语义信息,如式(5)所示:
其中,gϑ表示SM 模块网络,v表示与EM 同级的SM模块,为保证SM 模块间的一致性,为与特征尺度相同的0 特征向量。支持样本与查询样本在不同尺度下的语义匹配特征通过全局池化和全连接的分类模块,得到查询样本和每个支持样本间的匹配分数,并加权得到最终相似度,如式(6)所示:
其中,c表示分类模块网络,v表示与EM 和SM 同级的分类模块,wv为不同尺度下的分数权值超参,,为最终相似度评分。
视觉识别需要丰富的特征表示,浅层特征包含图像细节纹理而深层特征包含图像抽象语义,本文采用如图2 所示的网络结构来提取特征,通过分别提取不同尺度和深度的卷积特征及特征融合获取图像的表征。该网络主要分为两个部分,即自上而下的编码网络与自下而上的解码网络。在网络结构中,每一层都与同级尺度和上下级尺度连接,由此网络的多尺度特征表示可以更充分有效地提取图像特征。
图2 特征提取网络结构Fig.2 Structure of feature extraction network
给定尺度为S×S的图片,经过HeadNet 降维后,得到尺度为S/4×S/4 的特征,将其输入至特征提取网络可以得到各尺度的输出为:
其中,v表示不同尺度的网络输出,φ表示各尺度融合后的Encode,Td表示Top-down 网络的Encode,Bu表示Bottom-up 网络的Encode,μ表示统一网络尺度的upsample 操作,x表示当前尺度的特征表示,Siamese EM 表示查询集样本输入的网络,是和特征提取网络结构相同的孪生网络。
经过特征提取网络后,可得到图像的视觉特征表示,先前基于距离度量的小样本学习方法一般直接将此视觉特征用于后续的距离计算中,并将查询样本归为距离最近的类别。该计算过程仅利用了样本的视觉特征,而忽略了样本间潜在的语义联系。本文在计算视觉特征的距离之前做了语义匹配的操作,进一步提取样本间抽象的语义联系,并利用该语义联系指导特征提取网络的工作,使其更加关注样本间的语义信息而非仅仅是图像的视觉特征,从而使得后续的分类网络可以根据样本间的语义联系更准确地分类。语义匹配的操作如图3 所示,其中⊙表示向量积运算。
图3 dual-attention 语义的匹配过程Fig.3 Matching process of dual-attention semantics
在图3 中,给定支持样本和查询样本的特征尺度为Fs·q∈ℝC×D×D,为了简化省去了Batch 尺度参数,同文献[15]相似,将特征分别经过1×1 的卷积得到QConv1×1(Fq)和KConv1×1(Fs),将QConv1×1(Fq)作为query 特征,KConv1×1(Fs)作为key 特征,计算query特征在key 特征上的attention 值:
其中,· 表示向量积,attsq的尺度为D2×D2记作,其第1 行的值计算如图4 所示,等于query 特征所有通道上第一个位置的值与key 特征所有通道上D2个位置上值的乘积。图4 中‘A1’表示‘A’(Q(Fq)T(所有通道上第一个位置的值)乘以‘1’(K(Fs)(所有通道上第一个位置的值)。Q(Fq)T·K(Fs)中的其他值具有类似的意义。将attsq所有元素经过归一化之后可以得到query 特征对key 特征上所有位置的attention 值,也可以是key 特征对query 特征上所有位置的attention 值。
图4 attsq 计算过程Fig.4 Process of attsq calculation
接着将VConv1×1(Fq)和VConv′1×1(Fs)value 特征分别和attention map 点积计算。
其中,attms的尺度为C×D2记作,其第1 行的值计算如图5 所示,其中语义信息K(Fs)]T的第一列表示查询样本q所有通道在第一位置值对支持样本s所有通道在所有位置的点积。经过图5 的运算后所得的attms表示支持样本的value 特征在第一通道上的值根据attention map 的重分配,同理attmq的值是查询样本的value 特征根据attention map 的重分配,本文通过实验发现attention map 转置后的attmq计算可以获得更好的效果,可能的原因是先前的混合支持特征和查询特征在通道上的分布操作使得获取到的attention map 是双方的共同语义信息,所以attmq的计算与attms的计算相同。重分配的结果为attention map 上值越大的部分对attms·q在相应部分的影响也越大,而attention map 是由支持样本特征Fs和查询样本特征Fq在key 特征和query 特征上计算的,所以重分配实际上是支持样本和查询样本在相同语义信息的部分做了匹配和增强。
图5 attms 计算过程Fig.5 Process of attms calculation
最后经过dual-attention 模块匹配和增强语义后的特征为:
其中,dual_att 表示dual-attention 模块,s·q表示在支持集s和查询集q下的两种情况,γ为一个可学习的参数。
图1 中的匹配分数输出为各级尺度下的支持样本和查询样本的匹配分数,该模块主要的作用有两部分:根据不同尺度的输入特征计算该级别下的匹配分数;根据训练和测试的不同,在训练时产生各级别特征尺度下的损失,在测试时对各级别的分数进行加权生成一个查询样本对支持样本的总分数。在训练时各级别的分数如式(12)所示,由于表示查询样本对支持样本的相似程度,即查询样本为该支持类别的概率,本文使用二分类交叉熵损失(bceloss)来训练整个网络模型。
本节主要通过在小样本学习数据集Omniglot 和miniImageNet 上对比本文方法与其他主流方法,如匹配网络(Matching Net)、原型网络(Prototypical Net)、相关网络(Relation Net)、元学习LSTM(Meta LSTM)[16]、未知模型元学习(MAML)[17]、图网络(Graph Neural Net)[18]、DynamicFSL[19]、AdaResNet[20]和PPA[21]等,并详细验证本文方法Bottom-up 模块和dual-att 语义匹配模块对最终结果的影响。
本文通过Adam[22]算法优化整个模型,初始学习率为0.001,1 000 个episodes 为一代,每10 代将学习率降为原来的一半,训练过程共有100 代。整个模型从零开始训练,在训练前使用xavier[23]方法进行权重的初始化配置。在训练和测试中,使用标准的数据增强方法,如随机将图片裁剪为固定尺度、随机的水平翻转以及图片像素值的归一化操作等。
Omniglot 数据集由50 个字母共计1 623 类字符组成,每类字母均为20 个样本,由不同人手写而成。该数据集是小样本学习领域早期常用的数据集,本文采用和匹配网络一样的数据集设置:将样本大小统一变为28×28,并且使用旋转90°的样本增强方法。使用1 200 类用于训练,423 类用于测试。由于数据集样本尺度问题,本文提出的网络结构需要稍微修改,将HeadNet 的输入通道、步长和padding 变为1,以适应图片的输入,为了防止过拟合,将HeadNet 和EM 的卷积层数变为1,实验结果如表1 所示,其中,FT 表示微调。
表1 Omniglot 数据集上的小样本分类准确率Table 1 Few-shot classification accuracy on Omniglot dataset %
从表1 可以看出,500 次结果的平均值在95% 置信区间的取值,本文的效果较匹配网络和原型网络都有较大提升,在大部分任务上取得了目前已知的最好效果。实验结果表明,本文语义匹配网络能够较好地提升小样本学习方法的分类准确率。
miniImageNet 数据集是在ImageNet 数据集基础上选出的,分为100 个类别,每个类别挑选600 个样本,共计由60 000 张样本组成。其中,64 类用于训练,16 类用于验证,20 类用于测试。本文在训练时采用常用的episode 中每个类别包含5 个查询样本的设置,这样对于5-way-1-shot任务共有5×5+1×5=30张样本参与训练,5-way-5-shot任务共有5×5+5×5=50 张样本参与训练。在测试时由于显存不同于其他小样本学习方法常用的每类包含15 个查询样本的设置,本文采用的每类10 张查询样本用于测试实验效果,并且使用5 次实验结果平均值作为最终结果的方法确保实验结果的准确性。
在miniImageNet 数据集上的小样本分类准确率实验结果如表2 所示。
表2 在miniImageNet 数据集上的小样本分类准确率Table 2 Few-shot classification accuracy on miniImageNet dataset %
从表2 可以看出,相较于采用浅层网络的传统特征提取和分类方法的模型,本文模型利用特征提取阶段时的语义依赖关系,在数据集上可以提升将近5 个百分点。而对于采用深层网络的模型,本文的方法在微调之后依旧有着比较优秀的结果。
为了验证本文方法各个模块对实验结果的影响,本文进行多组对比实验查看各个模块在实验时的表现。表3为不同模块对实验结果的影响,其中,训练和测试使用的实验配置与5-way-1-shot的相同,√表示使用该模块。
表3 不同模块对实验结果的影响Table 3 Affect of different modules on experimental results %
从表3可以看出,相较于Bottom-up模块,dual-att模块对效果的提升更为显著,表明了样本对之间的语义匹配的重要性,当然结合语义提取的Bottom-up 模块,模型可以更好地学习到样本间的语义依赖关系。表4 为不同阶段的输出在数据集上的结果,其实验配置都与5-way-1-shot 的相同。
表4 不同阶段输出对实验结果的影响Table 4 Affect of different stages output on experimental results %
从表4 可以看出,模型的后面阶段特征比较抽象并且更加具有区分性,但是SM4 的输出效果没有SM3 阶段的效果好,这可能是到SM4 阶段时语义匹配产生的输出对分类模块来说尺度较小,不能很好地表达特征差异性的关系,这也是本文在分类模型赋予不同阶段产生的分数对最终查询样本分数权重超参数设置的一个侧面依据。
为充分验证本文方法与样本数量的关系,本文分别在5way 中1-shot~5-shot 的条件下做了对比实验,如图6 所示,可以看出,1-shot~5-shot 的测试准确率逐步增加,符合实验预期。
图6 5-way-1-shot~5-shot 的性能对比结果Fig.6 Performance comparison results of 5-way-1-shot~5-shot
表5 为对比实验的具体数值,其中每增加一个shot 的样本数,对测试的准确率都有所提升。并且与一般的分类算法相比,本文算法不需要很多的训练样本数,仅在5 个样本数的条件下即可达到73.65%的准确率。而传统的分类算法往往需要成千上百的样本数,如ResNet 和DenseNet 等算法,在样本数低于10 个以下时则不能工作。因此,本文算法仅在少量样本数下即可较好地工作。
表5 5-way-1-shot~5-shot 的实验结果Table 5 Experimental results of 5-way-1-shot~5-shot %
Cifar100 数据集有100 个类,每个类包含600 个样本,分为500 个训练样本和100 个测试样本,其中100 个类被分成20 个大类。每个样本都带有一个fine 标签(所属的子类)和一个coarse 标签(所属的大类)。本文重新组织该数据集,从每个大类中随机挑一个类组成20 个类作为测试集,同样不重复地从大类中再各挑一个类组成20 个类作为测试集,剩下的60 类作为训练集。
与miniImageNet 实验相同,本文取5 次实验结果平均值作为最终的测试结果,如表6 所示。由表6 可知,相较于匹配网络和关系网络,在5-way-1-shot 任务上,本文准确率提高了4 个百分点,在5-way-1-shot 任务上,本文准确率提高了8 个百分点。至此,本文分别在Omniglot、miniImageNet 和Cifar100 数据集上验证了本文方法的效果,可见本文方法具有一定的泛化能力。
表6 在Cifar100 数据集上的小样本分类准确率Table 6 Few-shot sample classification accuracy on Cifar100 dataset %
本文根据文献[24]中的理论形成注意力热图,可视化查询样本对支持样本各语义依赖层级的输出在原始样本上激活部分。图7 为SM 模块在不同层级提取语义聚焦的部分,其中查询样本的类别为狮子,与图中第一个支持样本相同。
图7 各语义依赖层级在原始样本上激活部分Fig.7 Each semantic dependency level activates parts on the original sample
从图7 可以看出,查询样本对与其具有相同类别的样本可以学习到很好的语义信息,其他支持样本的语义信息查询样本则学习很差,查询样本在第二和第三支持样本学到的语义信息大多集中在草地部分,在第四支持样本学到的语义前两层集中在草地,后两层并没有很好地集中在目标物体狮子附近。因为第五支持样本与查询样本比较相似,SM 模块可以部分地学到其语义信息,但是对比第一支持样本的语义信息分布,其语义信息并没有第一支持样本语义信息全面。对比SM1~SM4 之间各层级的语义信息输出,可以看出,后面层级提取的信息更加抽象和更具有区分性,更好地贴合了目标物体区域。
本文针对小样本学习问题提出一种语义匹配网络模型。该模型通过语义提取和匹配操作在样本特征的多尺度语义上提炼出样本之间潜在的语义区别与联系,从而提升后续分类网络的准确率。实验结果表明,本文方法可以有效地归纳出样本之间相似的语义信息,并利用该语义提升网络的性能。样本间的语义联系和注意力机制常见于图像分类和文本理解任务中,但在小样本领域中却未得到足够重视。语义关联和注意力机制能够强化图像表征,在样本量较少的情况下该类特征显得尤为重要,因此下一步将继续研究语义模型和注意力方法在小样本问题中的应用。