【ICCV2023】Scale-Aware Modulation Meet Transformer

2023-11-29 11:40

本文主要是介绍【ICCV2023】Scale-Aware Modulation Meet Transformer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Scale-Aware Modulation Meet Transformer, ICCV2023

论文:https://arxiv.org/abs/2307.08579

代码:https://github.com/AFeng-x/SMT

解读:ICCV2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花? - 知乎 (zhihu.com)

摘要

本文提出了一种新的视觉变换器——尺度感知调制变换器(Scale-Aware Modulation Transformer, SMT),通过将CNN和ViT相结合,可以有效地处理各种下游任务。SMT中提出的尺度感知调制(SAM)包括两个主要的新颖设计:

  • 多头混合卷积(MHMC)模块,该模块可以捕捉多尺度特征并扩展感受野。
  • 规模感知聚合(SAA)模块,该模块重量轻但有效,能够实现不同头部的信息融合。通过利用这两个模块,卷积调制得到了进一步增强。

此外,本文提出一种进化混合网络(Evolutionary Hybrid Network,EHN),它可以有效地模拟随着网络变得更深而从捕获局部依赖性到全局依赖性的转变,从而获得更优的性能。在ImagNet、COCO以及ADE20k等任务上都验证了该模型的有效性。SMT在ImageNet-22k上预训练后以仅仅80.5M的参数量在ImageNet-1k上达到了88.1%的精度。

简介

对于多层级的网络架构来说,由于浅层特征图分辨率大的原因,使用ViT的自注意力的二次复杂性会带来严重的计算负担。因此,如何为浅层stage设计高效的attention计算机制是十分重要的。

  • 以往的大部分Hierarchical(Multi-scale)的模型,以Swin为代表,以及CvT,PvT,Shunted Transformer等等,其贡献点都是设计一种更高效的attention计算单元。
  • 另外一些方法并不直接改善attention,而是将CNN与Transformer结构混合,降低计算成本,并融合两种结构的优势。

ViT论文中提出,Transformer模型的注意力捕捉依赖关系为,浅层捕捉local信息,深层捕捉global信息,而这种特性在多层级网络架构上也会出现。在浅层使用CNN替代Transformer可以有效地降低attention计算成本,还能更好地建模局部信息。

但,简单地把卷积直接作用于特征图并不能有效获取所需信息。卷积调制网络,利用卷积调制可以聚合周围的上下文并自适应地调制,使得其建模能力更强。

因此,本文提出一种新的卷积调制,尺度感知调制(Scale-Aware Modulation,SAM),包括两个模块:多头混合卷积(Multi-Head Mixed Convolution,MHMC) 和 尺度感知聚合(Scale-Aware Aggregation,SAA)

  • MHMC模块旨在增强感受野并同时捕捉多尺度特征。
  • SAA模块旨在有效地聚合不同头部的功能,同时保持轻量级架构。

尽管有这些改进,但SAM在捕捉长期依赖方面没有达到自我关注机制。为此,提出了一种新的混合调制变压器架构,称为进化混合网络(Evolutionary Hybrid Network,EHN)。

  • 具体而言,在前两个阶段引入SAM区块,在后两个阶段纳入Transformer区块,同时在倒数第二阶段引入新的堆叠策略。该体系结构不仅模拟了从浅层到深层的长程依赖关系的变化,而且使每个阶段的每个块都能匹配其计算特性,从而提高了各种下游任务的性能。

总体而言,提出的架构称为尺度感知调制转换器(SMT)。

SMT方法

SMT网络包括四个阶段,每个阶段的下采样率为{4, 8, 16, 32}。

  • 首先在前两个阶段采用尺度感知调制(SAM),
  • 然后在倒数第二个阶段中依次堆叠一个SAM Block和一个多头自注意力(MSA) Block,以建模从捕捉局部到全局依赖关系的转变。
  • 对于最后一个阶段,仅使用MSA块来有效地捕捉长距离依赖关系。

Scale-Aware Modulation

SAM模块包括两个关键部分:MHMC 和 SAA 。 

 Multi-Head Mixed Convolution(MHMC)

引入了具有不同卷积核大小的多个卷积层,使其能够捕捉多个尺度上的空间特征。当N head设置得较大时,能够引入大卷积核来扩大感受野,增强其建模长距离依赖关系的能力。如图2(b)所示,MHMC将输入通道分为N个头,对每个头应用独立的深度可分离卷积。将卷积核大小初始化为3x3,并逐头递增。通过调整头的数量来调节感受野的范围和多粒度信息。

​​​​

如图4(a)所示,每个不同的卷积特征图都学习以自适应的方式关注不同的粒度特征,正如预期的那样。值得注意的是,当通过可视化图中的调制图来比较单头和多头时。4(b),发现多头下的可视化在第一阶段准确地描绘了前景和目标对象,同时有效地过滤了背景信息。此外,随着网络的深入,它仍然可以呈现目标对象的整体形状,而与细节相关的信息在单头卷积下丢失。这表明,MHMC在浅层阶段比单个头部更好地捕捉局部细节,同时随着网络的深入,保持目标对象的详细和语义信息。

Scale-Aware Aggregation

