卷积与自注意力之间的关系:MHSA可以表示任意卷积操作

  • Abstract
  • Section I Introduction
  • Section II Background of Attention Mechanisms for Vision
    • Part 1 Multi-Head Self-Attention Layer
    • Part 2 Attention for Images
    • Part 3 Positional Encoding for Images
  • Section III Self-Attention as a Convolutional Layer
  • Section IV Experiments
    • Part 1 Quadratic Encoder
    • Part 2 Learned Relative Positional Encoding
  • Section V Related Work
  • Section VI Conclusion
  • Appendix

from ICLR2020
Paper

Abstract

近期越来越多的研究将NLP中的注意力机制融入到视觉任务中,注意力除了能后辅助CNN建立长程依赖关系,也有研究指出注意力可以完全取代卷积操作,同样达到SOTA结果。这就引出一个问题:注意力层的操作是否同卷积操作类似呢?
本文的工作指出,注意力层可以执行像卷积一样的操作,尤其是本文还证明了多头注意力只要注意力头数足够是可以表征任意卷积层的。本文铜鼓哦大量实验证明自注意力层可以像卷积层一样执行像素级别的特征提取。

Section I Introduction

Transformer在NLP领域大放异彩,基于Transformer的无监督模型,如GPT-2,BERT也在诸多大型语料库上展示出能够学习文本低层结构的能力和学习跨任务的表示。Transformer与之前RNN,CNN的区别在于前者可以同时计算序列中每一个单词之间的依赖关系,这一点主要因为注意力机制可以更好的建模长程依赖关系,通过自注意力的计算来表征两个单词之间的相似程度,并且每个单词都会根据计算得到的注意力分数进行更新。
受启发于注意力可以学习单词之间的依赖关系,有的研究人员开始考虑在计算机视觉领域引入注意力机制,比通道注意力或者non-local Net;还有一些工作尝试将CNN中的部分卷积层替换成自注意力层,也提升了在图像分类和目标识别任务上的效果。有趣的是Ramachandran等人的研究发现虽然CNN和注意力的混合模型可以达到SOTA,但是纯注意力模型在达到同样的计算成本和模型大小下也能达到既有竞争力的分类精度。



上述实验结果引出一个问题:自注意力层会采取和卷积层类似的方式来处理图像吗?从理论上来说Transformer可以建模任何关系,包括CNN,事实上Perez等人的研究也表明,在一些较强的理论家设下使用位置编码的多层注意力结构是图灵完备的,但是还么有一些普遍的研究结果揭示他们到底是如何工作的,只是通过实验或理论分析证明它们有这种能力。因此关于自注意力层如何处理图像这一问题仍有待解答。


本文的贡献如下:



(1)从理论层面证明了自注意力层可以表示任意卷积层;使用相对位置编码的单一多头自注意力层可以重参数化来表示任意卷积层。




(2)从实验结果分析,在纯注意力架构的前几层确实学习查询每个pixel附近网格的信息,与本文的理论分析是吻合的。

Section II Background of Attention Mechanisms for Vision

首先回顾一下自注意力层的计算,强调一下位置编码的重要性。

Part 1 Multi-Head Self-Attention Layer

设输入为X,会编码为Din维度的Token,共T个。在NLP中每个Token代表句子中的一个单子,在其他任务中token则可以表示任意独立的实体,比如像素点。自注意力会将任意输入token做以下操作:

其中A表示注意力矩阵,维度为TxT
每一个元素代表的是注意力分数,为了简化说明本文省略了残差连接、BN和常量。


自注意力的一个关键特点是未知不变的即如果将输入打乱依旧会得到同样的注意力输出结果;当任务中事物的顺序对结果有影响时自注意力就会出问题;为了减轻这一限制,会使用位置嵌入来为每个像素编码位置信息,并在自注意力计算之前将位置信息添加到token中:

