不是所有图像都值 16x16 个词,可变序列长度的动态 Transformer 来了!


转自 | AI 科技评论

编辑 | 陈大鑫 

最近半年,Transformer在视觉领域大获成功,其中的代表作就是谷歌的工作ViT:《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》。

以ViT为代表的视觉Transformer通常将所有输入图像表征为固定数目的tokens(例如16x16)。

然而token序列一定都要是固定不变的吗?

AI科技评论近日发现一篇清华大学黄高研究团队和华为联合研究的一篇关于动态Transformer 的最新工作:《Not All Images are Worth 16x16 Words: Dynamic Vision Transformers with Adaptive Sequence Length 》。

这项工作发现采用定长的token序列表征数据集中所有的图像是一种低效且次优的做法,并提出一种可针对每个样本自适应地使用最合适的token数目进行表征的动态ViT模型。

该方法在ImageNet上将T2T-ViT的平均推理速度(GPU实测)加快了1.4-1.7倍。其主要思想在于利用级联的ViT模型自动区分“简单”与“困难”样本,实现自适应的样本推理。为了减少级联模型中的冗余计算,文章还提出了特征重用与关系重用的模型设计思路。

图1 Dynamic Vision Transformer(DVT)示例

论文:


论文链接:https://arxiv.org/abs/2105.15075

推理代码和部分预训练模型已经在Github上开源:

https://github.com/blackfeather-wang/Dynamic-Vision-Transformer

1

研究动机及简介

近半年来,以Google的工作《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》为代表的Vision Transformer(ViT)系列视觉模型受到了学界的广泛关注,这些模型通常将图像数据划分为固定数目的patch,并将每个patch对应的像素值采用线性映射等方式嵌入为一维的token,作为Transformer模型的输入,示意图如下所示。

图2 Vision Transformer(ViT)对输入的表征方式

假设模型结构固定,即每个token的维度大小固定,将输入表征为更多的token可以实现对图片更为细粒度的建模,往往可以有效提升模型的测试准确率;然而与此相对,由于Transformer的计算开销随token数目成二次方增长,增多token将导致大量增长的计算开销。为了在精度和效率之间取得一个合适的平衡,现有的ViT模型一般将token数设置为14x14或16x16。

而该论文则提出,一个更合适的方法应当是,根据每个输入的具体特征,对每张图片设置对其最合适的token数目。具体而言,不同图片在内容、远近、物体大小、背景、光照等诸多方面均存在较大的差异,将其切分为相同数目和大小的patch没有考虑适应这些要素的变化,因而极有可能是次优的。

以下图为例,左侧的苹果图片构图简单且物体尺寸较大,右侧图片则包含复杂的人群、建筑、草坪等内容且物体尺寸均较小。显然,前者只需要少量token就可以有效表征其内容,后者则需要更多的token描述不同构图要素之间的复杂关系。

图3 根据具体输入确定token数目

这一问题对于网络的推理效率是非常关键的。在下表中,文章使用比原文推荐值(14x14)更少的token数目训练了一个T2T-ViT-12模型,并报告了对应的测试精度和计算开销。从结果中可以看到,若将token数目设置为4x4,准确率仅仅下降了15.9%(76.7% v.s. 60.8%),但计算开销下降了8.5倍(1.78G v.s. 0.21G)。这一结果表明,正确识别占数据大多数的较“简单”的样本只需4x4或更少的token,相当多的计算浪费在了使用存在大量冗余的14x14 token表征他们。

表1 T2T-ViT-12使用更少token时的测试精度和计算开销

2

方法详述

受到上述现象的启发,本论文提出了一个动态视觉Transformer框架(Dynamic Vision Transformer,DVT),意在针对每个样本选择一个合适数目的token来进行表征。

首先介绍DVT的推理过程,如图4所示。本论文使用从小到大的token数目训练了一组Transformer模型,他们具有相同的基本结构,但是参数相互独立,以分别适应逐渐增多的token数目。

图4 Dynamic Vision Transformer(DVT)

