[Transformer]On the Relationship between Self-Attention and Convolutional Layers

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展示的是单个图像下的注意力。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### Knowledge Embedding in Deep Neural Networks Knowledge embedding within the context of deep neural networks (DNNs) refers to techniques that integrate external knowledge into DNN models, enhancing their performance and interpretability. This can be achieved through various methods depending on the type of data being processed. In drug design applications, integrating domain-specific knowledge with DNN architectures has been explored extensively[^2]. For instance, when applying DNNs for quantitative structure-activity relationship (QSAR) studies, incorporating chemical or biological insights as part of model training helps improve prediction accuracy while also providing better understanding about how these predictions are made. For general-purpose tasks such as image recognition, one approach involves using pre-trained embeddings from large datasets like WordNet or ConceptNet alongside convolutional layers found in residual network variants including ResNeXt which employs aggregated transformations across multiple pathways at each layer level [^3]. Another method is leveraging zero-knowledge proofs technology designed specifically for efficient verification processes over trained NN parameters without revealing any information beyond validity checks; this could potentially enable secure sharing mechanisms where proprietary knowledge remains protected yet still contributes positively towards overall system efficiency during inference phases [^1]. ```python import torch.nn.functional as F from transformers import BertModel class KnowledgeEnhancedNetwork(torch.nn.Module): def __init__(self): super(KnowledgeEnhancedNetwork, self).__init__() self.bert = BertModel.from_pretrained('bert-base-uncased') def forward(self, input_ids, attention_mask=None): outputs = self.bert(input_ids=input_ids, attention_mask=attention_mask) sequence_output = outputs.last_hidden_state logits = F.linear(sequence_output[:, 0]) return logits ``` This code snippet demonstrates a simple implementation combining BERT-based language modeling capabilities with custom linear transformation applied directly onto CLS token representation extracted after passing inputs through transformer encoder stack – effectively allowing integration between textual semantics captured by pretrained weights and task-oriented logic defined via additional fully connected layers appended post-extraction phase.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值