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 翻 ...
随机推荐
- java中加号的用法
注意java中+号的使用 public class Add { public static void main(String[] args) { System.out.println(100+80); ...
- QT中常用控键
1.TableWidget类 1.1. 表格属性设置 1.1.1设置行列属性 //设置行列均分 tableWidget->horizontalHeader()->setStretchLas ...
- 巧用视觉障眼法,还原 3D 文字特效
最近群里有这样一个有意思的问题,大家在讨论,使用 CSS 3D 能否实现如下所示的效果: 这里的核心难点在于,如何利用 CSS 实现一个立体的数字?CSS 能做到吗? 不是特别好实现,但是,如果仅仅只 ...
- [seaborn] seaborn学习笔记9-绘图实例(1) Drawing example(1)
文章目录 9 绘图实例(1) Drawing example(1) 1. Anscombe's quartet(lmplot) 2. Color palette choices(barplot) 3. ...
- 旧酒换新瓶,新版M1/M2芯片Macos(Ventura)安装古早版本Python2.7(Python2.x)
向下兼容特性是软件开发系统的一个重要指标,它是指一个新的系统或者软件能够与旧的系统或软件兼容并正常运行.这意味着旧系统或软件可以在新系统或软件中使用,而不会出现问题.向下兼容对于提高软件或系统的可用性 ...
- python之路25 面向对象 封装(隐藏、伪装)、多态、反射
派生方法实战演练 import json import datetime d = { 't1': datetime.date.today(), 't2': datetime.datetime.toda ...
- 10分钟在 Rainbond 上部署 mall 电商项目
很多小伙伴在学习 mall 电商项目时,都会在部署上折腾许久,虽然目前已经提供了很多种部署方式,比如 在 Linux 上部署 mall .使用 Docker 或 DockerCompose 部署 ma ...
- CF1744B Even-Odd Increments
简要题意 \(T\) 组数据,每组数据给定一个长度为 \(n\) 的数列,有 \(q\) 次操作,共有两种操作: \(\texttt{0 x}\),给数列中所有偶数加上 \(x\): \(\textt ...
- Python爬取cnnvd
利用python监控CNNVD上面的新出漏洞实例,可以配合邮箱推送获取最新的漏洞情报 爬取cnnvd import requests from bs4 import BeautifulSoup imp ...
- 一看就会的 Anaconda 搭建 OpenCV for Python 环境(全平台通用)
前言 在学习 OpenCV 的时候,需要搭建 OpenCV 的环境并安装一些库,本文就准备了 OpenCV for Python,换而言之就是 OpenCV 的 python 的 API 接口.它拥有 ...