[Transformer] Conformer: Local Features Coupling Global Representations for Visual Recognition

https://arxiv.org/abs/2105.03889

https://github.com/pengzhiliang/Conformer

ICCV2021

Conformer的组成成分:a stem moduledual branchesFCUstwo classifiers

Stem module7*7 conv with stride 23*3 max pooling with stride 2

dual branchesCNN分支(ResNet,提取局部信息)和transformer分支(ViT,提取全局信息)

Feature Coupling UnitFCU):结合这两种不同的信息

CNN branch

采用特征金字塔结构,特征图的分辨率随网络深度的增加而降低,而通道数增加。

整个分支分为4 stage,每个stage由多个卷积块组成,每个卷积块包含ncbottleneck

按照ResNet中的定义,bottleneck包含一个1*1 down-projection convolution、一个3*3空间卷积、一个1*1 up-projection convolution,以及输入和输出之间的残差连接。

在实验中,第一个卷积块的nc设为1,随后的N-1个卷积块中nc大于等于2

Visual transformers 将图像 patch 投影到一个向量中,导致局部细节丢失。而在 CNN 中,卷积核在重叠的特征图上滑动,这提供了保留精细局部特征的可能性。因此,CNN 分支能够为 transformer 分支连续提供局部特征细节。

Transformer branch

在 ViT 之后,这个分支包含 N 个重复的 Transformer blocks。每个 transformer block 由一个多头自注意力模块(multi-head self-attention module)和一个 MLP block(包含一个上投影 fc 层和一个下投影 fc 层)组成。LayerNorms应用于自注意力层和 MLP block 中的每一层和残差连接之前。对于 tokenization,通过线性投影层( linear projection layer)将主干模块生成的特征图压缩为没有重叠的 14×14 patch embeddings,该线性投影层是一个 4×4 卷积,步长为 4。然后将类 token添加到 patch embeddings 进行分类。考虑到 CNN 分支(3×3 卷积)对局部特征和空间位置信息进行编码,不再需要位置 embeddings。这有助于提高下游视觉任务的图像分辨率。

Feature Coupling Unit

CNN得到的特征图和transformer得到的patch embeddings之间存在偏差,因此提出FCU以交互的方式将局部特征与全局表示耦合起来。

一方面,CNN 和 transformer 的特征维度是不一致的。 CNN 特征图的维度为 C × H × W(C、H、W 分别为通道、高度和宽度),而 patch embeddings 为 (K + 1) × E,其中 K、1 和 E分别表示图像块 patches 的数量、类 token 和 embedding 维度。

当输入到 Transformer 分支时,特征图首先需要通过 1×1 卷积来对齐 patch embeddings 的通道数。然后使用下采样模块来完成空间维度对齐。最后,特征图添加了 patch embeddings。

当从 transformer 分支反馈到 CNN 分支时,patch embeddings 需要上采样以对齐空间尺度。然后通过 1×1 卷积将通道维度与 CNN 特征图的维度对齐,并添加到特征图中。同时,使用 LayerNorm 和 BatchNorm 模块对特征进行正则化。

另一方面,特征图和patch embeddings存在很大的语义区别。特征图是通过局部的卷积操作得到的,而patch embeddings是通过全局的自注意力机制得到的。FCU应用于每个block中,从而弥合这种语义之间的差距。

可视化后发现:

  • ConformerCNN分支相比传统CNNResNet),倾向于激活更大的区域,而不是局部区域,这表明transformerCNN的耦合增强了长距离特征依赖性。图1f4a
  • transformer分支的patch embeddings因为CNN分支提供的局部特征而保留了局部细节。图1d)(h
  • 注意力区域更完整,而背景被抑制,这证明Conformer学习到的特征表示具有较高的判别能力。图4b

通过调整 CNN 和 Transformer 分支的参数,得到了模型的一些变体,分别为 Conformer-Ti、-S 和 -B。 Conformer-S 的详细信息在table 1中。Conformer-Ti/B 见附录。Conformer-S/32 将特征图拆分为 7×7 个 patches,transformer 分支中的 patch 大小为 32×32。

Conformer 在 ImageNet-1k(有 1.3M images)训练集上训练,并在验证集上进行测试。为了使 transformer 收敛到合理的性能,我们遵循 DeiT中的数据增强和正则化方法。这些方法包括 Mixup、CutMix、Erasing、Rand Augment 和 Stochastic Depth。

模型使用 AdamW 优化器训练了 300 个 epoch,batchsize 为 1024,weight decay 为 0.05。初始学习率设置为 0.001,并按 cosine schedule 衰减。

为了验证 Conformer 的多功能性,在 MSCOCO 数据集上的 instance-level 任务(目标检测)和 pixel-level 任务(实例分割)上对其进行了测试。Conformer 作为主干,在没有额外设计的情况下进行迁移。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值