0.前言

  • 相关资料:

  • 论文基本信息:

    • 作者单位:华为诺亚, 悉尼大学

    • 发表时间:CVPR2022(2021.7.13)

1.针对的问题

  当前将transformer应用于视觉领域的模型存在一些问题:

  • 虽然将图片打成patch可以大大简化将transformer应用于基于图像的任务的过程,很好地捕获补丁之间的远程依赖关系。但是,它忽略了基于序列的NLP任务和基于图像的视觉任务之间的根本区别,例如,会忽略图片内部潜在的2D结构和空间局部信息。

  • transformer的块输出和输入大小固定,难以显示提取多尺度特征和低分辨率的特征。

  • 计算复杂度太高。自注意力的计算与输入图片的大小成二次复杂度。

  作者的目标是建立一个混合网络,同时利用cnn和transformer的优势。

2.主要贡献

  1.提出了一种新颖的 CMT(CNNs meet transformers)架构用于视觉识别

  2.提出了局部感知单元(LPU)和反向残差前馈网络(IRFFN),可以帮助捕获中间特征内的局部和全局结构信息,并提高网络的表示能力。

3.方法

  与ViT相比,CMT第一阶段生成的特征能够保持更高的分辨率,对于其他密集预测任务是必不可少的。此外,采用了类似于CNNs的stage-wise架构设计,使用stide为2的四个卷积层,逐步降低分辨率(序列长度),灵活增加维数。分stage设计有助于提取多尺度特征,减轻高分辨率带来的计算量。使用平均池化代替ViT中的class token,以获得更好的分类结果。使用一种简单的缩放策略来获得CMT变体族。模型主要包括3个模块:

  CMT stem,用于解决in-patch信息的建模问题,减小图片大小,提取细粒度特征和局部信息。首先是一个stride为2的 3×3 卷积,输出通道数为32,用于减小图片大小,然后是两个stride为1的 3×3 卷积以获得更好的局部信息提取。

  Conv Stride,卷积+layer norm,缩小中间特征的尺寸(分辨率下采样2倍),并将其投影到更大的维度(维度放大2倍),以产生层次化表示。

  CMT block,有助于在中间特征中同时捕捉局部和全局结构信息,提高网络的表示能力,包括局部感知单元,轻量多头自注意力和反向残差前馈网络。

  局部感知单元,用于缓解绝对位置编码对平移不变性的破坏和视觉transformer对局部关系和patch内部的结构信息的忽略。

  式中,X∈RH×W×d,H×W为当前阶段输入的分辨率,d为特征的维度,DWConv(·)表示深度卷积。本质就是,将输入图片信息,与 3*3 的卷积操作后相加,旨在增加空间信息,可以和 ViT 的绝对位置编码对应理解

  轻量多头自注意力,在原始的self-attention模块中,输入 X 被线性变换为 query,key,value 再进行计算,运算成本高,此模块主要功能就是使用深度卷积计算代替了 key 和 value 的计算,从而减轻了计算开销。

  具体来说,在进行注意力操作之前,用步长为k的k×k深度卷积减小K和V的空间大小 ,另外,在每个自注意力模块中添加一个相对位置偏差B,B∈是随机初始化且可学习的。学习到的相对位置偏差也可以很容易地通过双三次插值转换为具有不同尺寸m1×m2的B'∈Rm1×m2,从而使得CMT可以很方便的微调用于其他下游任务,最后输入h个头,每个头输出一个大小为n×d/h的序列。然后将这些h序列连接成一个n×d序列。

  反向残差前馈网络,深度卷积增强局部信息的提取,残差结构来促进梯度的传播能力。vit的FFN是两个线性层中间隔着一个GELU激活,第一个线性层将维度扩展4倍,第二个线性层将其减小相同的倍数,本文中的IRFFN与反向残差块类似,由一个扩展层+深度卷积+投影层组成,但是改变了shortcut connectin的位置以获得更好的性能。

  删除了激活层,但是在后面保留了batch归一化和最后一层线性层。

CMT: Convolutional Neural Networks Meet Vision Transformers概述的更多相关文章

  1. [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...

  2. 论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileNet由Go ...

  3. 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...

  4. [论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications Intro MobileNet 我 ...

  5. 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision

    论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...

  6. 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications

    论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...

  7. 【MobileNet-V1】-2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications-论文阅读

    2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications Andrew H ...

  8. 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...

  9. [C6] Andrew Ng - Convolutional Neural Networks

    About this Course This course will teach you how to build convolutional neural networks and apply it ...

  10. Deep learning_CNN_Review:A Survey of the Recent Architectures of Deep Convolutional Neural Networks——2019

    CNN综述文章 的翻译 [2019 CVPR] A Survey of the Recent Architectures of Deep Convolutional Neural Networks 翻 ...

随机推荐

  1. Django 之swagger中尝试调试post请求时返回 "detail": "JSON parse error - Expecting value: line 1 column 1 (char)

    swagger已配置OK,但发送POST请求时一直显示数据格式错误,怪异.... 经过各种查找资料,才发现setting.py文件中缺少配置 配置完成后重启服务,再次尝试发送POST请求,不会再报格式 ...

  2. 【机器学习】李宏毅——Flow-based Generative Models

    前文我介绍了部分关于生成学习的内容,可以参考我这篇博文点此 前面介绍的各个生成模型,都存在一定的问题: 对于PixelRNN这类模型来说,就是从左上角的像素开始一个个地进行生成,那么这个生成顺序是否合 ...

  3. 02- 快速入门MybatisPlus

    创建表 现有一张 User 表,其表结构如下: id name age email 1 Jone 18 test1@baomidou.com 2 Jack 20 test2@baomidou.com ...

  4. Redis 如何批量设置过期时间?PIPLINE的使用

    合理的使用缓存策略对开发同学来讲,就好像孙悟空习得自在极意功一般~ 抛出问题 Redis如何批量设置过期时间呢? 不要说在foreach中通过set()函数批量设置过期时间 给出方案 我们引入redi ...

  5. [常用工具] Caffe ssd常见问题集合

    1 Check failed: a <= b <0 vs -1.19209e-007> 网上办法是注释掉 CHECK_LE(a, b),但是这样会出大问题.解决办法见2. 如果注释掉 ...

  6. C#开发的插件程序 - 开源研究系列文章

    上次编写了一个家庭小助手的小工具软件,也对其中的线程池及管理器进行了介绍(见博文:C#开发的线程池和管理器 - 开源研究系列文章),这次把里面的插件部分的功能单独放出来进行介绍,让更多的朋友能够进行学 ...

  7. flutter Error:Cannot run with sound null safety, because the following dependencies don't support

    学习flutter新版本的路上,真的是一天一个新惊喜啊 今天遇到的坑是 Flutter 升级高版本后,运行和build 报错 Error: Cannot run with sound null saf ...

  8. Quartz.Net 官方教程 Tutorial 3/3

    Schedule 相关属性设置 扩展属性方式 var host = Host.CreateDefaultBuilder() .ConfigureServices(services => { se ...

  9. Selenium CHANGELOG[最新版本4.8.0 计划中]

    Selenium CHANGELOG[持续更新] 源文件 https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES 搬运工 对重点版本做 ...

  10. elk引入redis

    1.引入日志依赖 <dependency> <groupId>com.cwbase</groupId> <artifactId>logback-redi ...