余 鹰 危 伟 汤 洪 钱 进
(华东交通大学软件学院 南昌 330013)
细粒度图像识别(fine-grained image recognition,FGIR)是图像分类的一个重要分支[1],旨在识别相同大类下的不同子类,如不同型号的飞机、不同款式的汽车等.相较于传统的粗粒度图像识别,细粒度图像识别能够捕捉对象之间细微的差异,在现实生活中有广泛的需求和应用场景,与之相关的研究任务包括生物多样性检测[2]、智慧交通[3]、智能零售[4]等.如果能够借助计算机视觉技术,实现低成本的细粒度图像识别,那么无论对于学术界还是工业界而言,都有着非常重要的意义.然而由于细粒度图像识别固有的类内差异大、类间差异小的特性,以及强监督标签获取困难等问题,使得其成为一项极具挑战性的任务.
传统的细粒度图像识别方法主要使用人工标注的图像标签、对象标注框、局部区域位置等强监督信息来辅助模型进行特征学习.例如Zhang等人[5]提出了一个基于候选区域(region proposals)的细粒度图像识别模型,该模型在训练时借助除图像标签外的对象边界框、区域标注等额外标注信息聚焦局部关键区域,从而降低背景干扰、提升识别精度.然而,大量精细且类别齐全的人工标注信息在现实场景中往往难以获取.为了避免大量依赖人工标注信息,研究人员开始关注弱监督细粒度图像识别模型,仅利用图像类别标签来完成模型训练.为了提升捕获细微差异的能力,弱监督细粒度图像识别模型通常会借助注意力机制、聚类等手段定位最具判别力的关键区域,从而学习到更具区分性的视觉特征,目前已经成为细粒度图像识别领域的主流方法.
良好的特征表达是细粒度图像识别的基础,它对模型的泛化性能有着至关重要的影响.近年来,随着深度学习的兴起,深度神经网络强大的特征自学习能力受到研究人员的广泛关注.早期,研究人员主要基于卷积神经网络(convolutional neural network,CNN)提取细粒度图像特征.例如Ding等人[6]提出了一种注意力金字塔卷积神经网络(attention pyramid convolutional neural network,AP-CNN)用于弱监督细粒度图像分类.该模型对特征金字塔网络(feature pyramid network,FPN)的每层特征图(feature map)都添加空间注意力和通道注意力,形成了一个自下而上的注意力层级结构,从而可以学习到增强的高层语义和低层细节表示.但是,CNN在捕获全局特征方面具有一定的局限性,因此研究人员将具有良好全局关系建模能力的Transformer[7]引入计算机视觉领域,以便更好地提取图像全局特征.例如Vison Transformer(ViT)[8]将Transformer结构应用在图像分类任务中,利用级联自注意力模块提取长距离的特征依赖,获得了良好的分类效果.但是细粒度图像识别需要捕获局部细微差异,而ViT模型容易忽略局部细节特征,因此无法直接在细粒度图像识别任务上发挥优势.为了弥补ViT模型无法提取多粒度特征的不足,研究人员常采用基于定位的方法进行细粒度图像识别.首先以强监督或弱监督的方式定位有区分度的局部区域,然后从这些区域中提取局部细粒度特征,并将全局和局部特征融合后用于分类.例如,He等人[9]基于ViT模型设计了弱监督细粒度图像识别模型TransFG,在没有bounding box标注的情况下通过多头自注意力有效定位判别区域,提升网络捕捉微小差异的能力,并且利用对比学习最大化相同类别表示的相似度,从而提升模型的精度.然而TransFG忽略了判别区域之间的相互依赖关系以及组成的整体对象结构,而这些信息对于模型鉴别性信息的定位和理解是至关重要的.为此Sun等人[10]提出了SIM-Trans模型,引入结构信息学习模块来挖掘对象范围内重要Patch的空间上下文关系,从而加强外观信息和结构信息的鉴别性表示学习.此外,为了解决ViT潜在的问题,Zhang等人[11]提出了自适应注意力多尺度融合Transformer(AFTrans),它也可以在没有bounding box标注的情况下通过选择性注意力收集模块SACM来定位局部差异性区域,从而提取更加鲁棒的特征.总之,提取既包含全局信息,又包含更具判别性的局部信息的不同粒度特征是提升细粒度图像识别精度的关键.
此外,现有的细粒度图像识别方法往往没有考虑网络深层语义知识对浅层网络知识学习过程的指导作用,如Yu等人[12]提出了可信多粒度信息融合模型TMGIF用于细粒度图像识别,该模型获取图像的多粒度信息表示,并通过对多粒度信息的质量评价进行逐步融合.其中多粒度信息可以被看作是从不同网络层次抽取的广义多层次信息,但多粒度信息之间相互独立,高层次粒度信息无法有效指导低层次粒度信息的学习,无法有效缓解细粒度图像识别中可能出现的背景干扰问题.换言之,如果通过深层网络所学到的特征引导浅层网络学习更加高级的语义知识,不但可以缓解背景干扰的问题,也可以促进深层网络提取到更加鲁棒的特征,从而更好地完成特征的学习.知识自蒸馏是一个理想的解决方案,它通过将深层语义信息压缩到浅层,提升了模型的识别准确率.传统的知识自蒸馏方法对于传统图像的识别是有效的,这主要是因为传统图像识别类内差异较小、类间差异较大,这让模型在反向传播过程中样本空间上更容易收敛.而细粒度图像识别具有类内差异大、类间差异小的特点,外观相似图像可能会有不同的类别标签,导致了模型优化存在困难.如果直接将传统的知识自蒸馏应用于细粒度识别,模型性能提升有限.因此,需要针对细粒度图像识别的特点,设计一种适用于该任务的知识自蒸馏方法.此外,也需要考虑到不应过多增加额外的模块,否则会增加网络复杂度,从而不利于模型在现实应用中的推广.
针对上述问题,本文提出了基于弱监督信息的多层次知识自蒸馏联合多步骤训练的细粒度图像识别(multi-level knowledge self-distillation with multistep training for fine-grained image recognition, MKSMT)模型.该模型使用多阶段层次结构设计的Swin Transformer[13]作为主干网络.相比于ViT,Swin Transformer使用了类似特征金字塔的层级结构,能够更好地捕捉不同粒度特征,具有更强的局部特征和全局特征建模能力.MKSMT只在网络内部提取多层次知识,并采用多步骤训练和知识自蒸馏来优化特征学习过程.具体而言,它会对Swin Transformer模型包含的4段(Stage)分步骤进行训练。第1步首先独立地对浅层网络(第3段及之前)进行特征学习;第2步对所有段构成的网络进行再训练,并将高层知识迁移到浅层网络中以进行知识自蒸馏,而优化后的浅层网络又能进一步帮助深层网络更好地提取鲁棒的特征.这种分步骤训练的做法可以带来2个好处:一是分步骤后,每一步中对模型的约束比单步骤训练更少,能够保证知识自蒸馏的过程顺利完成;二是在特征学习时,网络只需关心当前层次,不需要考虑深层网络和浅层网络的交互,这使得模型在反向传播过程中在样本空间上更容易收敛.
总之,本文的贡献有3个方面:
1)提出了一种多层次知识自蒸馏联合多步骤训练方法用于细粒度图像识别任务.它通过将特征学习和知识自蒸馏分步骤进行,解决了单步骤训练时网络优化困难的问题.
2)多层次知识自蒸馏联合多步骤训练方法只在训练阶段使用,且MKSMT没有在主干网络基础上过多增加模块.这表明在没有过多增加模型复杂度和推理时间的前提下,细粒度图像识别的准确率得到了有效提升,因此在现实场景中更容易得到推广.另外,该方法具有通用性,理论上可以被动态集成在各种计算机视觉任务中,例如人群计数.
3)MKSMT在3个极具挑战性的数据集:CUB-200-2011、NA-Birds和Stanford Dogs与其它先进的算法对比,取得了最优性能或有竞争力的性能,消融实验进一步证明了MKSMT的有效性.
谷歌于2017年提出了Transformer[7]模型,并在自然语言处理(natural language processing,NLP)任务中推广运用.相较于传统循环神经网络(recurrent neural network,RNN),Transformer通过自注意力机制实现双向语义编码,具有更强大的全局信息建模能力.ViT[8]是Transformer模型在计算机视觉领域的应用,它通过自注意力实现像素间的全局交互,从而获得良好的全局特征表示.然而,ViT架构存在2个设计缺陷:1)ViT在输入阶段便对图像进行了高倍率的下采样,并对后续的特征图维持同样的高倍下采样率,导致图像部分细节信息和空间信息丢失,从而无法提取到足够精细的特征;2)ViT对于所有的编码层都输入固定大小的特征块,使得模型处理多尺度视觉对象的能力不足.
针对这2个问题,Liu等人[13]提出了Swin Transformer模型,它采用类似CNN中特征金字塔的层次化架构,在不同阶段分别对特征图进行逐级下采样,从而得到了多尺度的特征表示.为了降低计算复杂度和提高长程依赖关系的捕获能力,Swin Transformer又提出了基于移动窗口的自注意力机制.具体来说,设计了一个不重叠的滑动窗口,在每个阶段,自注意力的计算只在滑动窗口中进行,然后设计平移窗口机制,使得不重叠的窗口之间可以进行交互,加强了跨窗口之间的关联性,从而实现对局部特征和全局特征的有效建模.Swin Transformer目前共有4个版本,分别为Swin-T、Swin-S、Swin-B和Swin-L,本文采用Swin-L作为基准模型.
知识蒸馏(knowledge distillation, KD)是2015年由Hinton等人[14]提出的模型压缩方法,它是一种基于教师-学生网络的训练方式,易于实现且简单有效,因此迅速在工业界得到广泛应用[15].以图像识别为例,知识蒸馏的一些关键要素包括教师模型、学生模型、经过Softmax函数的映射值、蒸馏温度.其中教师模型是一个参数量较大的模型,学生模型是一个参数量较小的模型,要求这2个模型在给定任意输入后得到的输出经过Softmax函数映射能够得到各类别的概率值.蒸馏温度可以调节概率分布的熵,让模型更加关注负标签值的变化.添加蒸馏温度后的Softmax函数的数学表达如式(1)所示.
其中,zi表示模型关于第i个类别的输出值,T表示蒸馏温度,pi表示经过映射后的第i个类别概率值.根据式(1)计算得到教师和学生的概率值pi后,就可以计算2个概率分布的KL散度来衡量二者之间的差异,为了更加准确详细说明其计算过程,以一个具有N个样本的C类分类问题为例,其数学表达为
其中,pt表示教师网络概率分布,ps表示学生网络概率分布.在得到KL散度后计算学生网络的交叉熵损失值,两者联合共同训练学生网络.
然而,在传统的知识蒸馏中,知识是单项转移的,这在很大程度上需要保证教师网络足够好.深度互学习(deep mutual learning, DML)[16]尝试了一种新的思路,让2个学生网络在训练阶段协同学习,相互转移知识.除了在最后输出层进行互学习外,还可以在网络中间特征层进行.这种策略具有普适性,而且对于模型大小没有限制.但DML和传统的知识蒸馏一样,仍旧需要2个网络来工作.
知识自蒸馏[17]打破了传统知识蒸馏和DML需要2个网络的规则,它只在网络内部的不同层次间进行知识蒸馏,以深层网络为教师,将知识转移到浅层网络上,在相同甚至更低计算量情况下,也可以获得和传统知识蒸馏一样的效果甚至超越传统知识蒸馏方法.
从上述分析可以看出,知识自蒸馏在实际使用中限制最小,它能够充分挖掘网络内部不同层次的知识.因此,本文将自蒸馏技术应用于细粒度图像识别中,但本文采用知识自蒸馏的目的并不是为了压缩网络,而为了使网络能够提取到更加鲁棒的特征.
MKSMT的网络结构如图1所示,它将层次化设计的Swin Transformer作为主干网络,共由4段(Stage)组成,即S1、S2、S3和S4。每个段逐步缩小特征图的分辨率,像CNN一样逐层扩大感受野,从而提取出不同尺度特征.
Fig.1 The model architecture of MKSMT图1 MKSMT模型架构
从图1可见,MKSMT的主干网络保留了Swin-L的原始架构.Patch Partition模块将输入图像中每N×N个相邻像素划分成一个块,然后将每个Patch在通道方向上展平.对于一张维度为H×W×3的图像,其中,H为图像的高度,W为图像的宽度,可以划分成个Patch,每个Patch在通道方向上展平后的维度为N×N×3.
在S1中,首先由Patch Embedding模块对划分后Patch的特征维度进行线性变换,即由原来的维映射为维,C是特征图的通道维度.然后,输入堆叠的Swin Transformer Block.
S2,S3,S4的操作相同,均是先输入Patch Merging模块进行下采样,然后输入重复堆叠的Swin Transformer Block.Patch Merging模块将特征图的高度和宽度减半,同时将深度翻倍,因此S2、S3和S4输出的特征图维度分别是8C.
同时,MKSMT集成了多层次知识自蒸馏模块以便提取更加鲁棒的特征,并采用多步骤训练的方法进行模型优化.需要特别说明的是,知识自蒸馏模块仅在训练阶段辅助主干网络学习模型参数,并不会参与预测阶段的工作.MKSMT模型的训练过程分2步完成:第1步先训练S3之前的部分网络,第2步再训练整个网络.在第1步训练中,S3的输出被送入输出处理模块(output processing module, OPM),该模块结构如图2所示.OPM可以将主干网络输出的不同维度特征归一化映射为相同维度的特征向量,以便输出层(output layer)处理.例如,对于维度为4C的数据,经过OPM模块处理后得到的数据维度为K.然后,可以根据输出层输出的分类结果计算交叉熵损失,并进行反向传播优化模型.在第2步训练中,S3和S4的输出会同步输入不同的OPM模块、输出层Softmax层,然后S4对应的输出层的输出将用于计算交叉熵损失,而2个Softmax层的输出将用于计算知识自蒸馏损失,并用于反向传播更新网络参数.
Fig.2 Structure of OPM图2 OPM结构
MKSMT采用知识自蒸馏的目的是为了将深层次的知识压缩到浅层网络,帮助浅层网络更好地捕捉图像的细节信息,从而更新浅层网络已学习到的特征,进而在下一批次数据训练时,浅层网络将递进反馈于深层网络,提高网络整体对于目标识别的准确率.Zhang等人[17]经过实验证明采用知识自蒸馏训练的模型对参数扰动更具鲁棒性,而在没有自蒸馏情况下训练的模型对高斯噪声更加敏感.总之,模型经过自蒸馏,可以帮助网络更好地理解图像潜在的细节信息,从而提高特征的鲁棒性和表达能力,最终使得模型的准确率得到提升.
从图1可见,知识自蒸馏只在训练的第2步使用.首先,将输入图像输入主干网络后,将分别从S3和S4得到原始特征和,其中上标表示特征来源,下标表示多步骤训练的步骤编号.然后,将原始特征和分别输入不同的OPM模块和输出层,得到和,随后与输出层相连的Softmax层输出和.S4对应的输出层结果将用于计算交叉熵损失值.值得一提的是,这里不再根据S3输出层结果计算相应的交叉熵损失值.2个Softmax层的输出结果和将用于计算知识自蒸馏损失值,最后进行反向传播优化模型.完整的多层次知识自蒸馏算法流程如算法1所示.
算法1.多层次知识自蒸馏算法
输入:细粒度图像训练集;
输出:根据交叉熵损失和知识自蒸馏损失优化的模型.
① 输入细粒度图像,分别从S3和S4获得原始特征和;
⑥ 根据2种损失反向传播更新网络参数.
网络架构由若干个阶段组成是进行多步骤训练的前提条件.在CNN网络中,每个阶段可由一组级联的卷积层组成,然后在每个阶段结束时输出不同尺度的特征图.而在Transformer架构的网络中,每个阶段则一般由若干个Transformer Block堆叠而成.MKSMT采用Swin Transformer中的Swin-L作为主干网络,共划分为4个阶段(S1~S4),其中S1、S2和S4只包含2个堆叠的Swin Transformer Block,而S3则由18个Swin Transformer Block堆叠而成.因此,从直观上来讲,S3和S4具有更好的特征表达能力.为此,在进行多步骤训练时,步骤1只训练了S3之前的部分网络,将S3的输出特征输入到OPM模块后经过输出层处理得到输出,然后计算交叉熵损失;步骤2是对整个网络进行训练,并添加了多层次知识自蒸馏,最终依据交叉熵损失和知识自蒸馏损失优化模型.多步骤训练的算法流程如算法2所示.
算法2.多步骤训练算法
输入:细粒度图像;
输出:根据多步骤训练更新后的网络.
① 输入细粒度图像,从S3获得原始特征;
④ 步骤1结束;
⑤ 根据交叉熵损失反向传播更新网络参数;
⑥ 输入细粒度图像,分别从S3和S4获得原始特征和;
⑩ 根据式(2)计算自蒸馏的损失;
⑪ 根据行⑧和行⑨的损失反向传播更新网络参数;
⑫ 步骤2结束.
由2.3节分析可知,MKSMT模型的训练过程由2个步骤构成,每一步会计算一个损失,然后进行反向传播更新网络参数.在步骤1中,会根据S3的输出计算交叉熵损失.假设现有N个样本用于分类,那么交叉熵损失函数的数学表达如式(3)所示.
在步骤2中,损失函数由2部分构成,即S4输出的交叉熵损失,以及S3和S4这2部分输出Softmax结果的KL散度,分别由式(5)和式(6)求得,最终损失函数结果如式(7)所示.
其中,Ltotal表示步骤2的总损失,L4表示步骤2中根据S4输出得到的交叉熵损失,p3和p4分别表示S3和S4输出经过添加蒸馏温度后的Softmax的预测结果,LKL表示S3和S4输出的KL散度,λ1、λ2为2部分损失函数的权重超参数,在CUB数据集上都设为1.
为了验证MKSMT模型的有效性,分别在CUB-200-2011[18](CUB)、NA-Birds[19](NAB)和Stanford Dogs[20](DOG)这3个基准数据集上进行了实验.数据集详细信息如表1所示,CUB数据集包含200种鸟类,是细粒度图像识别任务中使用最广泛的数据集之一.除提供图像级标签外,该数据集还提供对象边界框、关键区域标注和文本描述等人工标注信息.NAB数据集是一个具有高质量标注的大规模细粒度图像分类数据集,共包含48 562张鸟类图片,分别属于550个子类.DOG数据集是一个由120种狗组成的大型数据集,其中的图像主要来源于日常生活.
Table 1 Experimental Datasets表1 实验数据集
所有实验均使用PyTorch 1.6,在4×GTX 2080Ti GPU服务器上进行,对于输入图像的预处理如表2所示.
Table 2 Image Pre-processing Settings表2 图像预处理设置
除了需要对图像进行预处理外,主干网络Swin-L也使用了在ImageNet-22K上的预训练参数,MKSMT的其余超参数设置如表3所示.
Table 3 Hyperparameters of MKSMT表3 MKSMT的超参数
本节分别展示了MKSMT在3个数据集上与其它经典模型的实验对比结果,模型性能评价指标采用准确率.参与比较的经典模型有的采用基于CNN架构的ResNet或EfficientNet作为主干网络,而有的则以基于Transformer架构的ViT或Swin Transformer作为主干网络.
在CUB数据集上的实验结果如表4所示,参与比较的模型来自2种不同网络架构.由表4可见,以CNN为主干网络的模型中准确率最高的是TMGIF,但只达到90.7%,分类性能逊色于以ViT为主干网络的模型,这说明了CNN提取鲁棒性特征能力不足.而MKSMT的性能优于参与对比的算法,除了Swin-L本身具有强大的特征提取能力外,还得益于MKSMT能够将深层次网络信息压缩到浅层次网络中,从而使得深层次网络能够提取到更加鲁棒的特征,最终提升了算法的准确率.
Table 4 Comparison of Experimental Results on CUB Dataset表4 CUB数据集的实验结果对比
在NAB数据集上的实验结果如表5所示,参与对比的模型也采用了2种不同架构的主干网络.从表5可见,以CNN为主干网络的模型中准确率最高的是GDSMP-Net,但只达到89.0%,性能不如以ViT为主干网络的模型.基于CUB和NAB数据集背景复杂、姿态多样等特点,说明CNN提取鲁棒性特征的能力不足.而MKSMT优于对比算法,使用DenseNet-161为主干网络的API-Net模型在精度上不仅更低,其网络复杂度也高于本文提出的MKSMT.MKSMT之所以能获得优异的性能,除了上面提及的优点外,还集成了多步骤训练方法,能够逐步进行特征学习,提取到更有效的特征,且不至于过高提升网络复杂度.
Table 5 Comparison of Experimental Results on NAB Dataset表5 NAB数据集的实验结果对比
在DOG数据集上的实验结果如表6所示,参与对比的模型主干网络也采用CNN或Transformer架构.从表6可见,以CNN架构为主干网络的算法中准确率最高的是PMG-V2,但只达到89.1%,不如以ViT为主干网络的模型,说明了CNN提取鲁棒特征能力的不足.基于Swin Transformer的MKSMT虽然其性能略逊色于基于ViT的模型,但优于基于CNN的模型.总体来看,MKSMT在一众网络中仍有较强竞争力.另一方面,MKSMT相比于其它网络,可以在没有过多增加模型复杂度的情况下,利用多层次知识自蒸馏和多步骤训练实现性能的提升,并且可以作为通用框架集成到其他方法上,这是其它方法无法做到的.
Table 6 Comparison of Experimental Results on DOG Dataset表6 DOG数据集的实验结果对比
MKSMT主要改变的是训练策略和方法,目的是为了在提升模型准确率的同时不会增加模型的参数量.为了展示MKSMT的效率,表7对基准模型和MKSMT的计算复杂度和参数量做了总结.可以观察到,与Swin-L相比,MKSMT的计算量基本不变,参数量仅增加1.1%,总体准确率提升了1.0%,这也反映了模型的优异性.
Table 7 Comparison of Model Complexity表7 模型复杂度对比
为了进一步说明模型提取的特征具有较强的鲁棒性,本文将CUB数据集中的图片分别进行水平和垂直翻转,再重新对基准模型和MKSMT进行测试.结果如表8所示,当将原始图片做水平翻转时,2个模型输出准确率均变化不大,但将图片做垂直翻转并输入模型后,Swin-L的输出准确率下降近11%,而MKSMT仅下降7%.由此可见,MKSMT能够提取出更加鲁棒的特征,以至于当测试数据发生变化时,模型依然能得到较好的分类结果.
Table 8 Comparison of Model Robustness表8 模型鲁棒性对比%
为了说明多层次知识自蒸馏和多步骤训练的有效性,本节在CUB数据集上进行了消融实验.通过仅使用Swin-L网络,而不集成知识自蒸馏和多步骤训练方法,只保留1个输出层,最终得到的识别准确率为91.9%.
在多步骤训练的有效性验证中,首先利用单步骤训练网络,在反向传播时网络总损失一部分来自S3和S4对应输出层的交叉熵损失,一部分来自S3和S4后续Softmax层的蒸馏损失;然后3个步骤训练时,首先根据S2对应的输出层所计算的损失值更新一次网络参数;接着根据S3对应的输出层所计算的损失再更新一次网络参数;最后是S4对应的输出层所计算的损失,加上S2~S4对应的Softmax层计算得到的知识自蒸馏损失,再更新一次网络参数,实验结果如表9所示.
Table 9 Accuracy Comparison of the Multi-step Training表9 多步骤训练准确率对比%
从表9可见,单步骤中S3的准确率与两步骤中S3的准确率一致,但单步骤S4的准确率比两步骤S4的准确率低0.4个百分点.这主要是由于单步骤的优化目标过多,在样本空间上不容易收敛,也就造成提取到的特征鲁棒性不如两步骤训练方法.采用三步骤训练时,各部分准确率都比同样来源的更低,这是由于S2所在的网络深度不够,浅层网络的表达能力不足,无法帮助深层网络提取更加鲁棒的特征,而在S2就注入梯度也破坏了后面S3和S4的特征提取过程,导致其准确率过低.因此,考虑到特征提取的有效性,两步骤的训练策略是最好的.在两步骤训练的步骤2中,包含了特征学习和知识自蒸馏,为了验证这2个部分是同步执行还是异步执行更有效,本文做了实验,实验结果如表10所示.
Table 10 Comparison of Output Accuracy of the Different Execution Modes表10 不同执行方式的输出准确率对比%
从表10可见,当特征学习和知识自蒸馏异步执行时,浅层(S3)的输出识别精度要比同步执行时高0.1个百分点,但深层(S4)的输出识别精度要比同步执行时低0.3个百分点,这说明了异步执行方式更有利于提升浅层网络的特征学习能力,而同步执行方式则有助于深层网络提取到更鲁棒的特征.
在知识自蒸馏的有效性验证中,首先移除知识自蒸馏模块,仅保留多步骤训练.此时,S3的最终输出精度为90.9%,S4的最终输出精度为92.1%,均低于添加了知识自蒸馏模块时的性能.除了在最终的Softmax层进行知识蒸馏(决策蒸馏),对于OPM的输出特征也进行了知识蒸馏(特征蒸馏),实验结果如表11所示.
Table 11 Comparison of Final Output Accuracy of Output Layer and Feature Distillation表11 输出层和特征蒸馏最终输出准确率对比%
从表11可以看出,决策蒸馏在浅层和深层输出的识别精度都高于特征蒸馏.虽然浅层的输出精度两者相差不大,但对于深层而言,特征蒸馏的输出精度比决策蒸馏低了1.2个百分点,甚至不如基准模型的91.9%,这说明了特征蒸馏对于深层网络提取强鲁棒性特征是无效的,甚至会起反作用.其原因在于,深层和浅层提取了不同层次的特征,强行增加不同尺度特征之间的相似性并不利于深层网络提取鲁棒性特征.结合之前的实验,也说明了知识自蒸馏是多步骤训练的有机结合.
蒸馏温度的设定也会对结果产生一定的影响,本节的蒸馏温度取值分别为1,2,3,4,7,10,根据不同蒸馏温度进行实验得到的结果如图3所示,当蒸馏温度为1时,准确率达到了92.8%,效果是最好的.随着蒸馏温度的提升,准确率呈下降趋势.说明对于模型而言,那些明显低于平均值的负标签无需过多关注,负标签中的信息量偏少,蒸馏温度越低,受负标签的影响会更小.
Fig.3 Effect of distillation temperature on accuracy图3 蒸馏温度对准确率的影响
为了更直观地对比模型改进前后的效果,采用类激活可视化方法Grad-CAM[39]对基准模型和MKSMT模型的热力图进行可视化.首先在3个数据集的测试集中随机各选取了一张图片,然后提取每张图片在基准模型和MKSMT的S2、S3和S4输出的特征图,并以可视化热力图的方式展现可判别区域,可视化结果如图4所示,在基准模型的热力图中,判别区域更加分散和零碎.对于复杂图片,基准模型更关注纷杂的背景,在S2输出的热力图尤为明显;而MKSMT的热力图效果有所改善,判别特征更加集中.对比可以看出,经过模型的知识自蒸馏,S2的热力图能更早地将特征集中在对应目标上,S3的热力图特征区别于基准模型对应层而更加接近S4的热力图.这表明,MKSMT能通过深层网络所学到的特征有效引导浅层网络学习更加高级的语义知识,从而促进深层网络提取到更鲁棒的特征.
Fig.4 Comparison of heat maps generated by the baseline models and MKSMT图4 基准模型与MKSMT生成的热度图对比
细粒度图像识别由于其固有的类内差异大、类间差异小的特点,已经成为计算机视觉领域一个非常具有挑战性的任务.为了让网络提取更加鲁棒的特征,同时又不过度增加模型复杂度,本文提出了多层次知识自蒸馏联合多步骤训练的细粒度图像识别模型MKSMT.MKSMT能在一个网络内部提取多层次知识进行知识自蒸馏,达到了层次知识之间交互的目的,并通过多步骤训练的方式来更好地完成特征学习,最终使网络提取到更加鲁棒的特征,并且在没有过多增加模型复杂度的前提下实现模型性能的提升.
实验结果表明,MKSMT在CUB、NAB和DOG数据集上的准确率优于大部分主流模型,且从理论上来说MKSMT所提出来的多层次知识自蒸馏联合多步骤训练的思想具有通用性,能集成到其他任务中.
未来研究方向主要包括:1)将本文思想扩展到其他具有较大应用价值的任务中,如人群计数[40].2)在实际场景中,常面临采集的各类别样本分布不均的问题,从而在训练模型时,由于数据集样本存在长尾分布,导致模型准确率不佳.最近,Adversarial AutoAugment[41]、RandAugment[42]等工作证明了增强样本数据能够有效提高模型的性能,因此,下一步研究将结合细粒度图像识别的特点,从数据增强的角度开展研究工作.
作者贡献声明:余鹰负责论文整体设计和实验方案的制定,并参与了论文的撰写和修订;危伟负责文献整理,撰写部分论文和完成实验;汤洪负责算法的开发和实验评估,改进和优化网络方法,并撰写论文;钱进指导论文撰写和参与论文的修订.