vit细粒度图像分类(三)TRS-DeiT 学习笔记

1.摘要

 细粒度图像分类任务由于自身存在的细微的类间差别和巨大的类内差别使其极具挑战性, 为了更好地学习细粒度图像的潜在特征, 该算法将知识蒸馏引入到细粒度图像分类任务中,
提出基于知识蒸馏与目标区域选取的细粒度图像分类方法( TRS-DeiT) , 能使其兼具 CNN 模型和 Transformer 模型的各自优点。 此外, TRS-DeiT的新型目标区域选取模块能够获取最具区分性的区域; 为了区分任务中的易混淆类, 引入对抗失函数计算不同类别图像间的相似度
最终, 在三个经典细粒度数据集 CUB-200-2011、 Stanford Cars 和 Stanford Dogs 上进行训练测试, 分别达到 90. 8%、 95. 0%、 95. 1%的准确率。 实验结果表明, 该算法相较于传统模型具有更高的准确性,通过可视化结果进一步证实该算法的注意力主要集中在识别对象, 从而使其更擅长处理细粒度图像分类任务。

2.问题

根据图像粒度不同, 图像分类可划分为粗粒度图像分类和细粒度图像分类。 粗粒度图像分类即传统意义的图像分类, 如猫和狗属于不同种类, 在类别间存在的类间差距是相当明显的。 对比粗粒度图像分类, 细粒度图像分类聚焦于区分相同大类中多个附属子类下的不同对象 [ 1] , 如区分狗的品种 [ 2] 、 车的款式 [ 3] 等。 类间差别小和类内差别大的特点使得细粒度图像分类更具挑战性。细粒度图像分类实例如图 1 所示, 该图表示视觉上相似的狗,其中每行表示一个种类, 要识别的对象会受到背景、 光照、 遮挡、 对象的姿态等因素的干扰, 从而进一步加大了细粒度图像分类的难度。 

2.1发现

为了解决上述问题, 大量基于深度学习的细粒度图像分类方法被提出来, 主要分为强监督方法 [ 4 ~7] 和弱监督方法 [ 8 ~15] 两大类。 强监督方法依赖额外的手工信息比如标注框
( bounding box) 、 部分信息注释( part annotation) 来获得识对
象的位置和大小, 这有助于提高部分特征与全局特征的关联,进而产生更好的分类效果。 然而, 由于获取这些标注信息的代价十分昂贵, 从某种程度上限制了这类方法的实际应用。 弱监督方法只利用图像级别的注释指导模型学习, 即图像标签, 无须手工注释信息就能自动学习到区分性区域特征, 且在性能上逐渐超过了强监督学习方法, 因此, 弱监督方法逐渐成为细粒度图像分类领域的主流方法。根据模型框架的不同, 弱监督方法可划分为基于 CNN( convolutional neural network) 的方法 [ 8 ~12] 和基于 Transformer的方法 [ 13 ~15] 。

2.2发展

基于 CNN 的方法常用的典型骨架网络有 Res-Net [ 16] 、 DenseNet [ 17] 等。 这些骨架网络的 CNN 过滤器被视做局部描述器, 具有局部性和空间性两个属性, 能学习图像的局部区域并编码空间信息。 在基于 CNN 框架的基础上, 现有细粒度图像分类方法通过注意力机制作为子模块来寻找最具区分性区域, 提出了 RA-CNN [ 10] 、 MA-CNN [ 18] 、 PA-CNN [ 19] 方法。
然而, 上述方法都存在定位区域过大、 涵盖背景等干扰信息的问题, 且在数据集规模较小的情况下, 注意力机制容易过拟合 [ 1] 。 在基于 Transformer 的方法中, Transformer 结构的自注意力模块具有捕获长距离依赖的能力, 能够在最初的几层里定位到图像的细微区别和空间关系 [ 14] , 并且 Transformer 的残差连接结构能够有效地将图像特征从网络的较低层传递到较高层 [ 20] , 因此, Transformer 自身结构更适用于细粒度图像分类任务, 使得基于 Transformer 的方法成为此领域的新兴方法。 通常, 基于 Transformer 的方法使用 ViT [ 21] 作为其骨架网络, 然而, ViT 的局限性在于不能同时兼顾 CNN 方法和 Transformer方法的优点来更全面地学习细粒度图像特征。DeiT [ 22] 模型借助知识蒸馏能实现同时结合 CNN 方法和
Transformer 方法的优点, 且在粗粒度图像分类任务中获得巨大成功, 然而其在细粒度图像分类任务中的表现尚未被探索。