P可以是任意能够表征位置信息的函数。
在时间中还发现,使用多个注意力头是右移的,因为每个头可以通过使用不同的K-V-V来关注输入的不同部分,多头注意力表示为:

多了两个参数:projection matrixWout和偏执项bout。

Part 2 Attention for Images

目前卷积依旧是图像任务的首选基础操作,回顾一下卷积操作:


主要就是学习权重矩阵和偏置项
接下来探讨注意力如何从1D序列迁移到2D图像。此时输入不再是单词而是维度为WxHxD的张量,每一个k-q计算得到注意力分数,使用p=(i,j)表示位置在(i,j)处的注意力输出。

Part 3 Positional Encoding for Images

在基于Transformer的框架中目前有两种位置编码方案:绝对位置编码和相对位置编码。


绝对位置编码会计算一个固定的或者可学习的向量p分配给每个像素点,然后在继续计算注意力分数。






相对位置编码主要计算的是当前像素和其他像素之间的相对位置差异,并不是绝对位置。
可以看到注意力分数只取决于二者的位移。

Section III Self-Attention as a Convolutional Layer

本节主要推导多头注意力可以表示卷积层的充分条件。

定理1:具有Nh个头,每个头维度为Dn的多头注意力层加上相对位置编码可以编码任意卷积核大小为根号Nh的卷积层,输出维度为min(Din,Dout)
。
这一定理可以通过设置多头注意力的一些参数来重参数化表示卷积操作,每个头的注意力得分应该是当前位置在[-K/2,K/2]范围内不断位移的结果

定理2:上述条件可以通过相对位置编码满足。需要学习的就是每一个head的中心位置和需要关注的宽度,(δ1,δ2)表示q-k之间的相对位移。

但需要注意的是学习到的编码并不是满足订定理1的唯一编码。
接下来看这种编码方式能不能让注意力cover所有的卷积类型

**Padding:MHSA默认使用SAME的填充方式,卷积则会使空间分辨率减小K-1个像素。为了达到相同的效果可以通过对输入每边填充K/2个零,这样就使得注意力和卷积输出大小与一样了。
Stride:步长卷积可以看做是卷积后跟一个池化操作,主要是为了优化计算,引理1中定义了步长为1,可以在自注意力层上添加一个固定池化层来模拟任意步长卷积。



Dilation:**MHSA可以表示任意空洞卷积,因为每个head学习相对当前query的唯一,可以这样就形成一个任意扩张的模式。



接下来证明上述定理。




引理1:
设多头注意力头数为Nh=K^2,f是head到shift的映射,则存在一个MHSA来表示当前KxK大小的卷积,每一个头在q-k范围内softmax后为1,范围之外置零。






MHSA的计算公式


需要学习的就是每一个注意力头的范围和各自的权重Wval
将每一个头的权重矩阵加和起来 就是对当前query的输出。
在Transformer模型中一般Dn = Dout、Nh 那么每个head的权重秩为Dout-Dn,这样不足以表征Dout个通道的卷积层,因此本文规定能表示的卷积层的通道数为min(Dn,Dout) ,并且在实际操作中本文建议将head级联起来而不是在Dout个通道中分head。

引理2:存在一种相对编码方案使得每个位置存在一种相对编码方案,使得按照这种方案编码后的结果和

一样

δ=k-q也就是query和key之间的相对距离,那么
表示为存在一个合适的位移使得注意力分数达到最大值-αc,α系数主要用来调控Aq与∆和其他注意力分数之间的差异。
当∆=δ时softmax极限

Section IV Experiments

接下来的实验主要就是验证本文的理论假设——注意力可以执行向卷积一样的操作,并且本文还研究了相对位置编码和卷积之间的关系。

实验细节
本文使用的模型包含6层MHSA

数据集 CIFAR-10,ImageNet


对比网络ResNet


