点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

转载自:AIWalker

大家好,我是Happy。

前段时间MLP-Mixer提出后,引发了视觉架构圈的一篇轰动,由此引发了关于“MLP->CNN->Transformer->MLP”怪圈的“恐慌”。今天,港中文李鸿升团队从一个更广义的视角对Transformer、深度卷积以及MLP-Mixer进行了“大一统”,并由此提出Container,该方案在图像分类、目标检测以及实例分割方面取得显著的性能提升。

标题&作者团队
论文下载链接:https://arxiv.org/abs/2106.01401

httpsAbstract

CNN在计算机视觉领域无处不在,并且具有无数有效、高效的改进。近年来,NLP领域中的Transformer已开始在CV领域发力并逐步占领不少CV子领域的高地。尽管早期的用户仍继续采用CNN骨干,但最新的一些网络则逐渐变成了无CNN的Transformer方案。近期另一项令人惊讶的发现表明:不带任何卷积或者Transformer,仅由简简单单的MLP构成的方案可以取得非常有效的视觉表达

尽管CNN、Transformer以及MLP-Mixer可能会被视作完全独立的架构,我们提供了一个统一视角表明:它们均是更广义方案下通过神经网络集成空间上下文信息的特例。我们提出了CONTAINER(CONText AggregatIon NEtwoRK),一种用于多头上下文集成(Context Aggregation)的广义构建模块,它可以类似Transformer捕获长距离相互作用,同时可以类似局部卷积探索归纳偏置进而导致更快的收敛速度

仅需22M参数量,所提CONTAINER在ImageNet数据集取得了82.7%的的top1精度,以2.8%优于DeiT-Small;此外仅需200epoch即可达到79.9%的top1精度。不同于难以扩展到下游任务的Transformer方案(因为需要更高分辨率),该方案CONTAINER-LIGHT可以嵌入到DETR、RetinaNet以及Mask-RCNN等架构中用于目标检测、实例分割任务并分别取得了6.6,7.6,6.9指标提升。相比DeiT,在DINO框架(自监督学习)下,所提方法取得了令人非常有竞争力的结果。

总而言之,本文有以下几点贡献:

  • 提出了关于主流视觉架构的一个统一视角;

  • 提出了一种新颖的模块CONTAINER,它通过可学习参数和响应的架构混合使用了静态与动态关联矩阵(Affinity Matrix),在图像分类任务中表现出了很强的结果;

  • 提出了一种高效&有效的扩展CONTAINER-LIGHT在检测与分割方面取得了显著的性能提升。

Method

首先,我们对神经网络中常用的近邻/上下文集成模块提供了一个广义视角;然后,我们对三个主流架构进行回顾并表明它们是该广义视角下的特例;最后,我们提出了所提CONTAINER及其高效版本CONTAINER-LIGHT。

Contextual Aggregation for Vision

假设输入为















,它首先平展为一系列词并送入到网络中。视觉网络通常采用堆叠带残差连接的模块方式,可定义如下:






















我们首先定义关联矩阵















用于表示用于上下文集成的近邻,上述公式可以重写如下:



















其中













表示X的变换:























均为可学习参数。













表示















之间的关联值。V与关联矩阵相乘则在特征值之间进行的信息流动。这种上下文集成模块(Context Aggregation Block, CAB)的建模能力可以通过引入多个关联矩阵提升,使得网络可以在X之间构建多个上下文关联路径。上式的多头版本定义如下:











表示不同头的关联矩阵,不同的关联矩阵可以捕获不同的相关性,进而可以提升上下文集成的表达能力。注:上下文集成过程中仅仅产生了空间信息流动,而未发生跨通道信息交互,同时不存在非线性激活函数

The Transformer, Depthwise Convolution and MLP-Mixer

Transformer, Depthwise Convolution以及MLP-Mixer是计算机视觉中三个独立的基础模块。接下来,我们将表明:通过定义不同的关联矩阵,它们均可以通过前述上下文集成模块表示

