基于空间注意力和类协方差度量的小样本学习①
2022-11-06李国强王天雷龚宁王俊妍
李国强 王天雷 龚宁 王俊妍
(燕山大学电气工程学院 秦皇岛071000)
0 引言
随着深度学习的发展,图像识别技术得到了飞速的进步,在大数据的驱动下,图像分类、目标检测、语义分割等领域都取得了显著的成果。当前的深度学习算法大多数基于卷积神经网络(convolutional neural networks,CNN),随着硬件设备的迭代更新,在训练量足够的前提下,CNN 具有提取特征速度快、提取特征准确等一系列优点。依靠这些优点,CNN 逐渐取代了传统图像识别中利用人工标注获取特征的方法,广泛应用于图像识别领域[1]。然而当数据量不足时,现有的基于CNN 的深度学习算法逐渐暴露出泛化能力差、过拟合严重等缺点。小样本学习(few-shot learning)旨在当训练数据量较少的情况下,利用相关算法完成计算机视觉领域的各个任务,近些年来逐渐成为计算机视觉领域的研究重点之一[2-3]。
目前处理小样本学习问题的方法大致可分为以下几种:基于元学习的小样本学习策略、基于迁移学习的小样本学习策略和基于图神经网络的小样本学习策略等[4]。其中基于元学习的小样本学习应用最为广泛,其目的是训练神经网络学会利用以往的经验,使模型学会自己学习,其显著特点为测试集(test set)的类别为训练集(train set)从未见过的新类。而基于元学习的小样本学习算法又可以分为基于优化的元学习算法、基于模型的元学习算法和基于度量学习的元学习算法。
基于度量的元学习算法思想简单易懂,同时在多个数据集上都取得了较好的效果,进而成为处理小样本学习的最主要算法之一。根据度量方式不同,基于度量的元学习分为固定距离度量以及非固定距离度量[5]。本文借鉴了基于度量的元学习算法思想,在经典的小样本学习模型的基础上,提出了基于注意力类协方差的原型网络(attention-based class covarance prototypical network,ACCPN)。首先,为增加模型的泛化能力,特征嵌入模块在IBNResnet[6]的基础上,提出了IBN-Resnet12;同时为加强局部特征,在特征提取器后引入了空间注意力模块(spatial attention model,SAM)。对于分类器部分,本文将类协方差距离作为小样本学习度量分类器中的距离度量方式。实验证明,该方法能够在不增加额外参数的前提下,提升小样本图像分类的准确率。
1 相关工作
1.1 问题描述
小样本学习是指在给定训练样本较少的前提下,完成相关的包括图像分类、语义分割、目标检测等任务,其目标是希望模型经过训练后,仅通过少量的样本就能快速学习新类。其实现过程可分为元训练阶段Dbase和元测试阶段Dnovel。区别于普通的图像识别,小样本学习以“任务”为单位,每一“任务”又包含支持集Ds和查询集Dq。其评价指标通常为C-wayN-shot,即在经过元训练阶段Dbase多个“任务”训练过后,在元测试阶段Dnovel的支持集Ds中每一个“任务”有C个类别,每个类别有N个样本[7]。小样本学习的最终目的就是在Dnovel中只通过Ds的少量样本就能识别出Dq中的样本。
1.2 小样本学习方法介绍
当前处理小样本学习多利用元学习的思想,而基于元学习的小样本学习算法又可以分为基于优化的元学习算法、基于模型的元学习算法和基于度量学习的元学习算法等。
基于优化的元学习算法的目标为寻找一个好的初始化参数,在测试阶段只需微调就能使网络在面对从未见多的新样本时能够很快寻找到最优初始值。文献[8]在2017 年提出了一种与模型无关的元学习算法(model-agnostic meta-learning,MAML)。该算法提出的模型无关性元学习算法,使用少量的梯度迭代步骤就可以学习到适用于新任务的参数,能够匹配任何使用梯度下降法训练的模型。
基于模型的元学习算法旨在学习不同模型中的通用知识,并用通用知识预测基准模型参数,并能加快训练速度。文献[9]在2017 年使用卷积神经网络构造了一种元网络(meta networks,Meta-Nets),其思想是学习一种跨任务的元级学习,利用外部记忆模块存储每个类别对应的权重信息和表征信息,利用该信息进行预测,结果表明该方法能在保证准确率的同时对新任务实现快速参数化。
基于度量的元学习算法借鉴了度量学习的思想,简单易懂,且拥有较高的准确率。2015 年Koch等人[10]针对小样本学习提出了深度卷积孪生网络,该算法训练一个孪生网络对样本进行相似性度量,即让样本对通过完全相同的网络结构,利用欧式距离对从样本中学习到的特征进行相似性度量,根据学习到的特征映射对验证集进行分类。而后Snell等人[11]提出原型网络(prototypical networks,PN),对于给定数据集,计算每一类的类平均值作为类原型,测试时,利用测试集提取的特征与各类的类原型之间的距离进行分类。Sung 等人[12]在2018 年提出了端到端的相关网络(relation network,RN),相关网络由嵌入模块和关系模块组成,嵌入模块用于提取图像特征,关系模块用于计算相关性得分,利用相关性得分进行分类。王年等人[13]在关系网络的基础上,融合inception 块和感受野块,提出了一种基于改进关系网络的小样本学习方法。文献[14]在欧氏距离的基础上借鉴了线性规划中的运输问题,提出了一种新的用于小样本学习度量分类器中的距离度量方式,计算查询集和支持集图像的各个图块之间的最佳匹配代价来表示二者之间的相似程度。
此外,近些年还出现了区别于元学习的小样本学习的方法,文献[15]提出利用自监督的方法增强小样本数据,文献[16]引用外部扩展集辅助训练。
2 模型介绍
当前基于元度量学习的小样本学习算法摒弃了传统深度学习的全连接层作为最终的分类器,而选择参数量较小且不易过拟合的距离度量方法作为小样本学习分类器。距离度量方式大致可分为基于固定距离的度量和基于非固定距离的度量。其中基于固定距离的度量多借鉴原型网络(PN)的思想,首先利用特征提取模块提取支持集Ds图像特征;而后计算每一类的类原型作为该类的类代表,具体地,对于第n类的类原型Cn可以表示为式中K表示第n类有K个样本,fθ表示特征提取器,xni表示第n个类别的第i个样本。而后对于查询集Dq的样本xi,提取其特征fθ(xi),再与每一类类原型计算距离,再根据距离利用softmax 函数完成最终的分类:
式中d(m,n)表示m和n之间的距离,Pni表示xi属于类别n的概率,C表示每个任务有C类。目前大多小样本学习算法的特征提取模块多为4 层卷积神经网络或者Resnet 的变体Resnet-12,这种简单的网络结构虽然能在少量样本的情况下较好地提取特征,但并未解决小样本学习中常见的泛化能力差等问题,且由于每一类的样本数量过少,在计算各类的类原型时得到的并不是该类真正的类原型。同时,基于度量的小样本学习大多采用简单的欧式平方距离以及余弦距离作为最终的距离度量分类器,而这两种距离度量方式忽略了样本特征维度间的相关性,在计算类间距离时默认了不同类别的协方差具有一致性。而对于小样本学习任务,同一类特征维度具有高度相关性,对特征维度相关性的建模能很大程度上提升小样本学习的准确率。
为解决上述问题,本文从特征提取器和分类器两方面对原型网络(PN)进行了改进,提出了注意力类协方差原型网络(ACCPN)。
对于特征提取器,本文提出了IBN-Resnet12 作为特征提取网络,并在IBN-Resnet12 后添加了空间注意力模块(SAM)[17],更高效提取特征的同时增加了模型的泛化能力,在样本较少的情况下,更加突出重要的特征;对于分类器,本文提出将类协方差距离作为度量分类器的距离度量方式,有效解决了PN的度量分类器中欧式距离存在的问题,其总结构图如图1 所示。对于一个小样本学习任务Γ,首先将训练集分为支持集(support set)和查询集(query set),将support set 和query set 图像输入到特征提取器中得到特征US以及Uq,利用式(1)计算support set 中每一类的类原型CK;接着将Uq与CK进行类协方差距离度量,并利用softmax 函数得到最终的分类结果。
图1 ACCPN 总体结构图
本文在小样本数据集Miniimagenet[18]和Tieredimagenet[19]上进行了实验,证明了模型整体的有效性;同时本文还做了大量消融实验,证明了各个部分的有效性。
2.1 特征提取模块
在小样本学习中,由于support set 数量极少,训练得到的模型很容易出现过拟合严重、泛化能力差、局部特征不明显等问题。针对该问题,本文改进了传统小样本学习的特征提取模块,提出了IBN-Resnet12 作为特征提取网络,增强了模型的泛化能力,同时在特征提取网络后加入了空间注意力模块(SAM),有效增强了局部特征。IBN-Resnet12 以及SAM 共同构成了本文的特征提取模块。
IBN-Resnet12 结构图如图2 所示,其设计原理是将批归一化(batch normalization,BN)[20]和实例归一化(instance normalization,IN)[21]结合,IN 和BN在本质上都是归一化的方法,IN 针对单一的图像,而BN 针对一个批次的图像。Pan 等人[6]提出IN 对图像外观变化具有不变性,BN 可以保存内容相关信息,故IN 常被用于图像风格迁移等底层视觉任务中,而BN 则常被用于目标识别、分类等高层任务中。如果将IN 和BN 结合起来,则同时提高了模型的泛化能力和学习能力。本文在浅层同时使用IN和BN,而在网络深层只使用BN,提出了IBN-Resnet12。实验证明,该网络对小样本图像分类效果有一定的提升。
图2 IBN-Resnet12
当前大多数基于度量的小样本学习在经过特征提取网络后直接将特征输入到相似性度量模块。而由于各类的样本较少,利用该方法计算得到的类原型并非该类真正的类原型。本文利用空间注意力模块(SAM)增强局部特征,对更重要的局部特征赋予更大的权重,使经过特征提取模块并计算得到的类原型更加接近真实的类原型。空间注意力模块如图3所示。
图3 空间注意力模块
空间注意力是对通道进行压缩,对于输入到SAM 的特征,首先做一个基于通道的Max pooling 和Average pooling,然后在通道维度上进行合并,再经过一个卷积降维为一个通道,最后利用Sigmoid 函数生成权重σi,j(i∈(1,h),j∈(1,w))。其过程可由式(3)表示。
其中conv 表示一层卷积神经网络,7×7 表示表示卷积核大小。
给定一张尺寸为H×W的图像A,经过2.1 小节中的IBN-Resnet12 特征提取模块,得到了大小为h×w×d的特征向量矩阵U,其中h、w表示长、宽,d表示通道数,同时还可以将U看作h×w个局部特征的和,每个局部特征包含d个单位,即每一张图像经过特征提取拥有h×w个d维的局部特征[22]。本文在IBN-Resnet12 特征提取后利用SAM 强化局部特征,经过IBN-Resnet12 模块得到的特征为U=[u1,1,u1,2,…,ui,j,…,uh,w],其中ui,j∈R1×1×c代表空间位置(i,j),i∈{1,2,…,h},j∈{1,2,…,w},而后经过由式(4)表示的SAM 过程,得到图像特征中各个局部特征的权值,最后将原特征与权值相乘,得到由SAM 强化后的图像特征USAM。
相比于只利用IBN-Resnet12 提取的特征U,USAM能有效地突出更重要的局部特征,而在计算类原型时,由于每一类的样本较少,利用USAM计算得到的类原型更接近该类的真实类原型。经实验证明,SAM 模块的添加,有效地提升了小样本图像分类的准确率。
2.2 类协方差距离度量
原型网络(PN)采用固定距离度量方式,其侧重点在于特征提取部分。在度量分类器的选择上,通过比较欧式距离和余弦距离,最终选择了欧氏距离作为度量分类器的距离度量方式。然而欧氏距离在度量特征之间的距离时,有以下缺点:(1) 欧氏距离并未考虑特征维度之间的关联性;(2) 欧氏距离默认了所有特征服从同一分布,而在小样本学习中,对分布进行建模能有效地提升模型性能。
本文提出类协方差距离度量,定义类协方差距离为基于类别的协方差距离的加权和。协方差距离是有效计算两个样本相似度的方法;对于一个均值为μ=(μ1,μ2,…,μp)T,协方差矩阵为Q的多变量x=(x1,x2,x3,…,xp)T,协方差距离如式(5)所示。
协方差距离解决了上述欧氏距离在计算小样本学习中支持集类原型和查询集特征相似度时的缺点。具体的,协方差距离在度量时通过协方差矩阵考虑到了特征维度间的关联性,且成功解决了欧氏距离对于类内样本相对于原型的分布不敏感这一缺点[23]。协方差距离和欧氏距离的比较如图4 所示。
图4 两种距离比较
对于一个小样本学习任务Γ,输入图像经过特征提取模块,得到支持集DS的特征fθ(xs) 和查询集Dq的特征fθ(xq),然后利用式(1)计算支持集各类的类原型CK,K表示第K类,则分类概率计算公式为
式中,dk表示协方差距离,其协方差矩阵为,表示特定于任务Γ和类别K的协方差矩阵。故如何计算该协方差矩阵为建模的关键,由于小样本学习中支持集的样本数量远小于特征空间维度,因此为保证可逆,使用一种正则化方法确定。
支持集图像Ds经过IBN-Resnet12 的特征提取以及SAM 增强局部特征后,得到经过特征增强的图像特征USSAM;对于第i类,利用式(1)计算该类的类原型Ci。查询集图像Dq同样经过特征提取模块以及SAM 模块得到该图像的特征UqSAM;随后将支持集得到的各类的类原型Ci与查询集得到的特征UqSAM送入到相似性度量模块,利用相似性得分,将查询集图像Dq进行分类。其流程如算法1 所示。
由算法1 可以得到ACCPN 训练的全部流程;首先划分数据。将数据集分为训练集、验证集和测试集,取训练集Dbase并将其分为T个任务,每个任务由支持集Ds和查询集Dq组成。接着将划分好的任务输入到特征提取模块中,计算支持集的类原型C。而后计算查询集Dq中各个样本与不同类别C的协方差距离d。最后利用d确定该样本的类别。利用交叉熵损失函数计算损失,经过R次迭代,得到训练好的模型FR。ACCPN 是基于PN 网络的改进,由于其加入了注意力机制,故在反向传播时需要迭代的参数除了CNN 还有SAM,使得ACCPN 在时间复杂度上略高于PN,但SAM 只包含少量卷积层,故该模型以牺牲时间复杂度来换取准确率的策略具有可行性。
3 实验
为验证上述算法的有效性,本文在小样本学习经典数据集Miniimagenet 和Tieredimagenet 上进行大量实验。
3.1 数据集介绍
Miniimagenet 是从大型计算机视觉数据集Imagenet[24]上节选的部分数据。2016 年DeepMind 团队将Miniimagenet 数据集用于小样本图像分类,自此该数据集成为了小样本学习研究的基准数据集。Miniimagenet 包含100 个类,每一类包含600 个样本,每张图像大小为84×84 像素。本文将该数据集按6 ∶2 ∶2的比例分为训练集、验证集和测试集。
Tieredimagenet 也是从Imagenet 数据集中选取的部分数据,由文献[17]于2018 年提出,并应用于小样本学习领域。其一共包含34 个大类,每个大类又包含10~30 个小类,共计608 个类别,779 165张图像;将608 个类别划分为351 个训练集,97 个验证集,160 个测试集,具体划分情况如表1 所示。
表1 Tieredimagenet 数据集划分情况
3.2 实验设置
本实验的测试平台是在 Nvidia TITAN Xp(GPU 12 GB),编程环境为Python 3.6,使用的深度学习框架为Pytorch;优化器选择Adam 优化器,采用固定学习率为0.001。对于小样本学习任务,本文选择5-way 5-shot 和5-way 1-shot 2 个评价指标,即测试阶段的支持集随机选取5 个类别,每种类别分别选取5 个以及1 个样本;最终准确率由测试阶段所有任务的平均准确率计算得到。在训练阶段,支持集的类别数(support-way)和样本数(support-shot)会直接影响模型训练的好坏和最终的准确率;对于Miniimagenet 和Tieredimagenet 2 个数据集,本文设置的参数基本一致。5-way 5-shot 具体实验设置如表2 所示,5-way 1-shot 实验设置如表3 所示。
表2 5-way 5-shot 实验设置
表3 5-way 1-shot 实验设置
表中query-shot 为查询集每一类样本数量,max-epoch 表示迭代的总轮数,save-epoch 表示保存模型的轮数,task-num 表示任务的数量。
3.3 实验结果分析
本文在原型网络基础上提出了基于注意力和类协方差的原型网络(ACCPN),并在小样本图像分类经典数据集Miniimagenet 和Tieredimagenet 上进行大量实验来证明整体算法的有效性,同时进行相关消融实验以证明各个部分的有效性。
3.3.1 Miniimagenet 实验对比
为验证整体模型的有效性,本文将ACCPN 与经典小样本学习算法进行对比,其实验结果如表4所示。由表可知,本文对比了Matching Networks[25]、PN(4-conv)[11]、PN(Resnet12)[11]、MAML[8]、Relation Networks[12]、AdaResnet[26]和SNAIL[27]等小样本学习算法,本文提出的方法ACCPN 在5-way 5-shot 和5-way 1-shot 任务上都取得了显著的效果,其中ACCPN 在5-way 5-shot 任务上取得了所有对比算法中最好的效果。对于5-way 5-shot 任务,ACCPN 相比于基准算法PN(4-Conv)以及PN(Resnet12)的性能提升分别为6.73%和3.06%;对于5-way 1-shot 任务,ACCPN 相比于基准算法PN(4-Conv)以及PN(Resnet12)的性能提升为6.64%和3.09%。为证明各个改进部分的有效性,本文进行了大量的消融实验,其结果如表5 所示。基准模型为PN(Resnet12)。
由表4 可知,相比于其他的小样本学习算法,本文提出的方法ACCPN 在小样本图像分类中取得了显著的效果。而由表5 可知,本文提出的IBN-Resnet12,SAM 以及类协方差度量(class covariance,CC)对于小样本图像分类都具有一定的效果。对于5-way 5-shot 任务,IBN-Resnet12 结构相比于Resnet12 结构的精度提升为0.70%左右;加入了SAM的PN 相比于基准PN 的精度提升约为0.72%;本文提出的类协方差度量(CC)对于最终精度的提升效果最明显,相对于基准PN,该方法精度提升为2.6%左右。对于5-way 1-shot 任务,IBN-Resnet12 结构相比于Resnet12 结构的精度提升为0.71%;加入了SAM 的PN 相比于基准PN 的精度提升约为0.50%;类协方差度量(CC)相对于基准PN 提升了1.58%的精确度。
表4 Miniimagenet 数据性能比较/%
表5 Miniimagenet 消融实验结果/%
3.3.2 Tieredimagenet 实验对比
本节按照上述Miniimagenet 的实验对比方法,在Tieredimagenet 上同样进行了大量的实验以及消融实验,验证了ACCPN 模型的有效性,结果如表6所示。本文在Tieredimagenet 数据集上与PN(4-conv)[11]、PN(Resnet12)[11]、Relation Networks[12]以及其他小样本学习算法进行了比较。由表6 得知,ACCPN 在Tieredimagenet 数据集上取得了较好的效果,对于5-way 5-shot 任务,ACCPN 相对于PN(4-conv),准确率提升了 7.76%,相对于 PN(Resnet12),准确率提升了1.67%。对于5-way 1-shot 任务,ACCPN 相对于PN(4-conv),准确率提升了6.09%,相对于PN(Resnet12),准确率提升了1.55%。为证明各个改进部分的有效性,本文进行了大量的消融实验,其结果如表7 所示。
表6 Tieredimagenet 数据性能比较/%
表7 Tieredimagenet 消融实验结果/%
由表7 的消融实验结果得知,本文提出的IBNResnet12、SAM 模块以及类协方差度量(CC)对于小样本图像分类都具有一定的效果。对于5-way 5-shot 任务,IBN-Resnet12 结构相比于Resnet12 结构的精度提升了1.03%左右,加入了SAM 的PN 相比于基准PN 的精度提升约为0.68%,本文提出的类协方差度量(CC) 相对于基准PN 提升精度为1.24%左右。对于5-way 1-shot 任务,IBN-Resnet12结构相比于Resnet12 结构的精度提升了0.64%,加入了SAM 的PN 相比于基准PN 的精度提升约为0.39%,类协方差度量(CC)相对于基准PN 提升了1.16%的精确度。
3.3.3 模型复杂度分析
由上述实验可知ACCPN 相对于基准的PN 以及其他小样本学习算法有了较大的性能提升,接下来进行该模型的复杂度分析。ACCPN 由特征提取器和分类器构成,并非端到端的结构,故本文分别对特征提取器和分类器进行复杂度分析。首先对于特征提取部分,相对于PN,本文的ACCPN 在CNN 后加入了SAM,故在参数计算时也只是加入了SAM 的参数量。具体参数量及时间复杂度对比如表8 所示。
表8 ACCPN 和PN 参数量及时间复杂度对比
由表8 可得,ACCPN 相对于PN 的总参数量只多了98,而时间复杂度可用浮点数来衡量,浮点数意指浮点运算量,由表8 可得,ACCPN 的浮点数相比于PN 只多了2405。
对于分类器部分,由于ACCPN 需要计算类协方差距离,故比PN 的欧氏距离计算所需的时间要长。但由于类协方差距离是固定距离计算,不引入额外的参数,故总参数量是不变的。
综上所述,ACCPN 在只增加少量参数及时间复杂度的前提下,准确率有了较大的提升。
4 结论
本文提出了一种基于自注意力和类协方差度量的原型网络(ACCPN),相对于基准原型网络,本文从特征提取模块和分类器部分都做了改进。首先利用IN 的图像外观不变性,提出IBN-Resnet12 作为特征提取结构,使模型在保持学习能力的同时,增加模型泛化能力;其次在特征提取模块后嵌入空间注意力模块,增强局部特征;最后提出类协方差距离度量,突出了图像特征间的关联性。本文在小样本学习经典数据集Miniimagenet 和Tieredimagenet 上做了大量实验,证明了模型的有效性。
小样本学习旨在训练模型在给定样本较少的情况下完成一系列任务,而当前小样本学习方法多基于度量学习的思想,而忽略了对样本数据分布的建模,故小样本学习未来的发展应重点放在样本本身,依据不同样本的数据分布特点建立泛化性更好的小样本学习模型。同时,当前小样本学习任务多为图像分类,未来的应用场景应拓展到目标检测、语义分割和文本识别等多方面。