文章目录

  • 一、背景
  • 二、动机
  • 三、方法
    • 3.1 增强残差连接
    • 3.2 使用循环映射进行高效实现
  • 四、效果


论文链接: https://arxiv.org/abs/2106.15941
代码链接:未开源

一、背景

Transformer 已经在计算机视觉领域的某些任务上取得了超越 CNN 的效果。在 Transformer 的结构中,self-attention 和 MLP 模块前后通常会使用残差连接。残差连接最初是在 CNN 的结构中提出,用来缓解梯度消失问题。

二、动机

有些文章指出,没有残差连接的结构的网络效果很差,如表 1 所示,移除残差连接后,随着网络的加深,会使得不同 patch 的特征丧失区别性,如图3a所示。

这些特征无法支撑后续的预测工作。作者把这个现象叫做 feature collapse(特征崩塌)。在加上残差连接之后,能缓解上述现象,如图3 b 所示。

但是,一般的残差连接仅仅是把输入加到输出上,这会限制特征的不同性。于是,本文提出了一种增强残差连接,来提升 vision transformer 中的特征差异性。

三、方法

本文提出的增强残差连接结构如图 1 所示,除了基本的残差连接以外,作者提出了一个与 MSA 并行的模块,该模块有多个参数。为了降低计算成本,作者提出了使用块循环映射的方法来实现增强残差连接。

3.1 增强残差连接

使用 T 个增强残差连接的 MSA 模块可以表示如下:

  • Tli(.)T_{li}(.)Tli​(.) 是第 lll 个 layer 的第 iii 个增强残差连接
  • Θli\Theta_{li}Θli​ 是增强残差连接的参数

不同于传统的残差连接,增强残差连接能够将输入映射到另外一个特征空间,只要其参数是不同的,那么就可以把输入映射为多个不同的特征,丰富特征空间。

Tli(.)T_{li}(.)Tli​(.) 的一个简单的形式就是一系列的线性映射和激活函数的堆叠:

  • Θli∈Rd×d\Theta_{li}\in R^{d\times d}Θli​∈Rd×d 是权重矩阵
  • σ\sigmaσ 是非线性激活函数(如GELU)
  • 上式中,Tli(.)T_{li}(.)Tli​(.) 独立的处理每个 patch,能够保留其各自的特征,是对 MSA 的一个补充(MSA 会把不同 patch 的特征进行聚合)

使用 T 个增强残差连接的 MLP 如下:

  • 使用多个增强残差连接同样能够增大特征多样性

作者把同时使用 AugMSA 和 AugMLP 的模块叫做 Aug-ViT 模型,该模型的特征有更大的多样性,如图 3c 和图 4 所示。

3.2 使用循环映射进行高效实现

直接使用如公式 8 所示的方法来实现 Tli(.)T_{li}(.)Tli​(.) 会涉及到很多矩阵相乘,会很耗资源,所以作者提出了一种 “block-circulant matrices”

Circulant matrix 是频域中的一种特殊的结构化矩阵,参数和计算量都很少。

一个 Circulant matrix C∈Rd′×d′C \in R^{d' \times d'}C∈Rd′×d′ 仅有 d′d'd′ 个参数,两个 CCC 相乘的计算复杂度为 O(d′logd′)O(d' log d')O(d′logd′) (使用快速傅里叶变换 FFT)。

原始的参数矩阵 Θ\ThetaΘ 被切分成 b2b^2b2 个子矩阵 Cij∈Rd′×d′C^{ij} \in R^{d' \times d'}Cij∈Rd′×d′

  • d′d'd′ 是子矩阵的尺寸,bd′=dbd'=dbd′=d
  • 每个 CijC^{ij}Cij 都是通过循环 d′d'd′ 维向量 cij=[c1ij,ci2ij,...,cd′ij]c^{ij}=[c_1^{ij}, c_i2^{ij},..., c_{d'}^{ij}]cij=[c1ij​,ci​2ij,...,cd′ij​] 中的元素得到的:


为了实现投影映射 T(Z)=σ(ZΘ)T(Z)=\sigma(Z\Theta)T(Z)=σ(ZΘ),作者首先将输入 ZZZ 拆分为 bbb 个切片,然后对每个切片乘以循环矩阵 CijC^{ij}Cij,元定义域中的循环矩阵和向量直接的乘积,等价于傅里叶域中的元素相乘,输出的计算方式为:

四、效果

图 5 展示了不同模型的特征图,没有残差连接的深层的特征图已经没有有用的信息了(a),加上残差连接是(b)的效果,加上 Aug-ViT 是(c)的效果,可以看出(c)的特征最丰富。

