关注公众号,发现CV技术之美

本文分享论文『Fast Vision Transformers with HiLo Attention』,由蒙纳士大学提出能够高效建模高低频信息的LITv2,在性能、FLOPs、吞吐量和显存消耗方面均优于现有Transformer结构!代码即将开源!

详细信息如下:

  • 论文链接:https://arxiv.org/abs/2205.13213

  • 项目链接:https://github.com/zip-group/litv2

      01      

摘要

视觉Transformer(ViT)引发了计算机视觉领域最新的重大突破。他们的高效设计主要由计算复杂性的间接指标(即FLOPs)来衡量,然而FLOPs与吞吐量等直接指标有明显的差距。因此,作者提出使用目标平台上的直接速度评估作为高效ViTs的设计原则。

具体来说,作者提出了LITv2,这是一种简单有效的ViT,在不同模型尺寸的范围内,它以更快的速度与现有的最先进的方法相比表现相当。LITv2的核心是一种新的自注意机制,作者称之为HiLo。HiLo的灵感来源于这样一种见解,即图像捕获中的高频局部细节和低频聚焦于全局结构,而多头自注意力层忽略了不同频率的特征

因此,作者提出通过将head分为两组来分离注意层中的高/低频模式,其中一组通过每个局部窗口内的自注意力对高频进行编码,另一组负责建模每个窗口的平均池化低频键与输入特征映射中的每个查询位置之间的全局关系。得益于两组的高效设计,作者通过对GPU上的FLOPs、速度和内存消耗进行全面基准测试,表明HiLo优于现有的注意力机制。

      02      

Motivation

现实世界中的应用通常要求模型在有限的计算预算下(如UAV和自动驾驶)具有最佳的速度和精度权衡。这推动了高效视觉Transformer(ViT)设计的大量工作,如PVT、Swin和Focal Transformer等。为了衡量计算复杂性,最近ViT设计中广泛采用的一个指标是浮点运算的数量,即浮点运算。然而,FLOPs是一种间接指标,不能直接反映目标平台上的真实速度。例如,Focal Tiny的速度比GPU上的Swin Ti慢得多,尽管它们的FLOPs相当。

一般而言,近期ViTs中间接指标(FLOPs)和直接指标(速度)之间的差异可归因于两个主要原因。首先,尽管自注意力在低分辨率特征图上是有效的,但由于内存访问成本高,内存和时间的二次复杂性使其在高分辨率图像上的速度慢得多,从DRAM获取数据可能会消耗速度。其次,VIT中的一些有效注意力机制理论上的复杂性保证较低,但实际上在GPU上速度较慢,因为某些操作对硬件不友好或无法并行,例如多尺度窗口划分、递归和扩展窗口。

根据这些观察结果,在本文中,作者提出通过直接通过吞吐量来评估ViT,而不仅仅是FLOPs。基于这一原理,作者提出了LITv2,这是一种新型高效、准确的视觉Transformer,在标准基准上优于最先进的ViT,而在GPU上则运行更快。LITv2是建立在LITv1基础上的,LITv1是一个简单的ViT baseline,它在早期阶段删除所有多头自注意力层(MSA),而在后期阶段应用标准MSA。得益于这种设计,LITv1比ImageNet分类的许多现有工作都要快,因为早期的MSA不需要计算成本,而后期的MSA只需要处理下采样的低分辨率特征图。然而,对于高分辨率图像,尤其是密集预测任务,标准MSA仍然存在巨大的计算开销。

为了解决这个问题,作者提出了一种新的高效注意力机制,称为HiLo。HiLo的动机是,自然图像包含丰富的频率,其中高/低频分别在编码图像模式(即局部精细细节和全局结构)时发挥不同的作用。典型的MSA层在所有图像块上实施相同的全局注意力,而不考虑不同底层频率的特征。这促使本文提出将MSA层分为两条路径,其中一条路径通过具有相对高分辨率特征映射的局部自注意力对高频交互进行编码,而另一条路径通过具有下采样特征映射的全局注意力对低频交互进行编码,从而大大提高了效率。

具体而言,HiLo采用两种有效的方法来分离特征图中的高/低频。如上图所示,在上面的路径中,作者将几个头分配给高频注意(Hi-Fi),以通过局部窗口自注意力(例如,2×2窗口)捕获细粒度的高频,这比标准MSA要高效得多。

下面的路径实现低频注意力(Lo-Fi),首先对每个窗口应用平均池化以获得低频信号。然后,为Lo-Fi分配剩余的头,以建模输入特征映射中的每个查询位置与每个窗口的average-pooled低频键之间的关系。由于键和值的长度缩短,Lo-Fi还显著降低了复杂性。

