论文笔记-ON THE RELATIONSHIP BETWEEN SELF-ATTENTION AND CONVOLUTIONAL LAYERS

  • 论文信息

    • 标题: ON THE RELATIONSHIP BETWEEN SELF-ATTENTION AND CONVOLUTIONAL LAYERS
    • 作者:Jean-Baptiste Cordonnier, Andreas Loukas & Martin Jaggi
    • 机构:Ecole Polytechnique Federale de Lausanne (EPFL)
    • 出处:ICLR 2020
  • 代码链接

    • https://github.com/epfml/attention-cnn
  • 论文主要贡献

    • 本文对自注意力层的工作机理和实验效果进行了理论证明和实际测试,结果说明自注意力层可以学习训练得到卷积层相似的功能
    • 从理论层次看来,本文通过归纳式的证明,说明了自注意力层有能力表达任何卷积层的功能
    • 从实践结果看来,单个多头自注意力层结合相对位置编码后可以表达任意卷积层;实验结果证明,只使用注意力层的网络结构中,网络可以学习到关注每个像素周围网格模式,这和卷积层功能类似,耶和理论推导的结果相吻合
  • 论文要点翻译

    • 摘要
      • 最近的计算机视觉中注意力机制的运用已经使得研究者开始重新考虑卷积层在深度学习网络中的基础组件的核心地位,根据已有的研究,除了能够帮助 CNN 处理长范围依赖关系之外,注意力机制可以取代卷积层并在计算机视觉任务上取得 SOTA 性能
      • 本文主要考虑一个问题:学习得到的注意力层是否可以完全取代卷积层?本文研究结果表明,注意力层可以执行卷积操作,而且通常情况可注意力层就是在学习卷积层的操作
      • 本文证明多头自注意力中的“头”数量足够的话表达能力和卷积层至少是相当的
      • 本文实验结果表明,自注意力层可以得到与 CNN 层相似的像素网格模式,验证了提出的分析
    • 引言
      • 最近的 NLP 进展很大程度归功于 transformer 的兴起,预训练的模型解决无监督的大语料库文本任务,基于 transformer 的 GPT-2、BERT、Transformer-XL 等网络都在探索寻找文本和序列中潜在的结构信息以学习能够泛化到多任务的特征表示
      • transformer 和之前方法最显著的不同在于它能够同时注意到输入序列中的每个文本,这主要归功于注意力机制,注意力机制最先实在神经及其翻译领域引入解决长范围依赖问题的。具体来说,根据自注意力机制,序列中的两个词语的相似性根据衡量其表示特征的距离的注意力得分进行判断,每个词语的特征表示根据注意力得分最高的哪些词语进行跟新
      • 收到自注意力机制能够学习词语之间的相互依赖特征,研究者考虑将自注意力机制用到计算机视觉任务中,比如在 CNN 中加入自注意力形成基于通道的注意力,或者跨图像的非局部关系等,最近的研究将 CNN 进行增强,主要是把其中的一些卷积层替换为自注意力层,带来了图像分类任务和目标识别任务的新能改进。此外,组合自注意力特征和卷积特征甚至能够达到 SOTA 性能,在计算负载和模型大小约束相同的情况下,只使用自注意力的结构也能达到相当的图像分类精确性
      • 上述的这些发现使人思考一个问题:自注意力机层能像卷积层一样有效处理图像吗?从理论分析的角度,研究者认为 transformer 已经拥有可以拟合任何函数的功能,其中也包含能够拟合 CNN 功能。又研究表明,基于多层注意力机制的结构,加上额外的位置编码后,在强理论假设的条件下是图灵完备的。但是,通用的结果仍然没有说明机器是如何解决一个任务的,只是表明机器有能力完成该任务,因此,自注意力层是如何处理图像的仍然是一个开放问题
    • 注意力机制背景知识
      • 多头自注意力
        • X ∈ R T × D i n X \in \mathbb{R}^{T\times D_{in}} XRT×Din 表示输入矩阵,由 T 个 token 组成,每个 token 是 D i n D_{in} Din 维的。在 NLP 任务中,每个 token 对应句子中的一个词语,相似的形式化描述可以运用到 T 个离散对象的序列中(例如像素),自注意力层将查询 token t ∈ [ T ] t \in [T] t[T] D i n D_{in} Din 维映射到 D o u t D_{out} Dout 维: S e l f A t t e n t i o n ( X ) t , : : = s o f t m a x ( A t , : ) X W v a l SelfAttention(X)_{t,:}:=softmax(A_{t,:})XW_{val} SelfAttention(X)t,::=softmax(At,:)XWval
        • 其中的 TxT 矩阵 A : = X W q r y W k e y ⊤ X ⊤ A:=XW_{qry}W_{key}^{\top}X^\top A:=XWqryWkeyX 表示注意力得分,softmax 输出作为注意力的概率分布,因此,自注意力层的参数包括:一个查询矩阵 $W_{qry} \in \mathbb{R}^{D_{in}\times D_k} $ 、一个键矩阵 W k e y ∈ R D i n × D k W_{key} \in \mathbb{R}^{D_{in}\times D_k} WkeyRDin×Dk 和一个值矩阵 $W_{val} \in \mathbb{R}^{D_{in}\times D_{out}} $
        • 自注意力模型的关键实行是和重排序等价的,换言之,无论 T 个输入的 token 顺序如何变化,模型输出的结果都是一定的,因此,这个模型在需要位置信息的时候变得不可用,为了解决这个限制,可以加上位置编码信息,学习每个 token 在序列中的位置信息,将其加入 token 自己的特征表示,再运用自注意力: A : = ( X + P ) W q r y W k e y ⊤ ( X + P ) ⊤ A:=(X+P)W_{qry}W_{key}^{\top}(X+P)^\top A:=(X+P)WqryWkey(X+P),其中的 P ∈ R T × D i n P \in \mathbb{R}^{T \times D_{in}} PRT×Din 包含每个位置的嵌入向量,不失一般性地,P 可以使用任何能够返回位置特征表示向量的函数进行替代
        • 研究发现,将自注意力机制进行多头替换是对任务有利的,每个注意力头关注输入的不同部分,分别使用不同的查询、键和值矩阵。在多头注意力机制中,输出的 N h N_h Nh D h D_h Dh 维度的头通过拼接,重新投影为 D o u t D_{out} Dout 维度: M H S A ( X ) = c o n c a t h ∈ [ N h ] [ S e l f A t t e n t i o n h ( X ) ] W o u t + b o u t MHSA(X)=concat_{h \in [N_h]}[SelfAttention_h(X)]W_{out}+b_{out} MHSA(X)=concath[Nh][SelfAttentionh(X)]Wout+bout,其中的两个新参数分别是投影矩阵 W o u t ∈ R N h D h × D o u t W_{out} \in \mathbb{R}^{N_hD_h\times D_{out}} WoutRNhDh×Dout 和偏置项 b o u t ∈ R D o u t b_{out} \in \mathbb{R}^{D_{out}} boutRDout
      • 用于图像的注意力机制
        • 卷积层是作用在图像上的用于构造神经网络的实际选择,给定图像张量 X ∈ R W × H × D i n \boldsymbol{X}\in\mathbb{R}^{W \times H \times D_{in}} XRW×H×Din,对于像素 (i,j),其卷积操作输出结果为 C o n v ( X ) i , j = ∑ ( δ 1 , δ 2 ) ∈ Δ K X i + δ 1 , j + δ 2 , : W δ 1 , δ 2 , : + b Conv(X)_{i,j}=\sum_{(\delta_1,\delta_2)\in \Delta K} \boldsymbol{X}_{i+\delta_1,j+\delta_2,:}\boldsymbol{W}_{\delta_1,\delta_2,:}+b Conv(X)i,j=(δ1,δ2)ΔKXi+δ1,j+δ2,:Wδ1,δ2,:+b
        • 其中的 W 是 K × K × D i n × D o u t K \times K \times D_{in} \times D_{out} K×K×Din×Dout 权重张良, b ∈ R D o u t b \in \mathbb{R}^{D_{out}} bRDout 是偏置向量, Δ K : = [ − ⌊ K 2 ⌋ , . . . , ⌊ K 2 ⌋ ] × [ − ⌊ K 2 ⌋ , . . . , ⌊ K 2 ⌋ ] \Delta K:=[-\lfloor \frac K 2 \rfloor,...,\lfloor \frac K 2 \rfloor ] \times [-\lfloor \frac K 2 \rfloor,...,\lfloor \frac K 2 \rfloor ] ΔK:=[2K,...,2K]×[2K,...,2K] 表示图像中的 K × K K \times K K×K 核对应的像素偏移
        • 在图像中,tokens 对应查询像素和键像素 q , k ∈ [ W ] × [ H ] q,k\in [W]\times [H] q,k[W]×[H],相应地,输入张量 X ∈ R W × H × D i n X \in \mathbb{R}^{W \times H \times D_{in}} XRW×H×Din ,每个注意力得分和一个查询像素、一个键像素对应
        • 为了和一维的序列保持一致,像素 p=(i,j) 则将其写为 X p , : X_{p,:} Xp,: A p , : A_{p,:} Ap,:,此时则: S e l f A t t e n t i o n ( X ) q , : = s o f t m a x ( A q , : ) k X k , : W v a l SelfAttention(X)_{q,:}=softmax(A_{q,:})_kX_{k,:}W_{val} SelfAttention(X)q,:=softmax(Aq,:)kXk,:Wval
      • 图像的位置编码
        • 图像的位置编码包括绝对位置编码和相对位置编码
        • 绝对位置编码 A q , k a b s = ( X q , : + P q , : ) W q r y W k e y ⊤ ( X k , : + P k , : ) ⊤ A_{q,k}^{abs}=(X_{q,:}+P_{q,:})W_{qry}W_{key}^{\top}(X_{k,:}+P_{k,:})^\top Aq,kabs=(Xq,:+Pq,:)WqryWkey(Xk,:+Pk,:)
        • 相对位置编码 A q , k r e l = X q , : ⊤ W q r y ⊤ W k e y X k , : + X q , : ⊤ W q r y ⊤ W k e y W ^ k e y r δ + u ⊤ W k e y X k , : + v ⊤ W ^ k e y r δ A_{q,k}^{rel}=X_{q,:}^\top W_{qry}^\top W_{key} X_{k,:}+X_{q,:}^\top W_{qry}^\top W_{key} \widehat W_{key} r_{\delta}+u^\top W_{key}X_{k,:}+v^\top \widehat W_{key} r_{\delta} Aq,krel=Xq,:WqryWkeyXk,:+Xq,:WqryWkeyW keyrδ+uWkeyXk,:+vW keyrδ
    • 方法
      • 自注意力层看作卷积层
      • 定理一:有 N h N_h Nh D h D_h Dh 维头部的多头自注意力机制,输出 D o u t D_{out} Dout 维数据和 D p ≥ 3 D_p \ge 3 Dp3 维度相对位置编码,则可以表示任何 N h × N h \sqrt{N_h} \times \sqrt{N_h} Nh ×Nh 大小的核和 min ⁡ ( D i n , D o u t ) \min(D_{in},D_{out}) min(Din,Dout) 通道的卷积
      • 定理一的证明可以通过选择多头注意力层的参数使其表现为卷积层进行演绎式的证明,在提出的演绎是证明中,每个自注意头对应的注意力得分应当关注 K*K 的核中所有可能的像素位置移动,此外,前面提到的条件对于相对位置编码也同样适用
      • 定理包含了通用的卷积算子的功能,但是机器学习实践者通常使用可微的编程框架,会质疑这是否适用于所有二维卷积层的超参数(padding,stride 和 dialation)
      • 一维的情况:序列的卷积通常在文本、声音和时间序列中,定理一可以直接扩展,多头注意力可以将 1D 卷积转变成 K = N h N_h Nh 的多头注意力,输出通道为 min ⁡ ( D i n , D o u t ) \min(D_{in},D_{out}) min(Din,Dout),位置编码维度 D p ≥ 2 D_p \ge 2 Dp2
      • 算法证明:
        • 引理1:考虑 K 2 K^2 K2 个头的多头自注意力层, D h ≥ D o u t D_h \ge D_{out} DhDout f : [ N h ] → Δ K f:[N_h] \to \Delta_K f:[Nh]ΔK 表示从头到位置偏移的双射,则假设每个头都满足 s o f t m a x ( A q , : ( h ) ) k = 1   i f   f ( h ) = q − k   e l s e   0 softmax(A_{q,:}^{(h)})_k=1\ if\ f(h)=q-k\ else\ 0 softmax(Aq,:(h))k=1 if f(h)=qk else 0,则此时对于 K*K 有 D o u t D_{out} Dout 输出通道的卷积层,存在 { W v a l ( h ) } h ∈ [ N h ] \{W_{val}^{(h)}\}_{h\in[N_h]} {Wval(h)}h[Nh] 使得 M H S A ( X ) = C o n v ( X ) MHSA(X)=Conv(X) MHSA(X)=Conv(X)
        • 对于 D h D_h Dh D o u t D_{out} Dout ,通常的 transformer 会设置 D h = D o u t / N h D_h = D_{out}/N_h Dh=Dout/Nh,因此 D h < D o u t D_h \lt D_{out} Dh<Dout,此时 W ( h ) W^{(h)} W(h) 可以看作是秩为 D o u t − D h D_{out}-D_h DoutDh 的矩阵,此时无法表达所有 D o u t D_{out} Dout 通道的卷积层,但是可以发现,任何 D o u t D_{out} Dout 中的 D h D_h Dh M H S A ( X ) MHSA(X) MHSA(X) 个输出可以表达 D h D_h Dh 输出通道的卷积
        • 引理2:存在相对编码方案 { r δ ∈ R D p } δ ∈ Z 2 \{r_\delta\in \mathbb{R}^{D_p}\}_{\delta\in \mathbb{Z}^2} {rδRDp}δZ2 D p ≥ 3 D_p \ge 3 Dp3 ,参数为 W q r y , W k e y , W ^ k e y , u W_{qry},W_{key},\widehat W_{key},u Wqry,Wkey,W key,u D p ≤ D k D_p \le D_k DpDk ,使得每个 Δ ∈ Δ K \Delta \in \Delta_K ΔΔK,存在一个向量 v 可以生成 s o f t m a x ( A q , : ) k = 1   i f   k − q = Δ   e l s e   0 softmax(A_{q,:})_k=1\ if\ k-q=\Delta\ else\ 0 softmax(Aq,:)k=1 if kq=Δ else 0

你可能感兴趣的:(计算机视觉,论文笔记,深度学习,计算机视觉,机器学习,人工智能)