对于任意测试样本,首先将其粗略表征为最小数目的token,输入第一个Transformer,以低计算成本迅速得到初步预测。而后判断预测结果是否可信,若可信,则直接输出当前结果并终止推理;若不可信,则将输入图片表征为更多的token,激活下一个Transformer进行更细粒度、但计算开销更大的的推理,得到结果之后再次判断是否可信,以此类推。

论文采用将预测的置信度(confidence)与一个固定阈值进行比较的方式作为准出的判断准则,关于这一方法的细节和其合理性的验证,由于空间有限,请参见paper。

值得注意的是,处于下游的Transformer可以复用先前模型已产生的深度特征和注意力图(attention maps),以尽可能避免进行冗余和重复的计算,关于这一点,将在下文详述。

在训练时,论文简单地训练网络在所有出口都取得正确的预测结果,训练目标如下式所示。其中x和y分别代表数据和标签,代表第i个出口的softmax预测概率,代表交叉熵损失。

显然,DVT框架中所有的Transformer都具有相同的训练目标。因此当一个处于下游位置的Transformer被激活时,一个显然更为高效的做法是,应当训练其在先前Transformer已提取的特征的基础上进行进一步提升,而非完全从0开始重新提取特征。出于这一点考虑,论文提出了一个特征复用机制,如下图所示。将上游Transformer最后一层输出的特征取出,经MLP变换和上采样(Upsample)后,作为上下文嵌入(Context Embedding)以Concat的方式整合入下游模型每一层的MLP模块中。

图5 特征复用(Feature Reuse)机制

除特征外,Transformer中还有一个关键的组分,即自注意力机制中的注意力图(attention maps)。视觉Transformer通过这些注意力图建模token之间的关系,从而实现对每个具体的token进行来自全局的信息整合。

在论文所提出的DVT框架中,位于下游的模型同样可以借助上游Transformer已经得到的注意力图来进行更准确的全局注意力关系建模,论文称之为关系复用,示意图如下所示。将上游模型的全部注意力图以logits的形式进行整合,经MLP变换和上采样后,加入到下层每个注意力图的logits中。这样,下游模型每一层的attention模块都可灵活复用上游模型不同深度的全部attention信息,且这一复用信息的“强度”可以通过改变MLP的参数自动地调整。

图6 关系复用(Relationship Reuse)机制

值得注意的是,对特征图进行上采样需要对其行或列进行重组后分别完成,以确保其几何关系的对应性,下图给出了一个例子。

图7 对注意力图进行上采样

由于空间有限,关于DVT的更多细节以及对两种复用机制有效性的验证、结构设计的探究和更进一步的讨论,请参见paper。

3

实验结果

DVT的一个显著优势在于,大多数的视觉Transformer均可作为其的backbone以获得更高的计算效率,在实验中,论文基于T2T-ViT和DeiT测试了所提出的的方法。

DVT(T2T-ViT-12/14)在ImageNet图像识别任务上的计算效率如下,可见该方法对backbone的提速比在1.6-3.6x,对大模型效果尤为明显。

图8 DVT(T2T-ViT)在ImageNet上的计算效率

DVT(T2T-ViT-14)在ImageNet上的实际推理速度如下,基于Nvidia 2080Ti GPU,batch size=128,在每个出口移除终止推理的样本。对于小模型,DVT可以在不减慢速度的前提下显著提升效果;对于大模型,DVT可以在不降低表现的前提下显著提速。

表2 DVT(T2T-ViT)在ImageNet上的实际速度

DVT(T2T-ViT-12/14)在CIFAR图像识别任务上的计算效率如下。

表3 DVT(T2T-ViT)在CIFAR上的计算效率

DVT(DeiT)在ImageNet图像识别任务上的计算效率如下,该方法效果同样明显。

图9 DVT(DeiT)在ImageNet上的计算效率

那么,什么样的样本适合更少的token,什么样的样本适合更多的token呢?下图给出了可视化的结果,“easy”和“hard”分别代表需要少和多的token数目。可见,后者往往包含复杂的场景、较小的物体尺寸、以及一些非常规的姿态和角度。