最后,concat细化的高/低频特征,并将结果输出输入到后续层。由于Hi-Fi和Lo-Fi均未配备诸如扩展窗口和递归等耗时操作,因此HiLo的总体框架在GPU上运行速度很快。通过全面的基准测试表明,HiLo在性能、FLOPs、吞吐量和内存消耗方面优于现有的注意力机制。

此外,作者发现LITv1中的固定相对位置编码由于不同图像分辨率的插值,大大降低了密集预测任务的速度。为了提高效率,作者提出在每个FFN中采用一个3×3深度卷积层来隐式学习的位置信息。此外,3×3卷积滤波器同时有助于扩大LITv1中早期多层感知机(MLP)块的感受野。最后,作者在ImageNet、COCO和ADE20K上进行了大量实验,以评估LITv2的性能。与SoTA模型的全面比较表明,本文的结构以更快的吞吐量实现了有竞争力的性能,使VIT更适合在真实场景中运行低延迟应用程序。

      03      

方法

3.1 HiLo Attention

自然图像包含丰富的频率,其中高频捕捉对象的局部细节(如线条和形状),低频编码全局结构(如纹理和颜色)。然而,在一个典型的MSA层中,全局自注意并没有考虑不同底层频率的特征。为此,作者提出在注意力层分别处理特征图中的高频/低频。作者将新的注意力机制命名为HiLo。如上图所示,HiLo包含高频注意力(Hi-Fi)和低频注意力(Lo-Fi),用于在特征图中模拟不同频率上的关系。

High-frequency attention (Hi-Fi)

直观地说,由于高频对对象的局部细节进行编码,因此在特征图上应用全局注意力可能是多余的,并且计算代价高昂。因此,作者设计Hi-Fi,以捕获具有局部窗口自注意的细粒度高频(例如,2×2窗口),从而节省大量计算复杂性。此外,作者在Hi-Fi中使用了简单的非重叠窗口分区,与耗时的操作(如窗口移位或多尺度窗口分区)相比,它对硬件更加友好。

Low-frequency attention (Lo-Fi)

最近的研究表明,MSA中的全局注意力有助于捕捉低频信息。然而,将MSA直接应用于高分辨率特征图需要巨大的计算成本。由于平均池化是一种低通滤波器,Lo-Fi首先对每个窗口应用平均池化,以获得输入X中的低频信号。接下来,将平均池化后的特征映射投影到键和值,其中s是窗口大小。Lo-Fi中的查询Q仍然来自原始特征图X。然后,作者应用标准注意力来捕获特征图中丰富的低频信息。由于K和V的空间减少,Lo-Fi同时降低了复杂性。

Head splitting

头分配的一个简单解决方案是将Hi-Fi和Lo-Fi的头分配为与标准MSA层相同的数目。然而,加倍的头会导致更多的计算成本。为了获得更好的效率,HiLo将与MSA中相同数量的头部分为两组,分割比率为α,其中头用于Hi-Fi,其他的个头用于Lo-Fi。这样,由于每个注意力的复杂性都低于标准MSA,整个HiLo框架保证了低复杂性,并确保了GPU上的高吞吐量。此外,头分配的另一个好处是,可学习参数可以分解为两个较小的矩阵,这有助于减少模型参数。最后,HiLo的输出是每个注意力输出的concat结果:

其中[·]表示concat操作。

Complexity Analysis

在不丧失一般性的情况下,作者假设Hi-Fi和Lo-Fi具有相同数量的head(即α=0.5),并且特征图具有相同的宽度和高度。然后,Hi-Fi和Lo-Fi的计算成本分别为和。如上图(a)和(b)所示,在较小的输入图像分辨率和较小的s值(例如,s=2)下,Hi-Fi和Lo-Fi都具有相当的效率。

然而,对于更高的分辨率,Lo-Fi将导致巨大的计算成本,因为它仍然具有与N相关的二次复杂度,即。在这种情况下,稍微增加s(例如,s=4)有助于在保持准确度的同时实现更好的Lo-Fi效率。将这两个注意力结合在一起,较大的窗口大小也有助于HiLo的整体框架减少高分辨率图像上的更多FLOPs,如上图(c)所示。因此,本文提出在现有框架中采用HiLo的建议是:增加窗口大小,以便在高分辨率图像上获得更好的效率。

3.2 Positional Encoding

由于位置编码的置换不变性,它对自注意力至关重要。在LITv1中,后面的MSA采用与Swin相同的相对位置编码(RPE)方案。与使用绝对位置编码相比,这种方法在ImageNet上的Top-1精度方面显著提高了0.7%。然而,在密集预测任务中,必须针对不同的图像分辨率对固定RPE进行插值,这大大降低了LITv1的训练/推理速度。