总之,残差连接是 vision transformer 的一个非常重要的部分,能够有效避免特征崩溃,而增强残差连接能够将输入特征映射到更丰富的特征空间,让特征更加丰富。

【Transformer】Augmented Shortcuts for Vision Transformers相关推荐

  1. 【Transformer】医学分割领域的应用与扩展(论文阅读)(二) || DETR

    声明:仅学习使用~ 目录 1. Transformer学习 2. DETR 1. Transformer学习 前篇指路:[Transformer]医学分隔领域的应用与扩展(论文阅读)(一) 继续- 关 ...

  2. 【论文笔记】Combining EfficientNet and Vision Transformers for Video Deepfake Detection

    * Combining EfficientNet and Vision Transformers for Video Deepfake Detection 题目:结合高效网络和视觉变压器进行视频深度虚 ...

  3. 【Transformer】一文搞懂Transformer | CV领域中Transformer应用

    目录 阅读本文的基础: 一.发展历史: 二.从上向下的理解Transformer 1.Transformer整体结构简单介绍 2.Transformer中的Self-attention (1)引入 ( ...

  4. 【时间序列】TFT:Temporal Fusion Transformers

    分享最近精读的论文:TFT (Temporal Fusion Transformers) 一种针对多步预测任务的Transformer模型,并且具有很好的可解释性.推荐阅读:4星. 论文:2019 | ...

  5. [Transformer]CvT:Introducing Convolutions to Vision Transformers

    CvT:将卷积引入Transformer
 Abstract Section I Introduction Section II Related Work Section III Convolutio ...

  6. 【Transformer】CLS(classification)有什么用?

    CLS]就是classification的意思,可以理解为用于下游的分类任务. 一句话理解:[CSL]就是一个向量,只是不是某一个字的向量,是一个够代表整个文本的的语义特征向量,取出来就可以直接用于分 ...

  7. 【Transformer】《PaLM-E: An Embodied Multimodal Language Model》译读笔记

    <PaLM-E: An Embodied Multimodal Language Model> 摘要 大语言模型已被证明可以执行复杂的任务.不过,要在现实世界中实现通用推理,例如解决机器人 ...

  8. 【Transformer】TransMix: Attend to Mix for Vision Transformers

    文章目录 一.背景和动机 二.方法 2.1 Mixup 2.2 TransMix 三.效果 代码:https://github.com/Beckschen/TransMix 一.背景和动机 基于 mi ...

  9. 【Transformer】ATS: Adaptive Token Sampling For Efficient Vision Transformers

    文章目录 一.背景 二.动机 三.方法 3.1 Token Scoring 3.2 Token Sampling 四.效果 一.背景 尽管现有的 transformer 模型在分类等任务上取得了较好的 ...

最新文章

  1. C++对象的内存分析(2)
  2. 《SAS编程与数据挖掘商业案例》学习笔记之九
  3. 二本 计算机专业2017分数线,2017年二本心理学专业大学排名及分数线
  4. 单片机 c语言 概念题,(C语言版)单片机复习题.doc
  5. LeetCode 73. 矩阵置零(两个标记变量)
  6. spring中如何实现参数隐式传递_Java进阶架构之开源框架面试题系列:Spring+SpringMVC+MyBatis(含答案分享)...
  7. 加速下载 玩转土豆网FLV视频四招
  8. 平板连接远程Linux,如何从Android平板电脑远程控制Ubuntu | MOS86
  9. .jpeg 格式图片URL在浏览器里默认是下载
  10. NVIDIA详细解读游戏中DX9与DX11差别
  11. 系统设计面试题之 怎么设计一个打分系统
  12. 更改计算机网络密码,宽带密码修改后断网,怎样修改路由器密码
  13. Linux kernel log与调试
  14. 安装k8s时,报CA证书加载失败的错误
  15. 求助:大文件mp4恢复
  16. 浅谈项目经理的工作职责
  17. 阿里云代理商:阿里云跨分部抵销前营收267.6亿元,跨分部抵销后营收207.57亿元,抵销后营收环比增长达17.37%。
  18. Python软件设计基础 第八节-Tesseract-Ocr视频字幕提取
  19. 极路由3与存储的适配规划
  20. Android引导页图片拉伸问题

热门文章

  1. (二)流--递归算法
  2. centos7环境下ELK部署之elasticsearch
  3. 模拟jquery链式访问
  4. iOS新上线注意事项
  5. 转:MVC3系列:~Html.BeginForm与Ajax.BeginForm
  6. 常见数据库设计(1)——字典数据
  7. 浅析C#合并多个WORD文档的具体实现方法
  8. 路由器的基本配置--荣新IT培训带给我的......(三)
  9. 计算机风扇维修,教你简单修理电脑散热风扇
  10. php中魔术方法的应用