2.3创新

受此启发, 本文首次将 DeiT 模型应用在细粒度图像分类领域, 提出基于知识蒸馏与目标区域选取的细粒度图像分类方法( DeiT based on target regions selection, TRS-DeiT) 。 具体地,本文首先使用细粒度图像分类模型 TransFG [ 14] 和 CAL [ 12] 分别作为教师模型指导 DeiT 模型做特殊领域数据集的任务; 其次,为了找到最具区分性区域, 提出新型目标区域选取模块, 其在注意力权重上利用综合性策略充分考虑令牌间的关系。 为了区分图像中的易混淆类, 本文提出利用对抗性损失函数学习图
像间的相似度
[ 14] 。 最后, 通过大量任务集验证本文模型的有效性。 本文首次探索将 DeiT 模型用于细粒度图像分类任务上的蒸馏方法; 提出新型目标区域选取模块( target regions selec-tion module, TRSM) 用来选取最具区分性的区域, 并且能够去除无关和干扰区域。

3.网络

3.1整体结构

本章将详细介绍本文所提基于知识蒸馏与目标区域选取的细粒度图像分类方法, TRS-DeiT。 其主要包括四部分: a) 骨架网络 DeiT 作为本模型框架用于学习图像基本特征; b) 知识蒸馏的模型设计用于有效学习教师模型知识; c) 目标区域选取模块用于获取图像中最具区分性区域; d) 损失函数总体设计用于高效监督模型学习。 TRS-DeiT 模型整体结构如图 2 所示, 最左侧是模型的输入, 包括图像补丁( image patches) 和两个额外的令牌, 即分类令牌( class token) 和蒸馏令牌( distillation token) ; 中间是骨架网络 DeiT, 在倒数第二层插入目标区域选取模块; 最右侧是通过分类令牌和蒸馏令牌对三个损失函数值进行计算。

3.2 骨架网络 DeiT 介绍
本文最大的创新在于首次将蒸馏型 Transformer 方法用于细粒度图像分类任务中, 使用教师模型指导学生模型完成分类任务。 DeiT 在传统图像分类领域性能超过 ViT 达到最新性能, 本文将探索 DeiT 在细粒度图像分类中的可行性, 并使用DeiT 作为骨架网络完成蒸馏模型设计。
DeiT 模型以 Transformer 为框架, 包含 L 层 Transformer 层
每层 Transformer 包括多头注意力( ,MHSA) 和前馈神经网络(, FFN) 。 除补丁令牌外, 输入令牌还包括分类令牌和蒸馏令牌, 它们都是可训练向量, 分类令牌在首层 Transformer 前被附加到输入令牌中,并在每个 Transformer 层与其他令牌交互, 最后分类令牌通过线性层计算后得到最终预测结果。 蒸馏令牌是为了做知识蒸馏任务添加的令牌, 它的功能与分类令牌类似也是与其他令牌交互, 但其目标是让 DeiT 学习教师模型的知识, 并复现教师模型的预测结果。 DeiT 使用的教师模型有卷积神经网络教师模型和 Transformer 教师模型两种类型。 

3.3 知识蒸馏的模型设计

为了能够让 DeiT 学习到教师模型的知识, 首先要有一个表现良好的教师模型。 可用做细粒度图像分类任务的教师模型包括基于 Transformer 的教师模型 TransFG [ 13] 和基于 CNN 的教师模型 CAL