最近的一项研究表明,在CNN中,位置信息可以通过零填充隐式学习,因此作者提出在每个FFN中采用一层3×3深卷积层和零填充来代替耗时的RPE。值得注意的是,由于早期MSA的消除,LITv1中的早期的模块中只剩下FFN,这导致了1×1的微小感受野。

3.3 Model Architecture

LITv2有三个变体:LITv2-S、LITv2-M和LITv2-B,分别对应于LITv1中的small、medium和base设置。为了进行公平的比较,作者将网络宽度和深度保持与LITv1相同。

总体修改只需两个步骤:

  1. 在每个FFN中添加一层深度卷积(零填充),并删除所有MSA中的所有相对位置编码。

  2. 用提出的HiLo注意替换所有注意力层。具体的模型结构和不同变体的参数设置如上图和上表所示。

      04      

实验

在上表中,作者报告了在ImageNet-1K上的实验结果。首先,与LITv1相比,LITv2在使用更少的FLOPs的同时,在Top-1精度上实现了一致的改进。此外,得益于HiLo,与LITv1相比,LITv2实现了更快的吞吐量和显著的训练时显存减少(例如,小型、中型和基础设置的推理速度分别为13%、27%和36%)。其次,与CNN相比,LITv2模型在FLOPs、吞吐量和内存消耗方面优于ResNet和ConvNext的所有模型,同时实现了可比的性能。

在上表中,作者报告了COCO的实验结果。一般来说,LITv2在几乎所有指标上都比LITv1有很大的优势。此外,本文的LITv2在AP方面显著优于ResNet,尽管在某些情况下运行稍慢。更重要的是,本文的LITv2击败了所有比较的SoTA VIT,以令人信服的快速推理速度实现了最佳AP。此外,通过采用更大的窗口大小(即s=4),LITv2在性能略有下降的情况下实现了更好的效率。

在上表中,作者将LITv2与ResNet以及ADE20K上的代表性VIT进行了比较。总的来说,LITv2实现了较快的速度,同时优于许多SoTA模型。

基于LITv2-S,作者比较了HiLo与ImageNet-1K上其他有效注意力机制的性能。在我本文实现中,作者直接用每个比较的方法替换HiLo。结果见上表。一般来说,HiLo减少了更多的浮点运算,同时获得了比比较方法更好的性能和更快的速度。

此外,在上图中,作者提供了基于不同图像分辨率的更多注意力机制的综合基准。由于并行性较差,它们甚至比在GPU上使用标准MSA还要慢。和它们相比,HiLo在FLOPs、吞吐量和内存消耗方面取得了有竞争力的结果。

如上图所示,在224×224的分辨率和窗口大小为2的条件下,Lo-Fi的复杂度低于Hi-Fi。因此当作者为Lo-Fi分配更多的头时,较大的α有助于减少更多的FLOPs。此外,作者发现HiLo在α=0时表现不佳,在这种情况下,只剩下Hi-Fi,HiLo只关注高频。对于α的其他值,作者发现性能差异约为0.2%,其中α=0.9可获得最佳性能。

基于LITv2-S,作者探讨了模型结构修改的影响。如上表所示,受益于早期扩大的感受野,深度卷积的采用提高了ImageNet和COCO的性能。接下来,通过删除相对位置编码,显著提高了密集预测任务的FPS,但两个数据集的性能都略有下降。最后,得益于HiLo,本文模型在ImageNet和COCO上都获得了更高的模型效率。

在上图中,作者分别显示了Hi-Fi和Lo-Fi注意力的输出特征图的频率幅度。可视化显示,Hi-Fi捕捉到更多的高频,而Lo-F主要集中在低频。这与在单个注意层上分离特征图中的高频和低频的目标非常一致。

      05      

总结

在本文中,作者提出了LITv2,这是一种新型高效的视觉Transformer主干,在GPU上速度很快,在ImageNet和下游任务上优于大多数SoTA模型。作者还提出了HiLo attention,它是LITv2的核心,有助于实现更好的效率,尤其是在高分辨率图像上。

在具有竞争性的性能的情况下,HiLo在FLOPs、吞吐量和内存消耗方面比现有的注意力机制具有很大的优势。HiLo采用头分割比率将不同数量的头分配到Hi-Fi和Lo-Hi中。在本文的实验中,这个比率是通过ImageNet上的网格搜索确定的(即α=0.9)。然而,不同的任务在高频和低频上可能有不同的重要性。因此,α的最佳值是特定于任务的,需要手动设置。

参考资料

[1]https://arxiv.org/abs/2205.13213
[2]https://github.com/zip-group/litv2

END

加入「Transformer交流群