为了验证本文的自注意力模型的性能,Table 1展示了在CIFAR-10上的模型精度和模型尺寸。从Fig2可以看到ResNet收敛的会更快,但是不能确定是因为架构还是人工调参的产物。本文的优势可以利用高斯分布的局部注意力来减少失误的次数。此外还发现基于内容的注意力学习嵌入更难训练,可能和参数增加也有关。

Part 1 Quadratic Encoder

首先验证的就是在Equation(9)中使用相对位置编码
本文设置head_number=9 这样可以表示3x3的卷积大小。
每个head的注意力中心按∆ (h) ∼ N(0, 2I 2 )初始化。


Fig 3展示了第四层不同的head在训练过程中的位置变化,可以看到随着优化进行,head逐渐定位到图像的特性像素位置上,在query周围星星一个网格。
这样就证实了自注意力用于图像可以学习像卷积一样的行为。

Fig 4展示了每一层的注意力头训练结束后的位置。可以看到浅层次主要关注局部模式,深层次的head会定位到距离query更远的位置来关注更大的模式。并且有趣的是这些head互相并不冲突,似乎会逐渐以一种最大限度覆盖图像的空间策略来安排。

Part 2 Learned Relative Positional Encoding

接下来研究使用相对位置编码的影响,分别学习关于当前query行上的偏移和列上的偏移。
首先本文不使用输入数据计算内容,单独计算注意力分数,得到每一层每个head的注意力概率,参见Fig 5,可以看到有的head会关注单独的像素点,这与引理1的提哦啊见相吻合;其他的注意力则会关注一些水平对称但非局部的模式,或者一些长距离像素之间的依赖关系。

然后是使用相对位置编码和基于内容的嵌入,得到的注意力概率分布展示在Fig 6.本文计算的是平均了100张测试图上的注意力概率,来勾勒出每个head的焦点,并消除了对输入图像的依赖,从layer2-3可以看出:有的head可以关注到query像素附近的区域,类似卷积的局部感受野。其他的head则关注基于内容的注意力。


当query像素在图像上滑动时,就能看出卷积和注意力之间的相似性了:

从Fig6中可以看到会随着query pixel进行局部查询,这样就实现了卷积的局部感受野特征提取操作。也可以参考附录的Fig 7能看的更清楚,可以帮助我们更好的理解MHSA是怎样处理图像的。

Section V Related Work

本节将回顾CNN与Transformer之间的相似和差异。
Transformer主要用来处理文本任务,CNN在这上面的应用就比较少。但近期也有研究将Transformer应用到图像任务,显示出与ResNet相近的性能,但是在参数量、计算量上不占优势。
除了计算量和参数量的差异,二者的差别还体现在捕获长程依赖的能力上。有的研究显示Transformer是图灵完备的,本文则是第一个证明自注意力可以包含所有卷积操作的研究。

在弥合注意力和卷积之间的差距方面Andreoli等人的工作是将注意力和卷积迁移到一个统一的框架内,一种是基于索引的卷积-类似自注意力,一种是基于内容的卷积。本文的工作则提出使用相对位置编码将基于内容的计算用来表示基于任何索引的计算。并且是可以通过学习得到。

Section VI Conclusion

本文证明了用于推向的自注意力可以表达任意卷积,只要注意力头的数目足够,这种全注意力模型可以学习局部注意(类似卷积)和全局注意(基于内容的全局注意)。

未来的工作可以尝试将CNN中一些有趣的改进方式应用到Transformer中来处理不同的输入模式数据,比如图像、文本、时间序列。

Appendix

Content-based Attention
Fig 7展示了query滑动下的平移不变洗,Fig 8-10展示的是单个图像下的注意力。



