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

本文分享论文『ConvMLP: Hierarchical Convolutional MLPs for Vision』,由 UO&UIUC 提出 ConvMLP:一个用于视觉识别的层次卷积MLP,且是一个轻量级、阶段级、具备卷积层和MLP的设计。ConvMLP在ImageNet-1k、2.4G MACs和9M参数量上达到了76.8% 的Top-1精度。

详细信息如下:

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

  • 项目链接:https://github.com/SHI-Labs/Convolutional-MLPs

导言:

最近发现,由一系列连续的多层感知机块(MLP Block)组成的基于MLP的架构,可以达到与基于卷积和Transformer的方法相当的结果。然而,大多数方法都采用了固定维度输入的空间MLP,因此很难将其应用于下游任务,如目标检测和语义分割 。此外,单阶段设计进一步限制了其他计算机视觉任务的性能,且全连接层具有较大的计算量。

为了解决这些问题,作者提出了ConvMLP:一个用于视觉识别的层次卷积MLP,这是一个轻量级、阶段级、具备卷积层和MLP的设计。ConvMLP在ImageNet-1k、2.4G MACs和9M参数量上达到了76.8% 的Top-1精度。目标检测和语义分割的实验进一步表明,ConvMLP学习的视觉表示可以无缝迁移,并在较少的参数下获得有竞争力的结果。

      01      

Motivation

图像分类是计算机视觉中的一个基本问题,过去五年来,大多数里程碑式的解决方案都是由深度卷积神经网络主导的。自2020年底,视觉Transformer的兴起以来,研究人员不仅将Transformer应用于图像分类,而且还探索了除卷积神经网络之外的更多的模型。

MLP-Mixer提出了token混合和通道混合mlp,以允许空间位置和通道之间的交互。ResMLP使用跨patch和跨通道子层作为构件。gMLP]通过添加空间门控单元来连接通道MLP。从本质上说,基于MLP的模型表明,在分类任务上,简单的前馈神经网络可以实现与卷积和attention相似的操作。

然而,使用mlp对空间信息进行编码需要固定输大小入的维度 ,这使得很难部署在一些下游的计算机视觉任务上(如目标检测和语义分割),因为它们通常需要任意输入大小的分辨率。此外,单阶段设计可能会限制目标检测和语义分割的性能 ,因为它们是基于特征金字塔进行预测的。mlp也带来了沉重的计算负担和更多的参数 。比如,MLP-Mixer的只能略超过ViT-Base,但是参数量和计算量是ViT-Base的两倍多。

基于这些观察结果,作者提出了ConvMLP:用于视觉识别的层次卷积MLP主干,它是卷积层和MLP层的组合,可以用于目标检测和分割等下游任务,如上图所示。为了解决MLP的框架中对输入维度的约束,作者首先将所有空间mlp替换为跨通道连接 ,并建立一个纯MLP baseline模型。

为了弥补空间信息交互,作者在其余的MLP阶段上添加了一个轻量级的卷积阶段 ,并使用卷积层进行降采样 。此外,为了增加MLP阶段的空间连接,作者在每个MLP块中的两个通道MLPs之间添加了一个3×3深度卷积 ,因此称之为Conv-MLP块。作者通过对卷积层和MLP层的共同设计,建立了用于图像分类的ConvMLP模型的原型。

与最近的基于MLP的模型相比,它以更少的参数在ImageNet-1k上实现了不错性能。在目标检测和语义分割方面,作者在MSCOCO和ADE20K基准数据集上进行了实验。结果表明,使用ConvMLP作为主干网络,可以在性能和模型大小之间实现更好的权衡。

      02      

方法

2.1.整体设计

ConvMLP的整体框架如上图所示。与其他基于MLP的模型不同,作者使用卷积tokenizer来提取初始特征图()。为了减少计算和改善空间连接,作者采用纯卷积阶段进行tokenization,生成特征图()。然后,作者设置3个Conv-MLP阶段,生成2个特征图和(分别为和)。每个Conv-MLP阶段包括多个Conv-MLP块,每个Conv-MLP块有一个通道MLP,然后是一个深度卷积层,然后是另一个通道MLP。

与之前的工作类似,作者在这些块中应用了残差连接和层归一化。每个通道MLP由两个全连接层组成,带有一个GeLU激活函数和dropout。然后,作者将全局平均池化应用到输出特征上,并通过分类head进行分类。当将ConvMLP应用于下游任务时,可以使用特征映射、、、来生成没有输入大小约束的特征金字塔。

2.2.卷积Tokenizer

作者用卷积Tokenizer替换原来的Patch Tokenizer。它包括三个卷积块,每个块由一个3x3的卷积、BatchNorm和ReLU激活函数组成。该Tokenizer还附加了一个最大池化层。