蒙纳士大学提出高效建模高低频信息的LITv2,在性能、FLOPs、吞吐量和显存消耗方面均优于现有Transformer结构!...相关推荐

  1. 东南蒙纳士计算机复试,2016年东南大学——蒙纳士大学双硕士学位研究生复试通知...

    复试基本要求 按<2016年东南大学--蒙纳士大学双硕士学位研究生调剂招生办法>要求,其中外校调剂生初试成绩不得低于国家线要求. 二.复试形式.内容和要求 复试工作由相关培养学院组织,考生 ...

  2. 蒙纳士大学计算机类,蒙纳士大学计算机专业优势

    蒙纳士大学是"澳大利亚八校联盟"中唯一一所拥有独立信息技术学院的高校.这使我们能够同时在课程的广度和深度上给学生提供最佳的选择. 专业认证 学院的所有本科课程以及除数据科学硕士外所 ...

  3. 东南大学蒙纳士学院计算机qq群,2016东南大学-蒙纳士大学调剂复试经验及笔试题目分享...

    本帖最后由 zero立 于 2016-4-15 22:02 编辑 拟录取已经有一段时间了,能够被东蒙录取也是很幸运,过程一波三折,具体就不展开多讲了:考研期间从王道获得的信息很多也很有用,本着予人玫瑰 ...

  4. 蒙纳士大学 英伟达发布 2021 年医疗视觉问答

    论文:Medical Visual Question Answering: A Survey 作者:Zhihong Lin,Donghao Zhang,Qingyi Tac,Danli Shi,Gho ...

  5. 【调剂经验】19年一战东南大学计算机专硕调剂蒙纳士,初复试经验调剂经验分享!...

    转载于 王道论坛 原作者 tingzhu 3月28日,东南的考研考研复试结果基本都出来了,一年的考研之路也算是告一段落了.从2018年4月8号第一天开始复习起,到现在这个结果也是对的住自己的一年努力吧 ...

  6. 【考研经验】2018东南大学蒙纳士 调剂+逆袭 复试全程+真题回忆 干货+经验分享...

    转载于王道论坛,原文作者 hanxu1997 点击原文链接,可进入原帖. 2018东南蒙纳士苏州联合研究生院 调剂+逆袭 复试全程+真题回忆   干货+经验分享 那天上午,觉得复试希望不大,已经找好工 ...

  7. 2019年东南大学蒙纳士553C++编程题

    第一题:输入3个数字,判断能不能形成一个三角形.能则输出面积.(公式给你了,感觉主要考的是sqrt函数). 第二题:用递归方法将一个数组转置,并按顺序输出. 第三题:编写一个IntSet类,至少两个成 ...

  8. 2017年东南大学蒙纳士553C++编程题

    题目: 从文件读入一个字符串,对其进行奇偶排序,使字母都按顺序排列. 奇偶排序:每个奇数的字符开始,依次比较,若a[i-1]>a[i]或者a[i]>a[i+1]则交换:再从偶数的字符开始, ...

  9. 无需用户输入,Adobe提出自动生成高质量合成图像新方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 没有用户输入,也能生成高质量的合成图像吗? 编辑:迈威AI研习社 ...

最新文章

  1. 这个假发太逼真!GAN 帮你换发型,alignment 步骤去掉生硬感
  2. html自定义标签提示,用简单的jquery+CSS创建自定义的a标签title提示tooltip_HTML/Xhtml_网页制作...
  3. 怎么找回失踪的NTLDR文件
  4. 微博:吃饭砸锅的艺术
  5. boost::hana::one用法的测试程序
  6. HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)
  7. sping jdbc 链接mysql_Spring Boot JDBC 连接数据库示例
  8. python用装饰器实现缓存函数执行结果
  9. 服务器系统更新要多久,请问系统服务器多长时间更新一次
  10. pythonopencv算法_opencv python 光流法
  11. WIN7中文专业版安装英文语言包的方法
  12. 计算机无法启动printspooler,Win7系统下print spooler服务无法启动的解决方法
  13. JSP+JavaBean实现简单计算器
  14. 星星之火可以燎原鸿蒙,余承东:没有人能够熄灭满天星光 星星之火可以燎原...
  15. 一学就会的 WordPress 实战课
  16. 电话号码归属地批量查询软件选择需谨慎
  17. Android之画图
  18. 达梦数据库 ,无效的列名, org.springframework.dao.DataIntegrityViolationException: Hibernate-related JDBC operat
  19. javaWeb课程设网上报名系统
  20. SpringCloud 笔记

热门文章

  1. 透过招股书看知乎的价值投资逻辑
  2. 无法删除IE图标(被劫持)
  3. 魅族ROOT在线申请地址
  4. 收藏!2020上半年社区精华教程盘点
  5. ubuntu系统安装微信过程与问题解决记录
  6. 美女照相怎么摆pose
  7. boost之signal的使用
  8. 女程序员们的结婚要求
  9. PhoneGap VS. Titanium
  10. 优秀Android程序员必知必会的网络基础,Android开发面试题及答案