图10 可视化结果

4

结语

这篇工作的价值至少体现在两个方面:

(1)针对视觉Transformer提出了一个自然、通用、有效的自适应推理框架,理论和实际效果都比较显著。

(2)提出了一个颇具启发性的思路,即目前大多数视觉Transformer采用的、对全部图片以固定方式划分patch的表征方式,是不够灵活和次优的,一个更合理的策略是,应当根据输入数据动态调整表征方式。这或为开发高效、可解释性强、迁移性好的通用视觉Transformer提供了新方向。

如有任何问题,欢迎给论文作者留言或邮件

作者主页:www.rainforest-wang.cool

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

个人微信

备注:昵称+学校/公司+方向

如果没有备注不拉群!

拉你进AI蜗牛车交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65140.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内有哪些不错的计算机视觉团队?

来源:深度学习技术前沿 编辑:Evans 【导读】计算机视觉是当前人工智能领域的超级热门,本文为大家总结了当前国内比较优秀的计算机视觉团队信息,希望能在大家申请硕士或者博士的过程中,提供一些参考信息! 作…

圆形的CNN卷积核?华中科大清华黄高团队康奈尔提出圆形卷积,进一步提升卷积结构性能!

作者丨小马 编辑丨极市平台 写在前面 目前正常卷积的感受野大多都是一个矩形的,因为矩形更有利于储存和计算数据的方便。但是,人类视觉系统的感受野更像是一个圆形的。因此,作者就提出,能不能将CNN卷积核的感受野也变成圆形呢&a…

深入浅出的模型压缩:你一定从未见过如此通俗易懂的Slimming操作

点击上方“计算机视觉工坊”,选择“星标” 干货第一时间送达 作者丨科技猛兽 编辑丨极市平台 导读 本文首先介绍了模型压缩领域的指标含义,并通过梳理文献,介绍了模型压缩领域常用的方法。随后对Slimming这一模型压缩方法进行了详细介绍&…

Dropout技术之随机神经元与随机深度

1. 写在前面 在学习复现EfficientNet网络的时候,里面有一个MBConv模块长下面这个样子: 当然,这个结构本身并不是很新奇,从resNet开始,几乎后面很多网络,比如DenseNet, MobileNet系列&#xff0…

如何做高质量研究、写高水平论文?| 黄高、王兴刚等共话科研与论文写作

如何产生好的研究思路?如何撰写一篇高质量论文?如何从浩如烟海的论文中寻找好的科研灵感?如何通过Rebuttal为自己的文章扳回一城?导师跟学生之间怎样才能形成更好的合作关系? 在ECCV 2022中国预会议的Panel环节&#x…

智源青年科学家黄高:面向高效推理的深度网络结构设计

随着深度学习在工业界的广泛应用,人们对模型的关注不仅仅在于其预测精度,同时也对计算和存储效率提出了更高的要求。在提升模型效率的诸多手段中,神经网络结构创新始终是最为有效的方式之一。 2019年12月24日上午,智源青年科学家、…

RANet:MSDNet加强版!清华黄高团队提出分辨率自适应的高效推理网络RANet!

关注公众号,发现CV技术之美 本文分享论文『Resolution Adaptive Networks for Efficient Inference』,由清华黄高团队提出分辨率自适应的高效推理网络RANet!MSDNet加强版! 详细信息如下: 论文链接:https://…

ICLR2021 | 清华大学黄高团队:显存不够?不妨抛弃端到端训练

智源导读:本文主要介绍清华大学黄高团队被ICLR2021接收的一篇文章:Revisiting Locally Supervised Learning: an Alternative to End-to-End Training。 论文链接:https://openreview.net/forum?idfAbkE6ant2 代码链接:https://g…

清华大学黄高——图像数据的语义层扩增方法

⬆⬆⬆ 点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 2020 年 9 月 25 日,在由中国科协主办,清华大学计算机科学与技术系、AI TIME 论道承办的《2020 中国科技峰会系列活动青年科学家沙龙——人工智能学术生态与产业创新》上&#xf…