为了增强MHMC中多个头之间的信息交互,引入了一种新的轻量化聚合模块,称为多尺度感知聚合(SAA),如图2(c)所示。SAA首先对MHMC生成的不同粒度的特征进行重组和分组。具体而言,从每个头中选择一个通道来构建一个组,然后在每个组内进行up-down的特征融合,从而增强多尺度特征的多样性。Num_group = C / N_head,C为输入通道数,这意味着组的数量与MHMC中头的数量成反比,每个组里只包含N个特征通道。随后,使用1x1卷积进行组内-组间模式的跨组信息融合,从而实现轻量且高效的聚合效果。

图5显示,SAA模块明确地增强了语义相关的低频信号,并精确地关注了目标对象的最重要部分。例如,在第2阶段,眼睛、头部和身体被清楚地突出显示为目标对象的基本特征,从而显著提高了分类性能。与卷积映射预聚合相比,SAA模块展示了更好的能力来捕捉和表示视觉识别任务的基本特征。

Scale-Aware Modulation Transformer

在使用MHMC捕捉多尺度空间特征并通过SAA进行聚合后,获得一个输出特征图,称为调制器Modulator。然后,使用标量乘积采用这个调制器来调制 V。

 

Evolutionary Hybrid Network 

提出根据网络的捕捉范围依赖关系的变化模式重新分配适当的计算模块,以实现更好的计算性能。提出两种混合堆叠策略用于倒数第二个阶段,(i) 依次堆叠一个SAM块和一个MSA块。(ii) 在stage的前半部分使用SAM块,在后半部分使用MSA块。(i)混合堆叠策略更加有效。

计算了倒数第二个阶段中MSA块的相对感受野。浅层layer的相对感受野开始阶段有一个轻微的下降趋势。这种下降可以归因于SAM对早期MSA Block的影响,将这种现象称为计算单元磨合适应期。而随着网络的加深,可以看到感受野呈平稳上升的趋势,这表明提出的进化混合网络有效地模拟了从局部到全局依赖捕捉的过渡。

实验

对比实验

分类任务: 

 

目标检测任务: 

 

分割任务: 

 

 消融实验

 

 

 

 

这篇关于【ICCV2023】Scale-Aware Modulation Meet Transformer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/432677

相关文章

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

Transformer从零详细解读

Transformer从零详细解读 一、从全局角度概况Transformer ​ 我们把TRM想象为一个黑盒,我们的任务是一个翻译任务,那么我们的输入是中文的“我爱你”,输入经过TRM得到的结果为英文的“I LOVE YOU” ​ 接下来我们对TRM进行细化,我们将TRM分为两个部分,分别为Encoders(编码器)和Decoders(解码器) ​ 在此基础上我们再进一步细化TRM的

LLM模型:代码讲解Transformer运行原理

视频讲解、获取源码:LLM模型:代码讲解Transformer运行原理(1)_哔哩哔哩_bilibili 1 训练保存模型文件 2 模型推理 3 推理代码 import torchimport tiktokenfrom wutenglan_model import WutenglanModelimport pyttsx3# 设置设备为CUDA(如果可用),否则使用CPU#

逐行讲解Transformer的代码实现和原理讲解:计算交叉熵损失

LLM模型:Transformer代码实现和原理讲解:前馈神经网络_哔哩哔哩_bilibili 1 计算交叉熵目的 计算 loss = F.cross_entropy(input=linear_predictions_reshaped, target=targets_reshaped) 的目的是为了评估模型预测结果与实际标签之间的差距,并提供一个量化指标,用于指导模型的训练过程。具体来说,交叉

android xml之动画篇 alpha、scale、translate、rotate、set的属性及用法 和

1.简介 Android的补间动画TweenAnimation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《Animation Resources》 逐帧动画 FrameAnimation(也称 Drawable Animation  ):animation-list alpha 渐变透明度动画效果 scale 渐变

深度学习每周学习总结N9:transformer复现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 多头注意力机制前馈传播位置编码编码层解码层Transformer模型构建使用示例 本文为TR3学习打卡,为了保证记录顺序我这里写为N9 总结: 之前有学习过文本预处理的环节,对文本处理的主要方式有以下三种: 1:词袋模型(one-hot编码) 2:TF-I

RNN发展(RNN/LSTM/GRU/GNMT/transformer/RWKV)

RNN到GRU参考: https://blog.csdn.net/weixin_36378508/article/details/115101779 tRANSFORMERS参考: seq2seq到attention到transformer理解 GNMT 2016年9月 谷歌,基于神经网络的翻译系统(GNMT),并宣称GNMT在多个主要语言对的翻译中将翻译误差降低了55%-85%以上, G

Android AnimationDrawable资源 set[translate,alpha,scale,rotate]

本文内容摘自《疯狂Android讲义 第三版-李刚著作》 xml <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true"android:f

Spring源码学习--Aware相关接口(beanNameAware接口/BeanFactoryAware接口/ApplicationContextAware接口)

可以先这样理解在Spring中以Aware结尾的接口的功能 看到Spring源码中接口以Aware结尾的接口(XXXAware)在Spring中表示对XXX可以感知,通俗点解释就是:如果在某个类里面想要使用spring的一些东西,就可以通过实现XXXAware接口告诉Spring,Spring看到后就会给你送过来,而接收的方式是通过实现接口唯一方法set-XXX.比如:有一个类想要使用当前

ModuleNotFoundError: No module named ‘diffusers.models.dual_transformer_2d‘解决方法

Python应用运行报错,部分错误信息如下: Traceback (most recent call last): File “\pipelines_ootd\unet_vton_2d_blocks.py”, line 29, in from diffusers.models.dual_transformer_2d import DualTransformer2DModel ModuleNotF