单位:清华,南开(程明明团队)
ArXiv:https://arxiv.org/abs/2202.09741
Github: https://github.com/Visual-Attention-Network

导读:
今天了解一个卷积的新操作,即解耦卷积。说是新,其实旧,比如MobileNet为了高效率地推断,将一个标准的CNN看成一个Depth-wise CNN和Point-wise CNN,即解耦。本篇文章将一个更大的卷积核解耦成三个不同类型的CNN操作。虽然取得了超过众多SOTA的性能,但是在MLP中采用经典的DW-FFN,究竟是MLP带来了性能提升,还是大核注意力起了作用,有点存疑!


文章目录

  • 摘要
  • 一、网络设计
    • 1.1 CNN与Self-Attention
    • 1.2 大核注意力,LKA
    • 1.3 几种注意力
    • 1.4 MLP,多层感知器
    • 1.5 复杂度分析
  • 二 实验
    • 2.1 可视化
    • 2.2 性能对比

摘要

尽管初衷为自然语言理解而设计的,但最近自注意力机制已经席卷了计算机视觉各个领域。但是,图像的2D本质给自注意力机制应用到计算机视觉中带来三个挑战:

  • 将图像看成1D序列,忽略了其2D结构;
  • 对于高分辨率图像,具有平方复杂度的运算量;
  • 仅仅抓捕空间注意力,但忽略了通道注意

本篇文章提出大核注意力(large kernel attention)模块,在避免上述问题的同时,实现了自注意力中自适应和长距离的相关性。基于LKA模块,设计了一个视觉注意力网络,即Visual Attention Network,VAN。VAN架构极其简洁,在广泛的实验中如识别、检测、语义分割、实例分割等任务中超过了当前SOTA的transformer架构,并且较大优势超过了CNN。

一、网络设计

1.1 CNN与Self-Attention

上面分析了自注意力的三个缺点,而CNN操作采用静态的权值而缺乏适应性,而适应性被证明起着关键的作用。Convolution operation adopts static weight and lacks adaptability, which has been proven critical [36,16].
本篇作者设计的LKA模块,结合了CNN和自注意力的优点,包括局部结构信息、长距离依赖性和适应性,并且避免了自注意力的缺点,对通道适应性也考虑进去。

1.2 大核注意力,LKA


StandardCNN=DWCNN+DilatedCNN+PWCNNStandard^{CNN} = DW^{CNN} + Dilated^{CNN} + PW^{CNN}StandardCNN=DWCNN+DilatedCNN+PWCNN
分解LKA的一种范式。该范式显示了一个13×13的卷积能够解耦成一个5×5的DW-CNN,一个dilation=3的5×5 DW-CNN和一个PW-CNN。

如同MobileNet中,将一个标准的卷积解耦成两个部分,即depth-wise卷积和point-wise卷积,DW-CNN和PW-CNN;作者将一个卷积操作解耦成三部分,即DW-CNN、Dilated-CNN和PW-CNN。如上图所示,通过该方法能够有效解耦大核的卷积运算。


图(a)和图(b)的区别在于同位元素点乘。

1.3 几种注意力

LKA可以描述成:

其中F∈RC×H×WF \in R^{C \times H \times W}F∈RC×H×W是输入特征,Attention∈RC×H×WAttention \in R^{C \times H \times W}Attention∈RC×H×W表示注意力图。注意力图中的数值对应每个特征的重要程度。⊗\otimes⊗指的是同位元素乘法。


通过上述表格,可以看出LKA考虑了局部上下文信息、长距离感受野、动态处理即通道适应性与空间适应性。而CNN和Self-Attention只考虑部分特性。

1.4 MLP,多层感知器

多层感知器,在CNN出来之前就非常流行,但是因为全连接的方式,运算量大、效率低而陷入低迷。最近,一些研究将标准的MLP解耦成一个空间MLP和通道MLP,使得性能提升。与作者的MLP比较相近的结构是gMLP(还没了解这个结构,暂且保留)。gMLP有两个缺点:1)尺度敏感,只能处理固定尺度的图像;2)只考虑全局信息,而忽略了局部结构。而作者设计的结构能克服这两点。


class Mlp(nn.Module):def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):super().__init__()out_features = out_features or in_featureshidden_features = hidden_features or in_featuresself.fc1 = nn.Conv2d(in_features, hidden_features, 1)self.dwconv = DWConv(hidden_features)self.act = act_layer()self.fc2 = nn.Conv2d(hidden_features, out_features, 1)self.drop = nn.Dropout(drop)#方便看代码,隐去了初始化def forward(self, x):x = self.fc1(x)x = self.dwconv(x)x = self.act(x)x = self.drop(x)x = self.fc2(x)x = self.drop(x)return

对作者MLP的表达存疑,它就是一个常用扩展了DW-CNN的反馈网络。并且,DW-CNN的通道那么大,对结果肯定有提升。腐蚀实验里面,只对LKA对比分析了。那么,LKA起多大作用就不好说。

1.5 复杂度分析

作者采用通用的分析策略,即对比参数量和浮点运算次数,Floating point opertions (FLOPs)。为了简洁格式,计算过程省略了偏置,假设输入和输出特征尺度都为H×W×CH \times W \times CH×W×C,那么参数量和运算量计算如下:

这里前提是参照上述解耦图,即一个K×KK \times KK×K的卷积可以分解为一个dilation=d、卷积核为Kd\frac{K}{d}dK​的Depth-wise dilation convolution,一个(2d−1)(2d−1)(2d-1)(2d-1)(2d−1)(2d−1)的DW-CNN,以及一个1×11 \times 11×1的PW-CNN。


Number of parameters for different forms of a 21×21 convolution. 该表格对比三种CNN在相同Kernel和Channel的参数量,即标准的CNN、MobileNet以及LKA。

二 实验

2.1 可视化


作者采用Grad-CAM可视化了Swin-T、ConvNext-T、VAN-Base的CAM,即class activation map,激活类热力图。

2.2 性能对比


这幅图将最近SOTA方法都做了比较,实验充分,在ImangNet val集上,在运算量(GFLOPs)和参数量(param)同等条件下取得了最好性能(Acc)。

深度网络设计技巧(五)之VAN:Visual Attention Network#超越Swin的纯CNN#相关推荐

  1. VAN:Visual Attention Network

    Visual Attention Network [Submitted on 20 Feb 2022 (v1), last revised 11 Jul 2022 (this version, v5) ...

  2. 【ARXIV2202】Visual Attention Network

    [ARXIV2202]Visual Attention Network 论文地址:https://arxiv.org/abs/2202.09741 代码地址:https://github.com/Vi ...

  3. 新的 self-attention 网络结构,Visual Attention Network

    随着现在大家把transformer 的各种结构玩成花以后,后面也没有出什么比较经典的结构了.然后研究者们就开始挖掘以前的网络结构特点,加上各种技巧提高网络准确度.比如前段时间的ConvNeXt,各种 ...

  4. 【Attention】Visual Attention Network

    文章目录 一.背景 二.动机 三.方法 3.1 Large Kernel Attention 3.2 VAN 四.效果 4.1 分类 4.2 目标检测 4.3 语义分割 论文链接:https://ar ...

  5. 12层也能媲美ResNet?YOLOv4一作邓嘉团队提出ParNet:非深度网络!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨happy 转载自丨极市平台 导读 是否有可能构建一个高性能的Non-deep(非深度)神经网络 ...

  6. 【网络设计_RegNet】Designing Network Design Spaces_2020

    文章目录 Abstract 1.introduction 2.Related work 3.Design Space Design 3.1 Tools for Design Space Design ...

  7. 【CV】RegNet:通用 CNN 网络设计空间(Design Spaces)设计范式

    论文名称:Designing Network Design Spaces 论文下载:https://arxiv.org/abs/2003.13678 论文年份:2020 论文被引:446(2022/0 ...

  8. 深度网络架构的设计技巧(三)之ConvNeXt:打破Transformer垄断的纯CNN架构

    单位:FAIR (DenseNet共同一作,曾获CVPR2017 best paper),UC伯克利 ArXiv:https://arxiv.org/abs/2201.03545 Github:htt ...

  9. 深度网络架构的设计技巧<一>:Can CNNs Be More Robust Than Transformers?

    导读:启发于Transformer结构,作者将三种设计引入到CNN中,加强后的CNN取得比ViT更强的鲁棒性.这三种设计,实现简单,仅仅几行代码就能实现高效的CNN结构设计. ArXiv: https ...

最新文章

  1. 眼图在通信系统中有什么意义_悟空CRM:施行CRM系统对汽车行业有什么意义
  2. uni-app小程序v-show内容始终不显示
  3. 解决Linux下MySQL启动错误Starting MySQL.Manager of pid-file quit without updating file.[FAILED]...
  4. QPainter类的CompositionMode各值含义
  5. iCollections 7 for Mac(桌面整理工具)
  6. 【工具分享】一个阿里出品的免费在线图表制作工具(ChartCube 图表魔方)
  7. sumif单列求和_Sumif、Sumifs单列多条件求和-阿里云开发者社区
  8. 建筑识图与构造【2】
  9. 直击AI场景化实践:在部分行业可取代人工
  10. 中国省市地图json数据包及解析
  11. 百度地图的POI帮助文件
  12. 与其坐而论道,不如起而行之
  13. 关于0x016f2818这个幻数
  14. 蚂蚁金服收购Kakao,完善移动金融布局
  15. PostgreSQL入门基本语法之DDL-(user、database、schema)
  16. 插入排序原理及实现思路
  17. 单片机c语言关键字 id,单片机关键字sfr和sbit的理解
  18. JavaScript设计模式 Item 6 --单例模式Singleton
  19. 2.13黑马培训日记
  20. 交互设计师的这些能力你都具备了吗

热门文章

  1. 某位死磕成都的程序员面试总结,字节+OPPO+研究所+国企,应该选择国企吗?
  2. Python3 识别图片验证码的步骤
  3. 【解决方案 三十一】Navicat数据库结构同步
  4. 你真的懂Redis的5种基本数据结构吗?这些知识点或许你还需要看看(图文并茂,浅显易懂,建议收藏)
  5. 拉格朗日函数相关推导
  6. WORD文档的超链接无法打开
  7. 从收集到输出:盘点那些强大的知识管理工具——优秀笔记软件盘点
  8. x光肺部分割数据集_LIDC-IDRI肺结节Dicom数据集解析与总结
  9. xilinx的DDR IP中的自刷新功能
  10. UEFI-PciHostBridge