CMT: Convolutional Neural Networks Meet Vision Transformers概述
0.前言
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概述的更多相关文章
- [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...
- 论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileNet由Go ...
- 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...
- [论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications Intro MobileNet 我 ...
- 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision
论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...
- 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications
论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...
- 【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 ...
- 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...
- [C6] Andrew Ng - Convolutional Neural Networks
About this Course This course will teach you how to build convolutional neural networks and apply it ...
- 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 翻 ...
随机推荐
- C++进阶(map+set容器模拟实现)
关联式容器 关联式容器也是用来存储数据的,与序列式容器(如vector.list等)不同的是,其里面存储的是<key,value>结构的键值对,在数据检索时比序列式容器效率更高.今天要介绍 ...
- JavaScript:变量的作用域,window对象,关键字var/let与function
为什么要将这些内容放在一起,因为他们都跟初始化有关系,我们慢慢说吧. 我们在代码中,都会声明变量.函数和对象,然后由浏览器解释器(下面简称浏览器)执行: 我们还说过,变量和对象的内存结构: 那么,是什 ...
- SimpleMemory使用
官方文档: 简介 - Document (bndong.github.io) Github资源链接: BNDong/Cnblogs-Theme-SimpleMemory: Cnblogs theme ...
- Vue + Element 自定义上传封面组件
前一段时间做项目,频繁使用到上传图片组件,而且只上传一个封面,于是想着自定义一个图片封面上传组件.先来看一下效果: 第一张图片是上传之前,第二张图片是上传 ...
- day04-Spring管理Bean-IOC-02
Spring管理Bean-IOC-02 2.基于XML配置bean 2.7通过util空间名称创建list BookStore.java: package com.li.bean; import ja ...
- 真正“搞”懂HTTP协议09之这个饼干不能吃
我们在之前的文章中介绍HTTP特性的时候聊过,HTTP是无状态的,每次聊起HTTP特性的时候,我都会回忆一下从前辉煌的日子,也就是互联网变革的初期,那时候其实HTTP不需要有状态,就是个浏览页面,没有 ...
- 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 ...
- 自从学习了MongoDB高可用,慢慢的喜欢上了它,之前确实冷落了
大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦? 让我们一起,一探究竟,继续学习MongoDB高可用和片键策略 ...
- BC7-牛牛的字符矩形
题目描述 牛牛尝试用键盘读入一个字符,然后在屏幕上显示用这个字符组成的 3*3 的矩形. 输入描述 一行读入一个 char 类型的字符. 输出描述 输出这个字符组成的 3*3 矩形. 示例 1 输入: ...
- nginx 隐藏 index.php 直接访问
项目配置文件vhosts加上: if ( !-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } 修改后如图