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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [论文评析] ArXiv-2021Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convo -> 正文阅读

[人工智能][论文评析] ArXiv-2021Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convo

Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convolutions


论文名称:Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convolutions
作者单位
1 Nanjing University
2 The University of Hong Kong
3 Nanjing University of Science and Technology
4 IIAI
5 SenseTime Research

基础知识

1.常见的CNN arch. vs. vision transformer (ViT) arch. vs. pyramid ViT.
在这里插入图片描述如图(a), 经典的CNN arch通过stack CNN 层来学习一个层次化的feature representations, 并且随着层数的增加, 感受野越来越大, channel数越来越大, feature map尺寸越来越小,然后后边连接一到多个特定的任务网络来执行具体的任务;
如图(b), 经典的ViT是一个柱式结构,实际上就是stack transformer block, 为了把NLP中的Transformer用到Vision中, 惯用做法是通过网格化把figure转化为sequence of patches, 每个patches的尺寸一般为32 x 32, ViT目前主要用于image classification等image-levely预测任务;
如图?, 即为所提出的Pyramid Vision Transformer (PVT), 也是首先把figure 转化为Sequence of patches, 从结构来说也是学习一个层次化的representation,只不过基本的building block 已经由 Conv. 替换为 Attention module.
2.
Image-level prediction task: 图像级别的预测任务, 如 image classification;
Pixel-level dense prediction task: 像素级别的密集预测任务, 如 instance/semantic segmentation, object detection/recogniton;

动机

尽管目前ViT已经普遍应用到 image classification 等预测任务, 但是将其应用到像素级别的密集预测任务上依然很难, 原因在于:
(1) ViT输出的Feature map 为单一尺度,且分辨率低;
注:尺度单一指的是其尺度没有变化, 不像CNN arch那样可以学到层次化的representation, CNN stride也可以控制scale
(2) 直接应用的话memory consumption和computation cost 都是不可接受的;

贡献

1.提出了所谓的Pyramid Vision Transformer (PVT), PVT可以作为各种密集预测任务的backbone。进一步将PVT个DETR结合可以构建端到端的目标检测系统, 无需Conv. operation, 无需dense anchors和non-maximum supression 等人工设计成分;
2.在PVT设计中,提出渐进收缩的特征金字塔pyramid结构和所谓的 spatial reduction attention (SRA)使其成功应用于密集预测任务,这两个部件保证PVT可以输出多尺度的高分辨率feature map;
3.作者展示了几种不同配置的PVT, 在各种预测任务上都取得了优于当前最好的结果, 如下图
在这里插入图片描述

PVT architecture

在这里插入图片描述
如上图所示, PVT由多个Stage { S t a g e i } i = 1 4 \{Stage_{i}\}_{i=1}^{4} {Stagei?}i=14?堆砌组成,每个Stage 由一个Patch embedding层和多个building blocks (即图中的Transformer Encoder)组成, 其中:

Patch embedding的作用是将上一个Stage的输出转化为Sequence of tokens以为后面的attention做准备, 每个tokens实际上对应一个patch, 直观地看是见笑了spatial size。
每个building block (即attention module) 实际上就是在sequence of tokens上计算全局global的attention, 而CNN 总是在提取局部local的pattern.

与Transformer类似, 每个building block由一个attention module (即SRA)和一个Feed Forward层组成。

假设输入 X ∈ R H x W x 3 X \in R^{H {\rm x} W {\rm x} 3} XRHxWx3, 经过第一个Stage的输出为 F 1 ∈ R H 4 x W 4 x C 1 F_{1} \in R^{\frac{H}{4} {\rm x} \frac{W}{4} {\rm x} C_{1}} F1?R4H?x4W?xC1?, 经过第二,三,四个Stage的分别 F 2 ∈ R H 8 x W 8 x C 2 F_{2} \in R^{\frac{H}{8} {\rm x} \frac{W}{8} {\rm x} C_{2}} F2?R8H?x8W?xC2?, F 3 ∈ R H 16 x W 16 x C 3 F_{3} \in R^{\frac{H}{16} {\rm x} \frac{W}{16} {\rm x} C_{3}} F3?R16H?x16W?xC3?, F 4 ∈ R H 32 x W 32 x C 4 F_{4} \in R^{\frac{H}{32} {\rm x} \frac{W}{32} {\rm x} C_{4}} F4?R32H?x32W?xC4?, 这样一来, { F i } 1 4 \{F_{i}\}_{1}^{4} {Fi?}14?就形成了一个层次化的feature representation,

下面介绍PVT中的几个关键部分:

Patch Embedding

PVT实际上就是在利用Patch Embedding来控制feature map的尺度, 通过在每个Stage中加上一层Patch Embedding 从而渐进式地得到一个层次化的多尺度Feature map.