2.3.卷积阶段

为了增加空间连接,作者采用了完全卷积的阶段。它由多个块组成,其中每个块由两个1x1卷积层组成,中间有一个3x3卷积层。(蓝色框所示)

2.4.Conv-MLP阶段

为了减少对输入维度的约束,作者用通道mlp替换所有的空间mlp。但是这样会导致在空间上缺少信息的交互,因此作者通过添加卷积层来进行局部信息交互,以弥补空间交互的缺失。(橘色框所示)

Convolutional Downsampling

在baseline模型中,作者遵循了Swin Transformer中使用基于线性层的patch合并方法来对特征图进行下采样的设计方式。不同的是,作者用步长为2的3x3卷积层替换patch合并,这使得下采样的时候,能够有空间信息的重叠。这提高了分类精度,同时只引入了很少的参数。

Convolution in MLP block

作者进一步在MLP块中的两个通道mlp之间添加了一个深度卷积层,并将其命名为Conv-MLP块。它是一个3x3卷积层,与两个通道mlp的通道数相同,用于增强相邻窗口的联系。这弥补了去除空间mlp的不足,从而大幅度地提高了性能,而只带来很少的参数。

2.5. Model Scaling

为了使ConvMLP可拓展,作者在卷积阶段和Conv-MLP阶段的宽度和深度上扩展了ConvMLP。基于此,作者提出了3个ConvMLP变体。最小的ConvMLP-S只从两个卷积块开始,在3个ConvMLP阶段中,分别有2、4和2个Conv-MLP块。ConvMLP-M和ConvMLP-L从三个卷积块开始。在3个Conv-MLP阶段中,ConvMLP-M有3、6、3个Conv-MLP块,ConvMLP-L在有4、8、3个Conv-MLP块。具体细节如上表所示。

      03      

实验

3.1.  Ablation Study

在Baseline的基础上,作者加入了不同模块,进行消融实验。上表显示了不同消融模块作用,可以看出,本文提出的所有模块都对于性能提升都有作用。

3.2. Comparisons with SOTA

在ImageNet-1k图像分类上,作者将ConvMLP与的其他SOTA模型进行了比较。

3.3. Transfer learning

为了验证本文方法在其他数据集上的迁移能力,作者在多个数据集上和其他方法进行对比,结果如上表所示。

3.4. Object Detection & Semantic Segmentation

上图显示了,在MS COCO和ADE20K数据集上,ConvMLP和ResNet作为RetinaNet, Mask R-CNN的Backbone的结果。基于ConvMLP的模型在不同的评估指标和任务下显示出一致的性能提升。

3.5. Visualization

可以观察到,与ResNet相比,ConvMLP学习的表示涉及更多的低级特征,如边缘或纹理,与Pure-MLP的baseline相比,涉及更多的语义信息。

      04      

总结

本文分析了当前基于MLP的模型对视觉表示学习的约束条件:1.空间mlp只接受固定分辨率的输入,使得难以转移到下游任务,如目标检测和分割 。2.由于增加的复杂度,单阶段设计和全连接层进一步限制了MLP结构的使用 。

为了解决这些问题,作者提出了ConvMLP:一个层次卷积MLP,通过结合卷积层和mlp来进行视觉表示的学习。ConvMLP架构可以无缝迁移到其他CV任务的网络中,如RetinaNet、MaskR-CNN和Semantic FPN。与其他方法相比,在不同基准数据集上,ConvMLP在参数较少的情况下,达到了不错的结果。

随着Transformer的兴起,目前大多数的工作是将CNN的设计理念结合到Transformer中。而本文重新revisit的MLP的不足(参数量大、过拟合等),并利用CNN的设计理念来缓解这些问题 。由于借鉴了CNN中的层次结构,因此,本文的方法在比较少的计算量下,也能达到比较好的效果。

作者介绍

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

欢迎加入「计算机视觉交流群

