AAAI 2023 | CF-ViT:由粗到细的两阶段动态推理架构

c9a268dac3d433840d1a310835d57d7e.gif

©作者 | 陈锰钊

单位 | 厦门大学

研究方向 | 模型压缩与加速

此文章介绍刚被 AAAI 2023 会议接收的动态 ViT 论文 CF-ViT: A General Coarse-to-Fine Method for Vision Transformer。代码、训练日志、预训练模型皆已在 GitHub 上开源。

c8bebbd108a64b95ad51614c6f2278bd.png

论文题目:

CF-ViT: A General Coarse-to-Fine Method for Vision Transformer

论文链接:

https://arxiv.org/abs/2203.03821

代码链接:

https://github.com/ChenMnZ/CF-ViT

bc2fc90eecfca1d7d94932c25be705dd.png

TL;DR(太长不看版)

Vision Transformers (ViTs) 的核心操作是 self-attention,而 self-attention 的计算复杂度和输入 token 数目的平方成正比,因此压缩 ViT 计算量最直接的思路就是减少推理时的 token 数目,也即减少图像划分的 patch 数目。

论文通过两阶段自适应推理减少推理过程的 token 数目:第一阶段将图像划分为粗粒度(大尺寸)patch,目的是使用较少的计算量识别“简单”样本;第二阶段将第一阶段中信息量高的粗粒度 patch 进一步划分成细粒度(小尺寸)patch,目的是使用较少的计算量识别“困难”样本。

论文还设计了全局注意力用于识别信息量高的粗粒度 patch,以及特征复用机制用于增大两阶段推理的模型容量。在不影响 Top-1 准确率的情况下,该方法在 ImageNet 上将 LV-ViT-S 的 FLOPs 降低 53%,GPU 上实测推理速度也加快了 2 倍。

6633dcd274e5ba7c013005e8de9d923a.png

▲ 图1. CF-ViT两阶段推理示例

b25b5b287929d6525dae83fc20a50432.png

研究动机及简介

近年来,Vision Transforms (ViTs) 受到了学术界的广泛关注,被应用到各式各样的视觉任务中。ViT 将图片切割成固定数目的 patch,之后将每个 patch 线性映射成 token,输入一系列堆叠的 Transformer Block。其中,Transformer Block 包含两个组件:Multi Head Self-Attention (MHSA) 和 Feed Forward Network (FFN)。

假设图像被编码成 个 维 token,则 Transformer Block 的计算复杂度为:

434c0c0aba47da8d54a7c6940906e1e3.png

如上式,即 MHSA 的计算复杂度和 token 数的平方成正比,FFN 的计算复杂度和 token 数成正比。因此,一种简单的高效推理思路是通过降低推理时的 token 数目来对 ViTs 的计算量进行压缩。 

那么问题来了,如何降低 token 数目呢?token 对应的是图像中的 patch,也即图像中的某个区域,减少 token 数目的本质在于挖掘图像的空间冗余性,以减少冗余区域的 token 编码数量。而图像的空间冗余性根据粒度,其实可以划分为两种:

1. 图像之间的空间冗余性:根据图像识别难度,可以将图像划分成简单图像和困难图像。如下图所示:对于简单图片,使用较低计算量就能够正确识别。对于困难图片,可能只有使用较高的计算量才能实现正确识别。

9d1b6d1e83bc9a2c15e9c780997c5d67.png

▲ 图2. 图像之间的空间冗余性

2. 图像内部的空间冗余性:根据图像的语义信息,可以将图像划分成前景区域和背景区域,模型能否成功识别主要依赖于前景区域。因此,我们可以认为前景部位是重要区域,背景区域是不重要区域。假设计算量是可自适应调度的,显然,对于重要区域,应该分配更多的计算量;而对于不重要区域,则使用较少的计算量。

dd140a0eff346c8be4a1849aa9b58779.png

▲ 图3. 图像内部的空间冗余性

文中探索了上述两种空间冗余性在 ViT 上的特殊表现形式

1. 图像之间的空间冗余性表现为大部分图像编码成少量 token 即可分类成功。如表 1 所示,196 个 token 计算量是 49 个 token 的 4.18 倍,但带来的性能提升只有 6.6%,这表明,大部分图片较为简单,例如 ImageNet-1k 验证集中 73.2% 的图片用 49 个 token 编码就能成功分类。若是推理过程中对于简单图片使用较少 token 数量进行编码,则可以在保证性能的同时减少计算量。

0e389429e8d00512e2a565c1e4c598ab.png

▲ 表1. DeiT-S使用不同token编码数目时的Top-1准确率和计算量

2. 图像内部的空间冗余性表现为只将重要的 token 输入模型,就可以获得较高准确率。我们采用预训练好的 DeiT-S 模型作为 baseline,其将图像编码成 196 个 token。

如图 4 所示,我们使用 attention map 在输入端对 token 进行筛选:分别塞选出 100 个注意力值最大的 token (绿色) 和 100 个注意力值最小的 token (红色)。可以发现,保留注意力值最大的 100 个 token 性能优势极为明显。其中,attention map 通过先将图片输入模型前向推理一次获得。

850e2acbff7cc093e19d96b76edd976d.png

▲ 图4. 筛选出100个最重要的token输入模型的Top-1准确率

98d3fc41ab2dcb0ed05b32049cf7aaef.png

方法详述