Transformer 在Transformer的自注意力机制中,关联矩阵通过投影query-key对之间的相似性建模。以带M头为例,m头的关键矩阵













可以写成如下形式:

其中,












分别表示m头的key与query。自注意力中的关联矩阵可以动态生成并可以捕获实例级信息。然而,这种表达方式会带来二阶计算复杂度,对于高分辨率特征而言,计算量尤其大。

Depthwise Convolution 卷积操作可以同时进行空域与通道信息集成。这与上述上下文集成模块不同。然而,深度卷积是组卷积的极限特例。考虑到CAB的头数等于通道数C,我们定义如下卷积关联矩阵:

其中,













表示m头时















之间的关联值。注:不同于自注意力中的关联矩阵随输入动态变化,卷积中的关联矩阵是静态的

MLP-Mixer 近期新提出的MLP-Mixer不依赖于任何卷积或者自注意力模块,MLP-Mixer的核心为转置MLP操作,它可以表示为:
























。对此我们可以定义如下关联矩阵:





























其中











表示可学习参数。这种简单的工时表明:转置MLP操作本身即是一种上下文集成操作。相比自注意力与深度卷积,转置MLP关联矩阵是静态的、稠密的、参数不共享

上面简单的统一揭示了Transformer、深度卷积以及MLP-Mixer之间的相似与区别。也就是说,每个模块都可以通过定义不同的关联矩阵而得到。这种发现驱使我们构建一种更强有力、高效的基础模块CONTAINER用于视觉任务。

The CONTAINER Block

正如前面所提到:不同的架构或采用静态,或采用动态关联矩阵进而具有了各自不同的优势。我们所提模块CONTAINER通过可学习参数组合两种两类型的关联矩阵。单头CONTAINER定义如下:

其中,









表示由X动态生成,而






表示静态关联矩阵。接下来,我们呈现几个关于CONTAINER模块的特例。





























  • :带自注意力的朴素Transformer模块;
































  • :深度卷积模块。在深度卷积中,每个通道具有不同的静态关联矩阵。































  • : MLP-Mixer模块。当






    时,我们称之为为MH-MLP:即将通道拆分为M个组,每个组实行不同的MLP以捕获静态关联。

  • :该模块同时融合了动态与静态信息,但静态关联集成了MLP-Mixer矩阵。我们称之为CONTAINER-PAM。

  • :该模块同时融合了动态与静态信息,但静态关联集成了深度卷积矩阵。该静态关联矩阵包含了平移不变局部约束,使其更适用于视觉任务。此为我们实验中的默认配置。

所提CONTAINER非常容易实现并可以轻易嵌入到现有神经网络中。上述不同版本的CONTAINER会产生不同的架构、不同的性能,并呈现出不同的优势与局限性。因为动态矩阵与静态矩阵可以线性组合,CONTAINER模块的计算复杂度与朴素Transformer相当

The CONTAINER Network Architecture

在这里,我们将提供实验中的基础架构。前文的统一表达使得我们可以方便与自注意力、深度卷积以及MLP进行对比。

受启发于已有工作,所提架构包含4个阶段。不同于ViT/DeiT的固定分辨率,所提方法采用逐渐降低图像分辨率的方式。逐渐下采样可以保留图像细节,这对于下游任务(比如分割、检测)非常重要。每个阶段包含多个级联模块,每个模块包含两个子模块:(1) 用于集成空域信息的子模块,我们称之为空域集成模块;(2) 用于融合通道信息的子模块,我们称之为前向模块。

在该文中,我们固定通道融合模块为2层MLP;设计一种更佳的空域集成模块是本文的主要聚焦点。这四个阶段分别包含2-3-8-3个级联模块;每个阶段采用块嵌入融合






