IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度网络设计技巧(五)之VAN:Visual Attention Network#超越Swin的纯CNN# -> 正文阅读

[人工智能]深度网络设计技巧(五)之VAN:Visual Attention Network#超越Swin的纯CNN#

在这里插入图片描述

单位:清华,南开(程明明团队)
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带来了性能提升,还是大核注意力起了作用,有点存疑!



摘要

尽管初衷为自然语言理解而设计的,但最近自注意力机制已经席卷了计算机视觉各个领域。但是,图像的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

在这里插入图片描述
S t a n d a r d C N N = D W C N N + D i l a t e d C N N + P W C N N Standard^{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 ∈ R C × H × W F \in R^{C \times H \times W} FRC×H×W是输入特征, A t t e n t i o n ∈ R C × H × W Attention \in R^{C \times H \times W} AttentionRC×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_features
        hidden_features = hidden_features or in_features
        self.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 × C H \times W \times C H×W×C,那么参数量和运算量计算如下:
在这里插入图片描述
这里前提是参照上述解耦图,即一个 K × K K \times K K×K的卷积可以分解为一个dilation=d、卷积核为 K d \frac{K}{d} dK?的Depth-wise dilation convolution,一个 ( 2 d ? 1 ) ( 2 d ? 1 ) (2d-1)(2d-1) (2d?1)(2d?1)的DW-CNN,以及一个 1 × 1 1 \times 1 1×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)。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:23:46  更:2022-07-17 16:27:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:24:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码