受上述所观察现象的启发,同时考虑图像之间的空间冗余性与图像内部的空间冗余性,论文提出了一个由粗到细的两阶段动态推理架构 (Coarse-to-Fine Vision Transformer, CF-ViT)。

1c21d76475a5b55ae71924fdf261fc32.png

▲ 图5. Coarse-to-Fine Vision Transformer, CF-ViT

首先介绍 CF-ViT 的推理过程。如图 5 所示: 

1. 第一阶段是利用图像间空间冗余性的粗粒度推理,其目的是使用较少计算量获得”简单“图片的正确识别结果。具体做法是对图像使用粗粒度 patch 分割,分割后的结果编码成 token 输入 ViT 模型,以低成本获得粗粒度推理结果。紧接着判断粗粒度推理结果是否可信。此处 follow 此前 early-exiting 工作,采用预测置信度与一个预设阈值进行比较。若预测置信度大于阈值,则认为结果可信,结束推理;否则认为结果不可信,进入第二阶段推理。

2. 第二阶段是利用图像内空间冗余性的细粒度推理,其目的是使用较少计算量获得”困难“图片的正确识别结果。具体做法是识别图像中重要的粗粒度 patch,然后将每一个重要的粗粒度 patch 进行进一步的细粒度切割,获取对应的四个细粒度 patch。最后将新的 patch 分割结果编码成 token 输入 ViT 模型以获得细粒度推理结果。 

值得注意的是,两个阶段中用到的 ViT 模型是共享参数的,因此减少了多阶段推理的参数负担。同时,为了能够更好的协同两个推理阶段,论文设计了两个协同模块,以下进行简单介绍,详见 paper: 

1. 第一个模块是重要区域识别(Informative Region Identification), 其主要通过统计全局类注意力图来衡量每一个粗粒度 patch 的重要性,使得第二阶段可以轻量化无负担的筛选图像中的重要区域,然后进一步进行细粒度切割。 

2. 第二个模块是特征复用(Feature Reuse),其将第一阶段提取到的特征融合进第二阶段的推理过程。具体做法是对第一阶段提取到的特征进行线性变换和维度对齐,然后直接和第二阶段的图像编码相加,以此实现跨粒度特征注入,从而进一步提高第二阶段的模型容量。

在训练时,我们使用真实标签 监督细粒度推理结果 ,使用细粒度推理结果 监督粗粒度推理结果 :

cb8b4251e2d3822669c07b800fd99b1d.png

2db8b899cf661ed60f4366532c24df9d.png

实验结果

实验中,论文基于 DeiT-S 和 LV-ViT-S 测试了所提出的方法。如表 2 所示,在不影响模型准确率的前提下,CF-ViT 分别分别将 DeiT-S 与 LV-ViT-S 的计算量降低 61% 和 53%。

值得注意的是, 表示所有的样本都会输入细粒度推理阶段,此种情形下 CF-ViT 分别将 DeiT-S 和 LV-ViT-S 的 Top-1 准确率提升 和 ,且使用更少的计算量。同时,我们也测试了 CF-ViT 在 ImageNet 上的实际推理速度:基于 Nvidia A100 GPU, batch size , CF-ViT 可以显著提高推理速度。

91938926dc66377a5592a3a808160e42.png

▲ 表2. CF-ViT和Backbone的比较

表 3 展示了 CF-ViT 和只利用图像内部空间冗余性的 token 剪枝方法的对比结果。

5dfa6295fa29cdf9e326951ca2327822.png

▲ 表3. 和现有的token剪枝方法对比

图 5 展示了 CF-ViT 和现有只利用图像间空间壳余性的 early-exiting 方法的对比结果。值得注意的是,CF-ViT 不仅性能优于 DVT,且得益于两个推理阶段共享模型参数,其参数量仅为 DVT 的 。

8ad10b45b4be898e41e9ffcab42b5be5.png

▲ 图5. 和现有的early-exiting方法对比

图 6 展示了在粗粒度推理阶段被正确分类和在细粒度推理阶段被正确分类的样本,其中细粒度推理阶段没有灰色表示的是模型识别出的重要区域。可以发现,在第一阶段就被正确识别的往往是”简单“样本,其特征是目标物体较为显著,背景简单;而在第二阶段才被正确识别的往往是”困难“样本,目标物体较小,且背景较为杂乱。同时,可以发现所提出的重要区域识别模块往往能够成功定位到目标物体,符合预期。

ea50426357f41cb7c70db4f4103be75c.png

▲ 图6. 分别在两个推理阶段被正确分类的图像

ddecc37c4ceea7667b05ab093fe87b93.png

结语

论文对 ViT 中存在的空间冗余性进行探究,将其划分为图像间空间冗余性与图像内部空间冗余性。此前的方法通常只考虑两种空间冗余性的一种,而此论文提出一个由粗到细的两阶段自适应推理结构,对两种类型的空间冗余性同时进行利用,实现了计算量与准确率更好的平衡。

以上即 CF-ViT 的简要介绍,更多细节可参见原论文。如有任何问题,欢迎留言。

更多阅读

9b0a9a4e5efb40b18f118d7b800a0f52.png

6bb381fc5687d2e19cc14bc0dfb590f1.png

89bd3f59fc47ad8fb3cf84ef359d64b2.png

e18623280ecac35c611d9005f97a9bc7.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

cef95f68c7678fc99d4d7dc2181d284f.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

9bc2d8b9b1c07bc90008d8b86a5d3b91.jpeg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值