ConvFormer: Closing the Gap Between CNN and Vision Transformers概述
0.前言
相关资料:
github
论文解读
论文基本信息:
发表时间:arxiv2022(2022.9.16)
1.针对的问题
CNN虽然效率更高,能够建模局部关系,易于训练,收敛速度快。然而,它们大多采用静态权重,限制了它们的表示能力和通用性。而全局注意力机制虽然提供了动态权重,能从每个实例预测,从而在大数据集中获得强大的性能和鲁棒性,但是计算代价太高。
2.主要贡献
•提出了一种新颖的注意力机制MCA,该机制具有动态性,针对不同的分辨率模式采用了不同大小的卷积核。
•基于MCA,设计了一个综合了ViT和CNN优点的通用CNN骨干网ConvFormer。
•对多个视觉任务进行了广泛的实验,包括图像分类、目标检测和语义分割,以评估ConvFormer。实验结果表明,ConvFormer实现了最先进的性能。
3.方法
本文提出的方法比较简单。MCA的两个关键组成部分是多级特征融合和门控机制。
多级特征融合能够捕捉不同分辨率下输入图像的不同模式,结合多尺度特征图。
门控机制进行特征重校准,学习选择性地强调含信息量大的特征,抑制非平凡特征。
MCA框架如下:
设输入为x,先用一个1×1卷积层,将通道数量扩展N倍。然后,通过3×3,5×5,7 ×7深度卷积并行学习多尺度特征,这里,5×5和7 ×7的是膨胀深度卷积,膨胀率分别为2和3,以获得更大的感受野。然后输入BatchNorm和ReLU来防止过拟合。接下来,为了应用残差连接进行更好的优化,通过1×1的卷积层来减少通道数量到与原始输入x一致,得到x'。
对于门控机制,首先使用全局平均池化层获取全局信息,然后是连续的两个全连接层。最后,利用sigmoid函数计算注意力向量Attn。
最后,将x通过1×1卷积的输出与Attn相乘得到最终输出。
ConvFormer总体框架如下:
输入图片首先输入一个卷积stem,该模块由一个stride为2的7 × 7卷积层,一个stride为1的3×3卷积层和一个stride为2的不重叠的2×2卷积层组成。这样,生成的输入特征空间大小为 H/4×W/4。
表示X∈RN×C1× H/4× W/4为输入特征,N为batch大小,C1为通道数。然后,将输入的特征输入重复的ConvFormer,每个ConvFormer由两个子块组成。具体来说,第一个子块的主要组件包括MCA和BatchNorm模块,第二个子块由两个全连接的层和一个非线性激活GELU组成,也就是一个MLP。
4.补充
作者在论文中提到注意力可以分为四种基本类别:通道注意力,自适应地重新校准每个通道的权重,以关注不同的对象。时序注意力强调捕捉帧间的交互作用并决定何时进行注意力。分支注意力是一种动态的分支选择机制,使得信息可以在不同分支间流动。空间注意力产生注意力掩膜,自适应地选择重要的空间区域。而MCA就是采用通道注意力机制。
ConvFormer: Closing the Gap Between CNN and Vision Transformers概述的更多相关文章
- How Do Vision Transformers Work?[2202.06709] - 论文研读系列(2) 个人笔记
[论文简析]How Do Vision Transformers Work?[2202.06709] 论文题目:How Do Vision Transformers Work? 论文地址:http:/ ...
- 论文笔记:DeepFace: Closing the Gap to Human-Level Performance in Face Verification
2014 CVPR Facebook AI研究院 简单介绍 人脸识别中,通常经过四个步骤,检测,对齐(校正),表示,分类 论文主要阐述了在对齐和表示这两个步骤上提出了新的方法,模型的表现超越了前人的工 ...
- Awesome Deep Vision
Awesome Deep Vision A curated list of deep learning resources for computer vision, inspired by awes ...
- ICCV2021 | Tokens-to-Token ViT:在ImageNet上从零训练Vision Transformer
前言 本文介绍一种新的tokens-to-token Vision Transformer(T2T-ViT),T2T-ViT将原始ViT的参数数量和MAC减少了一半,同时在ImageNet上从 ...
- 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记
论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...
- Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...
- 深度解析CNN
[1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之:CNN卷积神经网络推导和实现 [4]Deep Learning模型之:CNN的反 ...
- cnn(卷积神经网络)比较系统的讲解
本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...
- DeepFace--Facebook的人脸识别(转)
DeepFace基本框架 人脸识别的基本流程是: detect -> aligh -> represent -> classify 人脸对齐流程 分为如下几步: a. 人脸检测,使用 ...
- face recognition[翻译][深度学习理解人脸]
本文译自<Deep learning for understanding faces: Machines may be just as good, or better, than humans& ...
随机推荐
- npm ERR! An unknown git error occurred
今天根据 vue-element-admin 官网文档下载项目,初始化时报错 npm ERR! An unknown git error occurred 试了网上的大部分方法,都没用,最后在官网提供 ...
- [Leetcode]设计循环队列
题目 代码 class MyCircularQueue { public: /** Initialize your data structure here. Set the size of the ...
- [cocos2d-x]关于坐标系
本文从cocos2dx官网看到,搬运过来学习一下. cocos2d-x3.X的坐标系 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系. 笛卡尔坐标系中定义右手系原点在左下角, ...
- Java学习记录:2022年1月13日(其二)
Java学习记录:2022年1月13日(其二) 摘要:本篇笔记主要记录了在设计类时的一些注意事项,类加载时类中各个部分的加载顺序以及继承和多态的知识. 目录 Java学习记录:2022年1月13日 ...
- HHKB Programming Contest 2022 Winter(AtCoder Beginner Contest 282)
前言 好久没有打 AtCoder 了.有点手生.只拿到了 \(\operatorname{rk}1510\),应该上不了多少分. 只切了 \(\texttt{A,B,C,D}\) 四题. A - Ge ...
- centos搭建neo4j环境(含java)2021_12
限centos neo4j与java下载: 链接:https://pan.baidu.com/s/1ei15dROGy3OwJfbislxH7g 提取码:8B3A 下载后 1.在linux中建立文 ...
- Linux操作系统导学专栏(一)——专栏要讲些什么?
该专栏是为Linux内核开发编程做铺垫,如果你对操作系统很熟悉,想了解一些Linux内核发开的知识,请直接跳转至<Linux内核编程专栏>,如果你对Linux内核编程也很熟悉,想了解L ...
- 程序员必备的数据库知识 2:Join 算法
前言 连接(Join)是关系数据库重要特性,它和事务常被作为数据库与文件系统的两个重要区别项.程序员江湖一直流传着某某 baba 的神秘开发宝典,其中数据库部分有重要一条避免过多表的 Join,奈何 ...
- Linux三剑客日志处理系列
三剑客日志处理系列 一.特殊符号 1.引号系列 必会 引号 含义 单引号 所见即所得,单引号里的内容会原封不动输出 双引号 和单引号类似,对双引号里面的特殊符号进行解析,对于{}花括号(通配符)没有解 ...
- supervisor管理java进程
安装 yum install supervisor 设置开机启动 systemctl enable supervisord 启动supervisord systemctl start supervis ...