0.前言

  • 相关资料:

    • arxiv

    • 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概述的更多相关文章

  1. How Do Vision Transformers Work?[2202.06709] - 论文研读系列(2) 个人笔记

    [论文简析]How Do Vision Transformers Work?[2202.06709] 论文题目:How Do Vision Transformers Work? 论文地址:http:/ ...

  2. 论文笔记:DeepFace: Closing the Gap to Human-Level Performance in Face Verification

    2014 CVPR Facebook AI研究院 简单介绍 人脸识别中,通常经过四个步骤,检测,对齐(校正),表示,分类 论文主要阐述了在对齐和表示这两个步骤上提出了新的方法,模型的表现超越了前人的工 ...

  3. Awesome Deep Vision

    Awesome Deep Vision  A curated list of deep learning resources for computer vision, inspired by awes ...

  4. ICCV2021 | Tokens-to-Token ViT:在ImageNet上从零训练Vision Transformer

    ​  前言  本文介绍一种新的tokens-to-token Vision Transformer(T2T-ViT),T2T-ViT将原始ViT的参数数量和MAC减少了一半,同时在ImageNet上从 ...

  5. 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记

    论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...

  6. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...

  7. 深度解析CNN

    [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之:CNN卷积神经网络推导和实现 [4]Deep Learning模型之:CNN的反 ...

  8. cnn(卷积神经网络)比较系统的讲解

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  9. DeepFace--Facebook的人脸识别(转)

    DeepFace基本框架 人脸识别的基本流程是: detect -> aligh -> represent -> classify 人脸对齐流程 分为如下几步: a. 人脸检测,使用 ...

  10. face recognition[翻译][深度学习理解人脸]

    本文译自<Deep learning for understanding faces: Machines may be just as good, or better, than humans& ...

随机推荐

  1. Java7提供的Fork/Join框架实现高并发程序,你会使用吗?

    摘要:Fork/Join框架位于J.U.C(java.util.concurrent)中,是Java7中提供的用于执行并行任务的框架,其可以将大任务分割成若干个小任务,最终汇总每个小任务的结果后得到最 ...

  2. Ajax---EventLoop事件循环

    前言       JavaScript 是一门单线程执行的脚本语言.也就是说,同一时间只能做一件事情. JavaScript要运行在宿主环境中(浏览器,nodejs)下.浏览器内部有执行js代码的引擎 ...

  3. Elasticsearch查询及聚合类DSL语句宝典

    作者:京东科技 纪海雨 前言 随着使用es场景的增多,工作当中避免不了去使用es进行数据的存储,在数据存储到es当中以后就需要使用DSL语句进行数据的查询.聚合等操作,DSL对SE的意义就像SQL对M ...

  4. 学习.NET MAUI Blazor(四)、路由

    Web应用程序的可以通过URL将多个页面串联起来,并且可以互相跳转.Web应用主要是使用a标签或者是服务端redirect来跳转.而现在流行的单页应用程序 (SPA) ,则通过路由(Router)来实 ...

  5. 消息队列(Message Query)的初学习

    消息队列(Message Query)的初学习   摘要:本篇笔记主要记录了对于消息队列概念的初次学习.消息队列的基础知识. 目录 消息队列(Message Query)的初学习 1.何为消息? 2. ...

  6. KMP 与 Z 函数

    \(\text{By DaiRuiChen007}\) 一.KMP 算法 I. 问题描述 在文本串 \(S\) 中找到模式串 \(T\) 的所有出现,其中 \(|S|=n,|T|=m\) II. 前置 ...

  7. group by 语句怎么优化?

    一.一个简单使用示例 我这里创建一张订单表 CREATE TABLE `order_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', `or ...

  8. GIT安装步骤记录以及Git 常用命令,忽略文件,推送本地代码到仓库示例以及报错解决

    下载 下载地址 git-scm.com 或 gitforwindows.org 安装(凡是下面没有给出图片的,都按默认选项就行) 选择安装组件 调整你的 path 环境变量 第一种是仅从 Git Ba ...

  9. 《深入理解Java虚拟机》第三章读书笔记(一)——垃圾回收算法

    参考书籍<深入理解java虚拟机>周志明著 系列文章目录和关于我 本文主要介绍垃圾回收理论知识 1.jvm哪些区域需要进行垃圾回收 虚拟机栈,本地方法栈,程序计数器都是线程私有的,随线程而 ...

  10. 静态代码块-数组工具类Arrays

    静态代码块 静态代码块: 定义在成员位置,使用static修饰的代码块{}. 位置:类中方法外. 执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行 格式: public clas ...