DenseNet发明者黄高:动态模型好在哪里?

智源导读:自2012年至今,计算机视觉领域蓬勃发展,各种模型不断涌现,短短 8 年时间,计算机视觉领域便发生了天翻地覆的变化。那么如何看待过往变化,当下研究又如何? 12月10日晚,在【青…

对话 DenseNet 一作黄高:做有韧劲、能抗压、不断探索未知的科研

点击上方“计算机视觉工坊”,选择“星标” 干货第一时间送达 作者丨刘冰一 来源丨极市平台 清华大学助理教授、密集连接卷积网络 (DenseNet)提出者 、计算机视觉领域一作顶会论文被引次数最高的国内学者、百万青橙奖奖金获得者..... 这些标签…

测试工程师的好日子来啦?Testin发布AI测试产品,提升易用性和自动化效率

2019年10月26日,以"AI未来"为主题的第二届NCTS中国云测试行业峰会在北京国际会议中心正式开幕。在本次大会上,Testin 总裁徐琨正式发布测试业务Testin云测的全新AI产品iTestin。作为 Testin 人工智能战略中的重要一环,iTestin 融合…

【CodingNoBorder - 07】无际软工队 - 求职岛:ALPHA 阶段测试报告

无际软工队 - 求职岛:ALPHA 阶段测试报告 项目内容这个作业属于哪个课程2022年北航敏捷软件工程这个作业的要求在哪里团队项目-Alpha阶段测试报告我们在这个课程的目标是熟悉敏捷开发的方法论,并通过实际开发产品进行实践。这个作业在哪个具体方面帮助我…

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称,其可读性不高;当结合 pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。 那如果希望标题可以动态的生成,采取的方案…

❀YOLOv5学习❀图像标注工具LabelImg的下载,配置和使用。

LabelImg是图形图像注释工具。它是用Python编写的,并将Qt用于其图形界面。批注以PASCAL VOC格式(ImageNet使用的格式)另存为XML文件。此外,它还支持YOLO格式。下载这个,主要是为了YOLOv5中,做自己的数据集&…

brat事件标注平台使用教程

事件图谱首先涉及到的是事件标注,我采用的是brat事件标注平台,该平台使用的是Linux系统,因为我的电脑是windows系统, 将brat安装在了linux虚拟机(Ubuntu)上。 一.下载与安装 1.下载brat 进入brat官网brat…

OpenAI 成近期顶流团队?如何使用 OpenAI 和 Node.js 构建 AI 图像生成器?

摘要: 12月7号,知名人工智能研究机构 Open AI 在Youtub上发布视频介绍使用OpenAI 和 DALL-E 模型创建一个网络应用程序,该应用程序将根据输入的文本从头开始生成图像。https://www.youtube.com/watch?vfU4o_BKaUZE 前言💖 大家好&#xff0…

AI 自动写代码插件 Copilot(副驾驶员)

AI 自动写代码插件 Copilot 提示:Copilot单词直译过来就是副驾驶员的意思。 介绍:本质上就是基于GitHub开源的亿级别的代码,训练AI模型,自动生成代码。 就是数据量(GitHub的数据量就很大!)能够决定你AI模型精度的上…

软件测试中的AI——运用AI编写测试用例

文章目录 一、现状二、测试技术可结合AI的几个方向三、尝试使用AI编写测试用例(实验过程)1、AI联系上下文的能力弱2、回答的内容类似于能在网上搜索到的内容3、需要有一个明确的指令4、输出内容有限5、无法想象到需求描述之外的内容 四、总结&#xff1a…

AI热度降温?揭秘加德纳技术成熟度曲线与AI发展阶段

一文解决你所有对 AI 的焦虑 近期,我们发现ChatGPT的热度似乎不如前几个月。许多人尝试了这个技术,觉得它非常强大,但似乎与自己的日常生活和工作关系不大,因此逐渐失去了兴趣。 然而,这实际上是技术发展的正常周期&…