Patch Embedding操作首先把figure分割为多个patches ,然后对每个Patch进行Linear Projection即可。 形式化定义
假设第 i i i个Stage的的patch size 为 P i P_{i} Pi?, 对于输入 F i ? 1 ∈ R H i ? 1 x W i ? 1 x C i ? 1 F_{i-1} \in R^{H_{i-1} {\rm x} W_{i-1} {\rm x} C_{i-1}} Fi?1?RHi?1?xWi?1?xCi?1?,
F ^ i ? 1 = R e s h a p e ( F i ? 1 ) \hat{F}_{i-1}=Reshape(F_{i-1}) F^i?1?=Reshape(Fi?1?)
P E = L P ( F ^ i ? 1 ) PE=LP(\hat{F}_{i-1}) PE=LP(F^i?1?)
其中 F ^ i ? 1 ∈ R H i ? 1 W i ? 1 P i 2 ? ( P i P i x C i ? 1 ) \hat{F}_{i-1} \in R^{\frac{H_{i-1}W_{i-1}}{P_{i}^{2}} \cdot (P_{i} {\rm} P_{i} {\rm x} C_{i-1} )} F^i?1?RPi2?Hi?1?Wi?1???(Pi?Pi?xCi?1?), P E ∈ R H i ? 1 W i ? 1 P i 2 x C i PE \in R^{\frac{H_{i-1}W_{i-1}}{P_{i}^{2}} {\rm x} C_{i}} PERPi2?Hi?1?Wi?1??xCi?
Reshape表示网格化figure为patches, LP表示逐Patch的Linear projection。

Spatial reduction attention (SRA)

所谓的SRA实际上就是在计算Attention之前对Flatten之前的Key和Value进行一个所谓的Spatial Reduciton以减小Spatial size, 如下图所示:
在这里插入图片描述
形式化定义
S R A ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . , h e a d N i ) W o SRA(Q, K, V)=Concat(head_{1}, ..., head_{N_{i}})W^{o} SRA(Q,K,V)=Concat(head1?,...,headNi??)Wo
h e a d j = A t t e n t i o n ( Q W j Q , S R ( K ) W j K , S R ( V ) W j V ) head_{j}=Attention(QW_{j}^{Q}, SR(K)W_{j}^{K}, SR(V)W_{j}^{V}) headj?=Attention(QWjQ?,SR(K)WjK?,SR(V)WjV?)
A t t e n t i o n ( X , Y , Z ) = S o f t m a x ( X Y d m o d e l ) Z Attention(X, Y, Z)=Softmax(\frac{X^{Y}}{\sqrt{d_{model}}})Z Attention(X,Y,Z)=Softmax(dmodel? ?XY?)Z
其中, W j Q , W j K , W j V ∈ R C i x d m o d e l W_{j}^{Q},W_{j}^{K},W_{j}^{V} \in R^{C_{i} {\rm x} d_{model}} WjQ?,WjK?,WjV?RCi?xdmodel?,

S R ( X ) = N o r m ( R e s h a p e ( X , R i ) W s ) SR(X)=Norm(Reshape(X, R_{i})W^{s}) SR(X)=Norm(Reshape(X,Ri?)Ws)

可以看到SRA与Multi-head Attention (MHA)相比, 唯一区别在于对Key和Value进行了SR操作,
时间复杂度分析
SR操作将Key和Value flatten之后的Vector长度减小为原来的 1 R i 2 \frac{1}{R_{i}^{2}} Ri2?1?, 由于只对Key和Value进行了SR操作,没有对Q进行SR操作,因此最终时间复杂度减小为原来的 1 R i 2 \frac{1}{R_{i}^{2}} Ri2?1?.

下面介绍SR的具体实现
输入 X ∈ R ( H i W i ) x C i X \in R^{(H_{i} {W_{i}) {\rm x} C_{i}}} XR(Hi?Wi?)xCi?表示已经在Spatial 方向进行了Flatten操作, Reshape操作之后的尺寸为 R H i W i R i 2 x R i 2 C i R^{\frac{H_{i}W_{i}}{R_{i}^{2}} {\rm x} R_{i}^{2}C_{i} } RRi2?Hi?Wi??xRi2?Ci?, 然后再经过一个Linear Projection, transform matrix为 W s ∈ R ( R i 2 C i ) x C i W^{s} \in R^{(R_{i}^{2}C_{i}) {\rm x} C_{i}} WsR(Ri2?Ci?)xCi?, 因此最终 S R ( X ) ∈ R H i W i R i 2 x C i SR(X) \in R^{\frac{H_{i}W_{i}}{R_{i}^{2}} {\rm x} C_{i} } SR(X)RRi2?Hi?Wi??xCi?. 从最终的效果看,有点类似Pooling操作。

Over.

点评

怎么说呢,
1.Feature Pyramid architecture 这个东西早就已经设Vision Transformer这块的标准配置了,就像空气一样,例如Focal self-attentionCross Former 等等,不在此一一列举, 不清楚的人还以为是这篇论文的首创。
2. SRA模块
仅仅只是对MHA输入参数Key和Value的尺寸进行了缩减, 仅此而已。

总结

Reference

1.ArXiv, 2021, Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convolutions

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/12 1:38:12-

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