的块为向量。对于这四个阶段,p值分别为4-4-2-2。不同阶段的特征维度则为128-26-320-512。该架构具有与DeiT-S相近的参数量。

The CONTAINER-LIGHT Network

与此同时,我们还提出了一个高效版本CONTAINER-LIGHT,它采用了与CONTAINER相同的基础架构,但关闭了前三个阶段的动态关联矩阵。这种配置使其可以大幅降低计算量,进而可以高效处理大分辨率图像并在下游任务取得优异性能。

Experiments

接下来,我们在ImageNet、目标检测、实例分割以及自监督学习等任务上对所提方案进行系统分析。

ImageNet Classification

上表对CNN、Transformer、MLP以及本文Container进行了对比,从中可以看到:

  • 相比ViT,DeiT,所提Container与Container-light具有更佳指标,同时具有更少参数量;

  • 相比PVT、Swin等分层架构,所提方法同样具有更佳的性能;

  • 所提方案仅弱于使用了NAS技术的EfficientNet与RegNet;

  • Container-light不仅具有高精度,同时具有更低的FLOPs,更快的吞吐量。

Detection with RetinaNet

下表对比了RetinaNet框架下不同方案的性能对比,从中可以看到:

  • 相比ResNet50,所提方案取得了43.8mAP,在




















    指标上分别超出7.0,7.2,10.4,同时具有相当的参数量和复杂度;

  • 所提方案同样超过了更大的骨干X-101-64以及纯Transformer的架构,如PVT-S, ViL-S, SWIN-T;

  • 相比更大的Transformer骨干(比如ViL-M,ViL-B),所提方法具有相当的性能,但具有更少的参数量和计算量。

上表还给出了Mask-RCNN框架的不同方案性能对比,从中可以看到:所提方法同样大幅优于ResNet50、ResNet1010以及PVT、ViL、SWIN-T、BoT等方案

Detection with DETR

上表给出了DETR框架下不同方案的性能对比,从中可以看到:相比ResNet50骨干,所提方案取得了显著性能提升,提升高达6.6mAP

Self supervised Learning

上表给出了自监督学习框架下不同方案的性能对比,可以看到:Container-light大幅超过了DeiT

参考code

class Attention(nn.Module):def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., seq_l=196):super().__init__()self.num_heads = num_headshead_dim = dim // num_headsself.scale = qk_scale or head_dim ** -0.5self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias)#Uncomment this line for Container-PAM#self.static_a = #nn.Parameter(torch.Tensor(1, num_heads, 1 + seq_l , 1 + seq_l))#trunc_normal_(self.static_a)self.attn_drop = nn.Dropout(attn_drop)self.proj = nn.Linear(dim, dim)self.proj_drop = nn.Dropout(proj_drop)def forward(self, x):B, N, C = x.shapeqkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)q, k, v = qkv[0], qkv[1], qkv[2]attn = (q @ k.transpose(-2, -1)) * self.scaleattn = attn.softmax(dim=-1)#Uncomment this line for Container-PAM#attn = attn + self.static_aattn = self.attn_drop(attn)x = (attn @ v).transpose(1, 2).reshape(B, N, C)x = self.proj(x)x = self.proj_drop(x)return x
上述论文PDF下载
后台回复:Container,即可下载上述论文
CVPR和Transformer资料下载后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF
CVer-Transformer交流群成立
扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加小助手微信,进交流群▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看

