自注意机制论文学习: On the Relationship between Self-Attention and Convolutional Layers
背景
Transformer模型的提出在自然语言处理领域产生了深远的影响。这种模型架构得益于自注意力机制的发展,在这种架构中尤其是自注意力(Self-Attention)机制的应用取得了显著的效果(参考文献[1][2])。本文探讨的重点在于通过理论与实验论证自注意力机制能够替代传统的卷积操作以实现类似的特征提取功能,在这一基础上为其在图像领域的应用提供了坚实的理论支撑和实验依据(参考文献[3])。
论文理论部分
(1)多头自注意机制
称X\in \mathbb{R}^{T\times D{in}}为输入矩阵,在自然语言处理领域中该矩阵由T个独立的 Din 维 token 构成;同样地,在图像处理领域中每个像素的位置和特征都可以被映射到相应的词汇表示中。(关键对应:像素位置与相应词汇表达的关键关联 )

该自注意力层从输入空间D_{in}映射至输出空间D_{out}的过程如图所示。其中A表示attention scores,在经过 softmax 函数处理后得到attention probabilities。该层主要包括三个关键参数:查询权重矩阵(Query Weight Matrix)W_{qry}\in \mathbb{R}^{D_{in}\times Dk}、关键词权重矩阵(Key Weight Matrix)W_{key}\in \mathbb{R}^{D_{in}\times D_k}以及值权重矩阵(Value Weight Matrix)W_{val}\in \mathbb{R}^{D_{in}\times D_{out}}。这些参数共同作用于输入序列进行变换操作,并其机制与标准自然语言处理领域中的self-attention机制基本一致,在像素序列对应于词序列这一前提下完成数据处理过程。

基于仅关注相关性这一特点,在自注意力机制中存在一个非常重要的特性:其输出结果与输入序列无关(引出位置编码属性)

该文采用多头自注意力机制,在各个head中各具不同参数矩阵的情形下从而能够提取多样化的特征信息;然后将各头输出进行拼接处理以生成d_{\text{o}}维数目的最终输出向量;其中包含两个新的模型参数:投影矩阵\bm W_{\text{o}}\in\mathbb R^{n_h d_h\times d_{\text{o}}}以及偏置项\bm b_{\text{o}}\in\mathbb R^{d_{\text{o}}}.
(2)CNN卷积层机制

给定一张图片X\in \mathbb{R}^{W\times H\times D_{in}},在(i,j)位置的卷积操作由公式5详细描述。其中权重矩阵W\in \mathbb{R}^{K\times K\times D_{in}\times D_{out}}}是一个参数张量,偏置向量b\in \mathbb{R}^{D_{out}}}是一个偏移量参数,并且这里定义的变量中K表示卷积核的空间维度。

在图像中应用自注意力机制,在定义查询像素位置为q,k\in W \times H的基础上,在输入的空间维度大小为矩阵X∈ℝ^{W×H×D_in}的情况下,在保持表示的一致性的同时,在二维坐标空间中采用1维符号表示2维坐标位置,在具体实现时,则以p=(i,j)的形式对应于图像中的坐标点,在此框架下,则分别以X_p和A_p的形式来表示矩阵元素X_{ij}和A_{ij}
(3)位置编码机制
现有的位置编码方案主要包括两种:一种是绝对位置(absolute)编码,另一种是相对(relative)位置编码。在绝对位置编码机制中,每个像素的位置信息由其坐标值决定,并以一种可学习或固定的模式存储为每个像素的位置向量P_p(可学习或固定)。进而可将公式2转化为公式7

相对位置编码的核心在于仅关注查询像素与其自身的位置差异。如公式(8)所示,在这种机制中将其中绝对位参数替换为相对位置参数以实现编码过程。值得注意的是,在注意力分数计算中仅依赖于偏移量\delta:=k-q这一单一变量。其中u和v为可学习参数,在不同头层中具有各自的特点。此外,在各个头层中所对应的r\delta\in \mathbb{R}^{D_p}的空间维度上所得到的结果具有共享性。权重被划分为两个部分:W_{key}属于输入空间中的特征映射表示方法论框架的一部分;而\widehat {W}_{key}则用于表示相应的偏移信息

公式8的前三个组成部分受到输入的影响,而最后一个组成部分不受输入影响,并且用于体现全局的位置偏置。相较于公式7的改动逻辑如下:相较于公式7,在构造机制中引入了新的参数配置以增强模型的学习能力。

公式9被称作二次编码(quadratic encoding)。其中,参数\Delta^{(h)}=(\Delta_1^{(h)},\Delta_2^{(h)})和\alpha^{(h)}分别对应中心点以及attention区域的大小 ,这些值均经由学习获得。而\delta=(\delta_1,\delta_2)则是一个固定的表征查询像素与关键词像素之间的相对位移

论文证明部分

定理1阐述了以multi-head自注意力机制为框架的网络架构设计。该架构由多个并行的注意力头组成,在每个头中输入经过线性变换后得到d_h维特征向量,并通过多头交互生成最终d_{out}维表示空间。值得注意的是,在实际应用中发现当输出通道数与单个头的输出维度不匹配时(即d_h < d_{out}),权重矩阵\mathbf{W}_{\text{o}}^{\text{o}}相当于一个升维操作,在这种情况下特征提取能力将无法完全反映原始卷积操作的属性特性。因此,在实际应用中通常会采用d_h = d_{out}以确保一致性和完整性

上述定理表明,在适当配置参数时,multi-head自注意力层能够表现出与卷积层相似的效果。具体而言,在每个头(head)计算其注意力分数时会关注不同偏移距离范围内的像素,并且这些偏移值均落在集合Δ_K={−⌊K/2⌋,…,⌊K/2⌋}范围内。这种设计使得整体效果等价于一个K×K尺寸的卷积核(如图1所示)。值得注意的是,在卷积神经网络中除了核尺寸外还有许多其他超参数需要考虑。
Padding: 在标准多头自注意力层中,默认采用"SAME"填充模式;然而,在卷积层中执行深度可分离ConvNets时,默认会减小K−1 pixels的高度和宽度;因此,在深度可分离ConvNets中减少边界影响的一种合理做法是为输入图像施加\lfloor K/2\rfloor零填充
代码
参考文章
[1] 基于增强的卷积网络
[2] 视觉模型中的独立自注意力机制
[3] 仅需关注就足够了
[4] 探讨自注意力与卷积层之间的关系
[5] https://cloud.tencent.com/developer/article/1579458
[6] https://zhuanlan.zhihu.com/p/104026923
[7] https://www.cnblogs.com/shiyublog/p/11236212.html