ConvMLP:你见过长得像CNN的MLP吗?UOUIUC提出了用于视觉任务的层次卷积MLP相关推荐

  1. 计算机听觉要实现的核心功能,用于视觉任务的 CNN 为何能在听觉任务上取得成功?...

    最初针对视觉信号设计出来的 CNN 也能处理听觉信号,最终帮助机器倾听和更好地理解我们. CNN 在某些程度上能迁移学习,掌握多种模式的共同特征. 有一系列神经网络机器学习方法不只是「有深度的」.在这 ...

  2. 森永乳业的益生菌长双歧杆菌BB536在其50周年庆之际获得用于婴儿的自证GRAS

    东京 -- (美国商业资讯) -- 日本领先的乳制品公司森永乳业株式会社(Morinaga Milk Industry Co., Ltd., TOKYO:2264)今天宣布,其专利益生菌森永长双歧杆菌 ...

  3. 见过最好的神经网络CNN解释

    什么是卷积神经网络?为什么它们很重要? 卷积神经网络(ConvNets 或者 CNNs)属于神经网络的范畴,已经在诸如图像识别和分类的领域证明了其高效的能力.卷积神经网络可以成功识别人脸.物体和交通信 ...

  4. 一位中国博士把整个 CNN 都给可视化了,可交互有细节,每次卷积 ReLU 池化都清清楚楚...

    郭一璞 发自 云凹非寺 量子位 报道 | 公众号 QbitAI CNN是什么?美国有线电视新闻网吗? 每一个对AI抱有憧憬的小白,在开始的时候都会遇到CNN(卷积神经网络)这个词. 但每次,当小白们想 ...

  5. 一位中国博士把整个CNN都给可视化了,可交互有细节,每次卷积ReLU池化都清清楚楚...

    郭一璞 发自 云凹非寺 量子位 报道 | 公众号 QbitAI CNN是什么?美国有线电视新闻网吗? 每一个对AI抱有憧憬的小白,在开始的时候都会遇到CNN(卷积神经网络)这个词. 但每次,当小白们想 ...

  6. ACL 2019 | 图表示解决长文本关系匹配问题:腾讯提出概念交互图算法

    本文作者:Bang Liu.Di Niu等 文章之间关系匹配是自然语言处理领域的重要问题.传统算法忽略了文本内部语义结构,而深度神经网络目前主要用于句子对之间的匹配.同时由于长文本对计算量需求较大,且 ...

  7. ICCV2021-PiT-池化操作不是CNN的专属,ViT说:“我也可以”;南大提出池化视觉Transformer(PiT)...

    关注公众号,发现CV技术之美 本文分享一篇 ICCV2021 论文:『Rethinking Spatial Dimensions of Vision Transformers』. 详细信息如下: 论文 ...

  8. 本周AI热点回顾:GAN生成的超级马里奥关卡,可以永不通关的那种;MLP回归,纯多层感知机视觉架构媲美CNN、ViT...

    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍点击左上方蓝字关注我们 01 MLP回归,无需卷积.自注意力,纯多层感知机视觉架构媲美CNN.ViT 当前,卷积神经网络(CNN)和基于自注意力的网络(如近来大火的 ...

  9. CNN非接触掌纹识别改进过程(三)——Gabor卷积神经网络

    参考论文: Gabor Convolutional Networks (IEEE Transactions on Image Processing(Volume: 27,Issue: 9, Sept. ...

最新文章

  1. 腾讯云100亿元目标达成,发阳光普照奖iPhone 11 Pro,你酸了吗?
  2. Linux云自动化运维第六课
  3. Spring集合 (List,Set,Map,Properties) 实例
  4. 《科学+ 预见人工智能》——物理学家的管理方式
  5. Jasypt 加密-引言
  6. 服务器读取excel文件,作为服务器进程读取Excel文件
  7. CSS动画效果构成分析
  8. 亚索全部语音原声mp3_Spring Boot+VUE集成科大讯飞语音在线合成解决方案
  9. ImmunityDebugger 学习
  10. lumion计算机丢失string,Lumion计算机丢失string
  11. Java基础(二)public、private、protected修饰的方法
  12. OpenCv图像处理实战——银行卡卡号识别
  13. 深富策略:指数横盘震荡整理 汽车整车表现亮眼
  14. 安全研究 # 二进制代码相似性检测综述
  15. 学习-格鲁夫给经理人的第一课
  16. 问题“ConnectionString属性尚未初始化”之解决办法
  17. CLIP论文笔记--《Learning Transferable Visual Models From Natural Language Supervision》
  18. 【三维目标检测】VoteNet(一)
  19. 如何快速定位自己热爱的工作
  20. 小羊的暑假博客计划教程索引

热门文章

  1. Python 上下文管理器与with语句
  2. 如何制作一个基于Tile的游戏 2 Cocos2d-x 2 0 4
  3. 【基础问题】微信小程序 - 腾讯云 - 一站式方案 - PHP - wafer 和 wafer2的区别和wafer2的实践
  4. [编转]Android localsocket 的基础和使用实践: 02
  5. java 画树_java – 如何绘制代表连接节点图的树?
  6. win10调节屏幕亮度_Win8系统笔记本电脑如何调节屏幕亮度?
  7. 中公学python要多久_学完风变编程我才知道:一天的工作,五分钟就能完成!
  8. clip许可证设备id与绑定设备不匹配_LINUX SPI通用字符设备模型介绍(SPI模块分析结束篇)...
  9. 值对于int32太大或太小怎么解决_数控车床加工螺纹时常见故障及解决方法
  10. html5网页制作代码_好程序员HTML5大前端常用开发工具大集合