[Transformer]On the Relationship between Self-Attention and Convolutional Layers相关推荐

  1. Transformer不比CNN强!Local Attention和动态Depth-wise卷积的前世今生

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Qi Han@知乎(已授权) 来源丨https://zhuan ...

  2. ICLR 2022 | Transformer不比CNN强!Local Attention和动态Depth-wise卷积

    ©作者 | Qer 单位 | 南开大学 研究方向 | 计算机视觉 Transformer 的文章近两年来可谓是井喷式爆发,大量工作来设计各种任务上的 transformer 模型,然而,attenti ...

  3. [VOT14](2022CVPR)CSWinTT: Transformer Tracking with Cyclic Shifting Window Attention

    先贴一个算法整体框架图: Abstract 问题背景:Transformer架构得益于其有效的注意力机制已经在目标跟踪领域展示了巨大的优势. 提出问题:现有的Transformer追踪器都采用了在拉展 ...

  4. GAU : Transformer Quality in Linear Time(new attention+)

    Transformer Quality in Linear Time 本文提出一种新型高效(速度,内存,效果)的注意力方法,依然具有N^2的复杂度(N:同一个 attention 中词向量的个数).对 ...

  5. When Shift Operation Meets Vision Transformer: An Extremely Simple Alternative to Attention Mechanis

    文章目录 Abstract Introduction Related Work Shift Block Architecture Variants Experiment Ablation Study ...

  6. Transformer前言:self-attention与Multi-Headed Attention的详细理解

    在此特别感谢李宏毅老师的课程,真的是醍醐灌顶. 论文地址: <Attention Is All You Need> 引入: self-attention是一种新的注意力机制,transfo ...

  7. attention seq2seq transformer bert 学习总结 _20201107

    https://blog.csdn.net/weixin_44388679/article/details/102575223 Seq2Seq原理详解 一文读懂BERT(原理篇) 2018年的10月1 ...

  8. 谷歌NIPS论文Transformer模型解读:只要Attention就够了

    作者 | Sherwin Chen 译者 | Major,编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 导读:在 NIPS 2017 上,谷歌的 Vaswani 等人提出了 T ...

  9. Paper:2017年的Google机器翻译团队《Transformer:Attention Is All You Need》翻译并解读

    Paper:2017年的Google机器翻译团队<Transformer:Attention Is All You Need>翻译并解读 目录 论文评价 1.Motivation: 2.创 ...

最新文章

  1. python学习笔记-5.18
  2. request获取中文乱码的问题
  3. LTTng 简介使用实战
  4. Java对象内存结构
  5. of_property_read_string 剖析~
  6. 内核中的UDP socket流程(6)——sendto
  7. Atitit mysql 存储kv 以及php js接口目录kv_mysql.js 1Set.php 1Get.php 2CREATE TABLE `cfg` ( `k`
  8. python颜色识别,46行代码实现865种颜色识别,看过的都说顶呱呱!
  9. PCB Layout各层含义与分层原则
  10. 如何才能快速拥有一张高含金量的IE证书?
  11. 高斯拉盖尔(Gauss-Laguerre)法则求积分(python,数值积分)
  12. 分水岭算法的理解和应用
  13. 人人网2017暑假实习生招聘-一面
  14. sketch mac版设置快捷键的小技巧
  15. 你和自律的生活,只差这三十天的计划
  16. Oracle TRIM函数
  17. 怎样用计算器画出笛卡尔心型函数
  18. Android Studio 3.5.1 最新版 网盘下载
  19. Qt Quick无边框窗口
  20. 关闭瑞星金山NOD32360窗口源码

热门文章

  1. dom4j实现XML操作
  2. 简明量子力学的学习 量子计算 笔记量子概念
  3. 搭建系统|继承backtrader的本地量化回测平台如何玩转多股轮动策略!
  4. 懂得换位思考,是一个人的顶级修养
  5. 星际争霸等待暴雪服务器响应,服务器三个月未恢复正常,垂死挣扎的星际争霸,预示着傲慢的暴雪即将谢幕...
  6. bugku_noteasytrick
  7. 记 · leo · code 2019
  8. 乱斗西游2服务器没响应,乱斗西游2月3日维护_无法连接服务器公告_蚕豆网新闻...
  9. 互联网电视集成业务牌照
  10. 【转】“百度被黑” 分析师认为不亚于制造“911事件”