3.4 目标区域选取模块

由于细粒度图像的细微差异加剧了分类难度, 本文提出在模型中加入目标区域选取模块, 旨在找到最具区分性的区域提高分类精度。 要想找到最具区分性区域也就是找到哪些补丁令牌对分类结果有重要影响, 对此, 本文依照文献[ 26] 的思想, 提出借助每层 Transformer 的注意力权重寻找关键的补丁令牌。 事实上, 在每个 Transformer 层中, 自注意力机制将来自参与嵌入的信息结合到下一层焦点嵌入的表示中, 这样会使来自不同补丁令牌的信息逐渐混合, 那么在 Transformer 中输入令牌与注意力权重之间的对应关系就不确定了。 因此, 本文提出将模型中的信息流建模成有向无环图 ( directed acyclicgraph, DAG) , 输入令牌作为 DAG 的节点, 每层 Transformer 的注意力权重作为 DAG 的边, 注意力权重的大小作为边的大小。最终, 抽取 L -1 层的注意力权重, 并将其进行矩阵相乘后的注意力权重当做输入令牌的注意力权重。
累计相乘后的结果可以看做是每个输入令牌更加真实的注意力权重, 权重值代表输入令牌的重要程度, 权重值越高, 令牌越重要。 因此, 根据权重值找到最重要的补丁令牌, 从而确定最重要区域。
累计的注意力权重可表示为

其中: A l 表示第 l 层 Transformer 的注意力权重; L 表示 Trans-
former 层的数量; a Kl 表示 l 层第 K 个头部的注意力权重。 考虑 分类结果只与分类令牌和蒸馏令牌相关, 因此只选出与这两个令牌有关的权重。 A class 和 A dist 表示注意力权重 A 中关于分类令牌和蒸馏令牌的矩阵行权重, 表示这两个令牌分别对其他令牌的关注程度, A → class 和 A → dist 表示注意力权重 A 中关于分类令牌和蒸馏令牌的矩阵列权重, 表示其他令牌对这两个令牌的关注程度。 将四个选出的权重向量进行元素相乘即得最终的
综合权重, 表示为

根据综合权重的大小, 对应着最大权重的令牌将被选出来作为最具区分性区域( 注: 这里筛选重要令牌是不包括分类令牌和蒸馏令牌的) 。 由于 A final 包括 K 个头部, 每个头部都可以找出一个权值最大令牌, 所以共选出 K 个令牌。 第 L -1 层的输出向量作为目标区域选取模块的输入, 表示为 z inputL -1 , 目标区域选取模块的输出向量表示为 z output
L -1 。 具体计算过程如图 3 所示, 用公式可表示为 

 

其中: N 表示补丁的数量; M TRS ( · ) 表示目标区域选取模块, 对应着图 3 中黄色框图部分。 

 说简单点,目标区域选取模块就是一种注意力机制,给最具区分性的区域更多的注意力权重,使得模型能更快地学到关键信息。到具体实施来看,对于有着L层Transformer层的Deit,选取前L-1层注意力权重作为边,所有的输入令牌,包括分类令牌,补丁令牌和蒸馏令牌一共有L个令牌,这样就有一个L-1条边,L个令牌的无向环。
将其进行矩阵相乘后的注意力权重当做输入令牌的注意力权重”,把每条边的注意力权重用数据表示出来,不过这里的矩阵相乘的矩阵不知道哪里来的。
然后用矩阵相乘的注意力权重来表征输入令牌的注意力权重,也就是说,但所有边的权重确定了,那么所有令牌的权重也就确定了。

3.5 损失函数总体设计

本文所提模型 TRS-DeiT 以 DeiT 的硬标签蒸馏方法 [ 22] 作为部分损失函数并做了微调, 包括两个交叉熵, 一个是在预测标签 y 和真实标签 y TL 上所作的交叉熵, 另一个是预测标签 y和来自教师模型的软标签 y tl 上所作的交叉熵。 用下式表示:

其中: α 介于 0 ~1, 用来调整两个交叉熵的占比。 然而, 该目标函数作为细粒度图像分类任务的损失函数不能强有力地监督细粒度图像间最为细微的区别, 因此, 本文提出加入对抗损失
函数监督模型训练。 对抗损失值包括两部分: 一部分是分类令牌的特征向量 z class 的对抗损失值, 另一部分是蒸馏令牌的特征向量 z dist 的对抗损失值, 公式如下: 

其中: 式( 13) 与( 11) 共享参数 α; β 介于0 ~1, 表示当负样本对的相似值大于 β 时才会起作用。 对抗损失函数能够最大化具有相同标签的图像间相似度, 最小化具有不同标签的图像间相似度, 从而有效区分易混淆类。 最终, TRS-DeiT 的总损失函数是将式( 11) 和( 13) 的损失函数加和得到: 

4.实验

4.1实验设置

4.1.1 数据集

4.1.2 实验细节

为了建模 TRS-DeiT, 本文采用 DeiT-B 作为本模型的骨架网络, 并加载官方 DeiT-B 模型的预训练权重 [ 22] 。
本模型的训练使用两块 NVIDIA RTX 2080 GPU, 在 PyTorch 平台上进行实验。训练参数设置: 数据集的图像尺寸调整为统一的 448 像素 ×448像素, 数据增强方法为随机翻转、 随机裁剪、 随机锐度、归一化。 CUB-200-2011 和 Stanford Cars 数据集的学习率均设置为0.003, Stanford Dogs 数据集的学习率设置为 0. 000 5, 学习率调度器设置为 step, 训练优化器设置为 AdamW, 批大小( batchsize) 设置为4, 整个训练过程最大迭代次数为 100。
根据实验统计验证, 在 CUB-200-2011 和 Stanford Cars 数据集上, 蒸馏损失函数阈值 α 均设置为0.5, 在 Stanford Dogs 数据集上, α 设为 0. 1,
在三个数据集上对抗损失函数的 β 阈值均设为0.4。测试参数设置: 批大小设为 4, 图像尺寸调整为 448 像素 ×448 像素, 统一将图像标准化。
教师模型设置: 在 CUB-200-2011 数据集上, 分别测试基于CNN 的 教 师 模 型 CAL [ 12] 和 基 于 Transformer 的 教 师 模 型TransFG [ 14] 的表现, 并分析两种教师模型的优劣。 最终, 鉴于 CAL作为教师模型在 CUB-200-2011 任务中的突出表现, 在 StanfordCars 和 Stanford Dogs 数据集上只选择 CAL 作为教师模型。

4.2对比试验

 

4.3消融实验

 

5. 结语

本文提出知识蒸馏和目标区域选取模块相结合的细粒度图像分类方法 TRS-DeiT。 所提方法借助知识蒸馏结合 CNN 模型和 Transformer 模型的各自优势, 更好地学习细粒度图像的潜在特征。
此外, 针对细粒度图像分类任务中存在的类间差距小和类内差距大的问题, 在模型中插入目标区域选取模块选取最具区分性区域, 同时通过在损失函数中引入对抗性损失函数让模型关注不同类别图像间的区别和同种类别图像间的相似性, 从而有效监督模型训练。 实验结果表明本文方法在 CUB-200-2011、 Stanford Cars 和 Stanford Dogs 数据集上的准确率分别达到了 90. 8%、 95%、 95. 1%, 优于对比模型, 可视化分析结
果进一步表明本文模型选取了图像中的重要区域而排除无关区域的干扰, 从而使得本文方法在处理细粒度图像分类任务上更具优势。
本文方法在知识蒸馏过程中, 教师模型会极大程度地影响学生模型的结果。 针对此问题, 如何进一步优化知识蒸馏模型, 打破教师模型的限制, 从而进一步提高模型准确率, 是未来工作的重要研究内容。 

  • 35
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值