视觉架构大一统!港中文提出:Container,对CNN、Transformer和MLP-Mixer进行了大一统...相关推荐

  1. 全能型AI!用通用预训练感知模型处理多模态多任务!商汤西交港中文提出:Uni-Perceiver...

    关注公众号,发现CV技术之美 本文分享论文『Uni-Perceiver: Pre-training Unified Architecture for Generic Perception for Zer ...

  2. 国科大港中文提出带视觉语言验证和迭代推理的Visual Grounding框架,性能SOTA,代码已开源!(CVPR2022)...

    关注公众号,发现CV技术之美 本文分享 CVPR 2022 的一篇论文『Improving features Visual Grounding with Visual-Linguistic Verifi ...

  3. 港中文提出全新点云上采样方法,破解自动驾驶感知难题

    唐木 发自 天龙寺  量子位 报道 | 公众号 QbitAI 作为三维世界更为真实有效的表达,点云在近年来受到了学界和业界的广泛关注.激光雷达和深度相机的大规模应用也为点云的发展创造了丰富的数据条件. ...

  4. ​上海AI Lab罗格斯大学港中文提出CLIP-Adapter,用极简方式微调CLIP中的最少参数!...

    关注公众号,发现CV技术之美 本文分享论文『CLIP-Adapter: Better Vision-Language Models with Feature Adapters』,由上海AI Lab&a ...

  5. 迁移性好、多用途,港中文提出特征分离的无监督人类三维姿态表征​

    来源 | 我爱计算机视觉(ID:aicvml) 本文将介绍一种基于特征分离的通用人类姿态特征的学习算法 Unsupervised Human 3D Pose Representation with V ...

  6. 迁移性好、多用途,港中文提出特征分离的无监督人类三维姿态表征

    本文将介绍一种基于特征分离的通用人类姿态特征的学习算法 Unsupervised Human 3D Pose Representation with Viewpoint and Pose Disent ...

  7. 超越 FPN 和 NAS-FPN!商汤港中文提出 FPG,特征金字塔网格强势登场!

    论文标题:Feature Pyramid Grids 作者团队:商汤&港中文(陈恺&林达华)&南洋理工大学&FAIR 论文链接:https://arxiv.org/ab ...

  8. 港中文提出SMCA:加快DETR收敛

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:Smarter 先简单回顾一下之前加快DETR收敛的检测器是怎么做的,Deform ...

  9. 计算成本缩减100倍!港中文提出语义分割新方法:张量低秩重建|ECCV2020

    原文链接:https://bbs.cvmart.net/articles/3099 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ --- ...

最新文章

  1. 多重继承_多重继承和菱形问题
  2. 東方茸回廊 汉化补丁
  3. 树莓派保卫战--防止SSH暴力破解
  4. [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
  5. mysql可以靠索引,而我只能靠打工,加油,打工人!
  6. go gin路由分组route group
  7. python中functools_python–functools的使用 | 学步园
  8. 每日一笑 | IE的反射弧也太长了吧......
  9. 如何定义一个只能在堆上(栈上)生成对象的类?
  10. Map实现之HashMap(结构及原理)(转)
  11. 关于Zookeeper来实现分布式锁的几个问题
  12. 百科系列——高一所遇
  13. 听说当今程序员很厉害?不,那是你不了解上古时期的那些神级操作
  14. 运维工程师最容易出的状况,咋就找不到问题根因呢?
  15. 教你在电脑中学会视频格式批量转换
  16. Java 防止 SQL 注入工具类
  17. 苹果电脑计算机找不到打印机,在苹果电脑上连接打印机可以这样操作
  18. 曙光服务器I620-G10安装windows server 2012 教程,附raid卡驱动
  19. python+appium+android模拟器自动化测试 源码
  20. visio-制作甘特图工具

热门文章

  1. Web2.0地图展望
  2. 按键精灵自然语言编程几个知识点
  3. JavaScript URLdecode函数
  4. 试着照魔女之泉弄的道具箱UI
  5. Tradingview Pine Script策略完整教程
  6. 主板鸣叫_从命令行通过t鸣叫
  7. ERROR: Command /home/ubuntu/anaconda3/bin/python -u -c 'import setuptools, tokenize;__file__='''/
  8. 重置 OpenStack Nova 数据库(没试验过,先收藏,以备不时之需)
  9. python多线程爬取淘宝商家图片
  10. etabs数据_[转载]后处理用cksdetailer绘图导入ETABS数据