首页 > 其他分享 >【论文精读】On the Relationship Between Self-Attention and Convolutional Layers

【论文精读】On the Relationship Between Self-Attention and Convolutional Layers

时间:2024-10-29 10:58:35浏览次数:6  
标签:Convolutional Layers 精读 mathbf boldsymbol Delta right delta left

【论文精读】On the Relationship Between Self-Attention and Convolutional Layers

作者: Jean-Baptiste Cordonnier, Andreas Loukas, Martin Jaggi
发表会议: ICLR 2020
论文地址: arXiv:1911.03584v2

目录

1.Introduction

1.1 问题

"Do self-attention layers process images in a similar manner to convolutional layers? "

self-attention层是否可以执行卷积层的操作?

1.2 回答

  • 理论角度:self-attention层可以表达任何卷积层。
  • 实验角度:作者构造了一个fully attentional model,模型的主要部分是六层self-attention。结果表明,对于前几层self-attention,执行了与卷积层类似的操作。

2. Background

2.1 Multi-head self-attention layers

对于第t个query token,自注意力层的输出如下:

\[\operatorname{Self-Attention}(\boldsymbol{X})_{t,:}:=\operatorname{softmax}\left(\boldsymbol{A}_{t,:}\right) \boldsymbol{X} \boldsymbol{W}_{\text {val }}\\ \text{其中},\quad\boldsymbol{A}:=\boldsymbol{X} \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top} \boldsymbol{X}^{\top} \]

  • \(\boldsymbol{X} \in \mathbb{R}^{T \times D_{\text {in }}}\):输入矩阵。\(T\) 个tokens,每个tokens都是 \(D_{i n}\) 维的向量

  • \(\boldsymbol{W}_{q r y} \in \mathbb{R}^{D_{i n} \times D_k}\), \(\boldsymbol{W}_{\text {key }} \in \mathbb{R}^{D_{i n} \times D_k}\) , \(\boldsymbol{W}_{\text {val }} \in\) \(\mathbb{R}^{D_{\text {in }} \times D_{\text {out }}}\):分别表示query,key和value的矩阵。


有时,我们需要给输入加上位置编码

\[\boldsymbol{A}:=(\boldsymbol{X}+\boldsymbol{P}) \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top}(\boldsymbol{X}+\boldsymbol{P})^{\top} \]

  • \(\boldsymbol{P} \in \mathbb{R}^{T \times D_{\text {in }}}\):位置编码

有时,我们需要多头自注意力机制

\[\operatorname{MHSA}(\boldsymbol{X}):=\underset{h \in\left[N_h\right]}{\operatorname{concat}}\left[\operatorname{Self-Attention}_h(\boldsymbol{X})\right] \boldsymbol{W}_{\text {out }}+\boldsymbol{b}_{\text {out }} \]

  • 在多头自注意力机制中,有\(N_h\)个头,每个头的输出是\(D_h\)维的向量,最终,\(N_h\)个\(D_h\)维的向量被映射到\(D_{\text {out }}\)维的输出向量上。
  • \(\boldsymbol{W}_{\text {out }} \in \mathbb{R}^{N_h D_h \times D_{\text {out }}}\), \(\boldsymbol{b}_{\text {out }} \in \mathbb{R}^{D_{\text {out }}}\):映射矩阵和偏置
  • \(\underset{h \in\left[N_h\right]}{\operatorname{concat}}\left[\operatorname{Self-Attention}_h(\boldsymbol{X})\right]\):将\(N_h\)个头的输出拼接在一起。每个头的输出维度是 \(T \times D_h\),拼接后的总输出大小会变为 \(T \times\left(N_h \cdot D_h\right)\)。

2.2 Attention for images

一个“像素”的含义:例如在下图中,一个vector就是一个像素

image-20241025134531822

给定图像向量 \(\mathbf{X} \in \mathbb{R}^{W \times H \times D_{i n}}\) ,其中宽度为 \(W\),高度为 \(H\) ,通道数为 \(D_{i n}\) 。对于其中的像素 \((i, j)\),卷积层的输出为

\[\operatorname{Conv}(\boldsymbol{X})_{i, j,:}:=\sum_{\left(\delta_1, \delta_2\right) \in \mathbb{\Delta}_K} \mathbf{X}_{i+\delta_1, j+\delta_2,:} \mathbf{W}_{\delta_1, \delta_2,:,:}+\boldsymbol{b} \]

其中 \(\mathbf{W}\) 是 \(K \times K \times D_{\text {in }} \times D_{\text {out }}\)大小的权重,\(\boldsymbol{b} \in \mathbb{R}^{D_{\text {out }}}\) 是偏置,

集合\(\Delta_K\)定义如下

\[\Delta_K:=\left[-\left\lfloor\frac{K}{2}\right\rfloor, \cdots,\left\lfloor\frac{K}{2}\right\rfloor\right] \times\left[-\left\lfloor\frac{K}{2}\right\rfloor, \cdots,\left\lfloor\frac{K}{2}\right\rfloor\right] \]

包含了 \(K \times K\) 卷积核中所有可能出现的偏移。


将一个像素看成一个token,就可以实现对图像的self-attention操作。

若 \(\boldsymbol{p}=(i, j)\), 那么将\(\mathbf{X}_{i, j,:}\) ,\(\mathbf{A}_{i, j,:,:}\) 分别记作 \(\mathbf{X}_{\boldsymbol{p},:}\) , \(\mathbf{A}_{\boldsymbol{p},:}\)

\[\operatorname{Self-Attention}(\boldsymbol{X})_{\boldsymbol{q},:}=\sum_{\boldsymbol{k}} \operatorname{softmax}\left(\mathbf{A}_{\boldsymbol{q},:}\right)_{\boldsymbol{k}} \mathbf{X}_{\boldsymbol{k},:} \boldsymbol{W}_{\text {val }} \]

  • \(\boldsymbol{q}\):query的像素
  • \(\boldsymbol{k}\):key的像素

2.3 Positional encoding for images

有两种位置编码,分别是绝对位置编码和相对位置编码。

  • 绝对位置编码:每个像素 \(\boldsymbol{p}\)都对应着一个位置编码 \(\mathbf{P}_{\boldsymbol{p}, \text { : }}\) ,绝对位置编码的注意力分数如下:

    \[\begin{aligned} \mathbf{A}_{q, \boldsymbol{k}}^{\mathrm{abs}}&=\left(\mathbf{X}_{q,:}+\mathbf{P}_{q,:}\right) \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top}\left(\mathbf{X}_{k,:}+\mathbf{P}_{k,:}\right)^{\top} \\ & =\mathbf{X}_{q,:} \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top} \mathbf{x}_{k,:}^{\top}+\mathbf{X}_{q,:} \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top} \mathbf{P}_{k,:}^{\top}+\mathbf{P}_{q,:} \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top} \mathbf{X}_{k,:}+\mathbf{P}_{q,:} \boldsymbol{W}_{q r y} \boldsymbol{W}_{k e y}^{\top} \mathbf{P}_{\boldsymbol{k},:} \end{aligned} \]


  • 相对位置编码:只算query像素和key像素之间的位置差\(\boldsymbol{\delta}:=\boldsymbol{k}-\boldsymbol{q}\),每个\(\boldsymbol{\delta}\)都有对应一个位置编码\(\boldsymbol{r}_{\boldsymbol{\delta}}\)。相对位置编码的注意力分数如下:

    \[\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}^{\mathrm{rel}}:=\mathbf{X}_{\boldsymbol{q},:}^{\top} \boldsymbol{W}_{q r y}^{\top} \boldsymbol{W}_{k e y} \mathbf{X}_{k,:}+\mathbf{X}_{\boldsymbol{q},:}^{\top} \boldsymbol{W}_{q r y}^{\top} \widehat{\boldsymbol{W}}_{k e y} \boldsymbol{r}_{\boldsymbol{\delta}}+\boldsymbol{u}^{\top} \boldsymbol{W}_{k e y} \mathbf{X}_{k,:}+\boldsymbol{v}^{\top} \widehat{\boldsymbol{W}}_{k e y} \boldsymbol{r}_{\boldsymbol{\delta}} \]

    • \(\boldsymbol{u}\) , \(\boldsymbol{v}\) :是需要学习的两个向量,每个头都对应着一组 \(\boldsymbol{u}\) , \(\boldsymbol{v}\)
    • \(\boldsymbol{r}_{\boldsymbol{\delta}} \in \mathbb{R}^{D_p}\):\({D_p}\)维的相对位置编码,所有的头共享一个\(\boldsymbol{r}_{\boldsymbol{\delta}}\)
    • \(\boldsymbol{W}_{k e y}\),\(\widehat{\boldsymbol{W}}_{k e y}\):\(\boldsymbol{W}_{k e y}\)是输入的权重,\(\widehat{\boldsymbol{W}}_{k e y}\)是相对位置编码的权重

3. 理论证明

结论:

\(N_h\) 个头、每个头的输出是 \(D_h\)维、 最终的输出是 \(D_{\text {out }}\) 维、相对位置编码维度\(D_p \geq 3\)的多头自注意力层,可以表示任意 卷积核大小是\(\sqrt{N_h} \times \sqrt{N_h}\)、输出通道数是\(\min \left(D_h, D_{\text {out }}\right)\)的卷积层。

image-20241025140750549

  • 引理1概述:对于大小为 \(K \times K\) 的卷积核,其偏移位置可以表示为\(\Delta_K=\) \(\{-\lfloor K / 2\rfloor, \ldots,\lfloor K / 2\rfloor\}^2\) 。如果我们让每个头只关注卷积核中的一个偏移位置,那么\(K^2\)个头就可以模拟整个卷积核。

  • 引理2概述:存在这样的相对位置编码,使得每个头只关注卷积核中的一个偏移位置。

    论文中,相对位置编码可以自己构造,也可以用模型来学习。

    自己构造的相对位置编码叫做quadratic encoding,其中

    \[\boldsymbol{v}^{(h)}:=-\alpha^{(h)}\left(1,-2 \boldsymbol{\Delta}_1^{(h)},-2 \boldsymbol{\Delta}_2^{(h)}\right) \quad \boldsymbol{r}_{\boldsymbol{\delta}}:=\left(\|\boldsymbol{\delta}\|^2, \boldsymbol{\delta}_1, \boldsymbol{\delta}_2\right) \quad \boldsymbol{W}_{q r y}=\boldsymbol{W}_{\text {key }}:=\mathbf{0} \quad \widehat{\boldsymbol{W}_{k e y}}:=\boldsymbol{I} \]

    参数 \(\boldsymbol{\Delta}^{(h)}=\left(\boldsymbol{\Delta}_1^{(h)}, \boldsymbol{\Delta}_2^{(h)}\right)\) 表示每个头应该关注哪个偏移位置,参数 \(\alpha^{(h)}\) 表示除了应该关注的偏移位置之外,是否还要关注其他偏移位置,\(\boldsymbol{\Delta}^{(h)},\alpha^{(h)}\)都是可学习的参数。同时, \(\boldsymbol{\delta}=\left(\boldsymbol{\delta}_1, \boldsymbol{\delta}_2\right)\) 表示query像素和key像素的相对偏移,是固定的。

Q:\(\boldsymbol{\Delta}^{(h)}=\left(\boldsymbol{\Delta}_1^{(h)}, \boldsymbol{\Delta}_2^{(h)}\right)\) 表示每个头应该关注哪个偏移位置,参数 \(\alpha^{(h)}\) 为什么是可学习的,直接设置不行吗?

在论文中,

image-20241025194110778

中心点并不是很完美的表现了卷积。

通过设置中心点的范围,可能实现空洞卷积,可能实现,但是为了更好的效果,还是让

同时,alpha也一样,为了更好的效果,应该设置成可学习的

此外,\(\alpha^{(h)}\)为什么不设置成一个较大的参数


建议看完引理1和引理2的证明之后再来回看引理1概述和引理2概述,会有不一样的理解

  • padding:self-attention 层默认使用SAME填充,只需要添加\(\lfloor K / 2\rfloor\)个0,即可实现输入和输出相等。

  • stride:在self-attention层后面加上一个池化层,就可以模拟任何stride卷积

  • 空洞卷积:人为的设置\(\boldsymbol{\Delta}^{(h)}\),可以实现空洞卷积


引理1:

考虑这样一个多头注意力层:有\(N_h=K^2\) 个头,且 \(D_h \geq D_{\text {out }}\)。令 \(\boldsymbol{f}:\left[N_h\right] \rightarrow \Delta_K\) 是一个双射。假设对于每个头来说,都有

\[\operatorname{softmax}\left(\boldsymbol{A}_{\boldsymbol{q},:}^{(h)}\right)_{\boldsymbol{k}}= \begin{cases}1 & \text { if } \boldsymbol{f}(h)=\boldsymbol{q}-\boldsymbol{k} \\ 0 & \text { otherwise. }\end{cases} \]

那么,对卷积核大小为 \(K \times K\) ,输出通道数为 \(D_{\text {out }}\) 的任意卷积层,存在\(\left\{\boldsymbol{W}_{\text {val }}^{(h)}\right\}_{h \in\left[N_h\right]}\) ,使得 \(\operatorname{MHSA}(\boldsymbol{X})=\operatorname{Conv}(\boldsymbol{X})\)对任意 \(\boldsymbol{X} \in \mathbb{R}^{W \times H \times D_{i n}}\)成立。

image-20241025141703456

  • 如何理解 \(\operatorname{softmax}\left(\boldsymbol{A}_{\boldsymbol{q},:}^{(h)}\right)_{\boldsymbol{k}}= \begin{cases}1 & \text { if } \boldsymbol{f}(h)=\boldsymbol{q}-\boldsymbol{k} \\ 0 & \text { otherwise. }\end{cases}\):

    前面我们说过,要让每个头只关注卷积核中的一个偏移位置。因此,我们可以构建一个映射\(\boldsymbol{f}\),规定哪个头关注哪个偏移位置。例如,\(f(1)\)表示第1个头应该关注哪个偏移位置,\(f(2)\)表示第2个头应该关注哪个偏移位置。

    以第1个头为例,当query像素\(\boldsymbol{q}\)和key像素\(\boldsymbol{k}\)的相对偏移为\(f(1)\)时,\(\boldsymbol{q}\)和\(\boldsymbol{k}\)的相关性概率为1;当\(\boldsymbol{q}\)和\(\boldsymbol{k}\)的相对偏移不是\(f(1)\)时,相关性概率为0。

    将上面的过程用公式表示出来,就是

    \[\operatorname{softmax}\left(\boldsymbol{A}_{\boldsymbol{q},:}^{(h)}\right)_{\boldsymbol{k}}= \begin{cases}1 & \text { if } \boldsymbol{f}(h)=\boldsymbol{q}-\boldsymbol{k} \\ 0 & \text { otherwise. }\end{cases} \]


  • 引理1的证明:

    我们将多头自注意力的公式表示为以下形式:

    \[\operatorname{MHSA}(\boldsymbol{X})=\boldsymbol{b}_{\text {out }}+\sum_{h \in\left[N_h\right]} \operatorname{softmax}\left(\boldsymbol{A}^{(h)}\right) \boldsymbol{X} \underbrace{\boldsymbol{W}_{\text {val }}^{(h)} \boldsymbol{W}_{\text {out }}\left[(h-1) D_h+1: h D_h+1\right]}_{\boldsymbol{W}^{(h)}} \]

    可以将\(\boldsymbol{W}_{\text {val }}^{(h)} \boldsymbol{W}_{\text {out }}\left[(h-1) D_h+1: h D_h+1\right]\)合并为\(\boldsymbol{W}^{(h)}\).

    对于像素\(\boldsymbol {q}\)来说,公式变为

    \[\operatorname{MHSA}(\boldsymbol{X})_{\boldsymbol{q},:}=\sum_{h \in\left[N_h\right]}\left(\sum_{\boldsymbol{k}} \operatorname{softmax}\left(\mathbf{A}_{\boldsymbol{q},:}^{(h)}\right)_{\boldsymbol{k}} \mathbf{X}_{\boldsymbol{k},:}\right) \boldsymbol{W}^{(h)}+\boldsymbol{b}_{\text {out }} \]

    由于引理1中的条件, 对于第\(h\)个头 ,当且仅当\(\boldsymbol{k}\)和\(\boldsymbol{q}\)的相对偏移为\(f(h)\)时,相关性概率为 1,因此有

\[ \operatorname{MHSA}(\mathbf{X})_{\boldsymbol{q}}=\sum_{h \in\left[N_h\right]} \mathbf{X}_{\boldsymbol{q}-\boldsymbol{f}(h),:} \boldsymbol{W}^{(h)}+\boldsymbol{b}_{\text {out }} \]

卷积层的公式为

\[ \operatorname{Conv}(\boldsymbol{X})_{i, j,:}:=\sum_{\left(\delta_1, \delta_2\right) \in \mathbb{\Delta}_K} \mathbf{X}_{i+\delta_1, j+\delta_2,:} \mathbf{W}_{\delta_1, \delta_2,:,:}+\boldsymbol{b} \]

此时若\(K=\sqrt{N_h}\),\(\boldsymbol{q} = (i,j)\),\(\boldsymbol{b}_{\text {out }} = \boldsymbol{b}\),

则有

\[ \operatorname{MHSA}(\mathbf{X})_{\boldsymbol{q}} =\operatorname{Conv}(\boldsymbol{X})_{\boldsymbol{q}} \]

其中\(\boldsymbol{W}^{(h)}\)和\(\mathbf{W}_{\delta_1, \delta_2,:,:}\)一一对应。


  • \(D_h\) 和 \(D_{\text {out }}\):对于被self-attention表示的卷积,其输出通道是\(\min \left(D_h, D_{\text {out }}\right)\)。我们可以令\(D_h = D_{\text {out }}\),来防止\(D_h\)或者\(D_{out}\)的浪费。

引理2:存在一种相对编码方案 \(\left\{\boldsymbol{r}_{\boldsymbol{\delta}} \in \mathbb{R}^{D_p}\right\}_{\boldsymbol{\delta} \in \mathbb{Z}^2}\) ,其中维度 \(D_p \geq 3\) ,以及一组参数\(\boldsymbol{W}_{\text {qry }}, \boldsymbol{W}_{\text {key }}, \widehat{\boldsymbol{W}}_{\text {key }}, \boldsymbol{u}\) ,其中 \(D_p \leq D_k\) ,使得对于任意 \(\boldsymbol{\Delta} \in \boldsymbol{\Delta}_K\) ,都存在向量 \(\boldsymbol{v}\) ( \(\boldsymbol{v}\) 取决于\(\boldsymbol{\Delta})\) 可以满足条件 \(\operatorname{softmax}\left(\boldsymbol{A}_{\boldsymbol{q},:}^{(h)}\right)_{\boldsymbol{k}}= \begin{cases}1 & \text { if } \boldsymbol{q}-\boldsymbol{k} = \boldsymbol{\Delta} \\ 0 & \text { otherwise. }\end{cases}\)

image-20241025150321607

  • 引理2的证明:构造了一种维度\(D_p=3\)的相对位置编码

    我们令\(\boldsymbol{W}_{k e y}=\boldsymbol{W}_{q r y}=\mathbf{0}\) ,\(\widehat{\boldsymbol{W}}_{\text {key }} \in \mathbb{R}^{D_k \times D_p}\) 为单位矩阵。根据相对位置编码公式,有 \(\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}=\boldsymbol{v}^{\top} \boldsymbol{r}_{\boldsymbol{\delta}}\) ,其中 \(\boldsymbol{\delta}:=\boldsymbol{k}-\boldsymbol{q}\)。

    假设可以把\(\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}\)写成如下形式:

    \[\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}=-\alpha\left(\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2+c\right) \]

    其中 \(c\)为常数.

    在上面的式子中,\(\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}\)的值主要取决于\(-\alpha c\),当 \(\boldsymbol{\delta}=\boldsymbol{\Delta}\)时,\(\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}} = -\alpha c\)。

    因此,\(-\alpha c\)可以理解为缩放\(\mathbf{A}_{q, \Delta}\)和其他注意力分数之间差距参数。

    (\(\mathbf{A}_{q, \Delta}\)和其他注意力分数的差距为\(-\alpha\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2\),当\(-\alpha c\)很大时,\(-\alpha\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2\)占的比例很小,因此可以说,\(\mathbf{A}_{q, \Delta}\)和其他注意力分数的差距不大。 反之,\(-\alpha c\)很小时,\(-\alpha\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2\)占的比例很大,\(\mathbf{A}_{q, \Delta}\)和其他注意力分数的差距很大。)

    当 \(\boldsymbol{\delta}=\boldsymbol{\Delta}\)时, 有

    \[\begin{aligned} \lim _{\alpha \rightarrow \infty} \operatorname{softmax}\left(\mathbf{A}_{\boldsymbol{q},:}\right)_{\boldsymbol{k}} & =\lim _{\alpha \rightarrow \infty} \frac{e^{-\alpha\left(\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2+c\right)}}{\sum_{\boldsymbol{k}^{\prime}} e^{-\alpha\left(\left\|\left(\boldsymbol{k}-\boldsymbol{q}^{\prime}\right)-\boldsymbol{\Delta}\right\|^2+c\right)}} \\ & =\lim _{\alpha \rightarrow \infty} \frac{e^{-\alpha\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2}}{\sum_{\boldsymbol{k}^{\prime}} e^{-\alpha\left\|\left(\boldsymbol{k}-\boldsymbol{q}^{\prime}\right)-\boldsymbol{\Delta}\right\|^2}}=\frac{1}{1+\lim _{\alpha \rightarrow \infty} \sum_{\boldsymbol{k}^{\prime} \neq \boldsymbol{k}} e^{-\alpha\left\|\left(\boldsymbol{k}-\boldsymbol{q}^{\prime}\right)-\boldsymbol{\Delta}\right\|^2}}=1 \end{aligned} \]

    对于 \(\boldsymbol{\delta} \neq \boldsymbol{\Delta}\),有 \(\lim _{\alpha \rightarrow \infty} \operatorname{softmax}\left(\mathbf{A}_{\boldsymbol{q},:}\right)_{\boldsymbol{k}}=0\)。

    因此,当\(\alpha \to \infty\)时,恰好满足引理2中的条件。

    那么是否存在\(\boldsymbol{v},\ \boldsymbol{r}_{\boldsymbol{\delta}}\),使得\(\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}=\boldsymbol{v}^{\top} \boldsymbol{r}_{\boldsymbol{\delta}} = -\alpha\left(\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2+c\right)\)呢?

    我们有\(-\alpha\left(\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2+c\right)=-\alpha\left(\|\boldsymbol{\delta}\|^2+\|\boldsymbol{\Delta}\|^2-2\langle\boldsymbol{\delta}, \boldsymbol{\Delta}\rangle+c\right)\)。

    现在我们令\(\boldsymbol{v}=-\alpha\left(1,-2 \boldsymbol{\Delta}_1,-2 \boldsymbol{\Delta}_2\right)\) ,以及 \(\boldsymbol{r}_{\boldsymbol{\delta}}=\left(\|\boldsymbol{\delta}\|^2, \boldsymbol{\delta}_1, \boldsymbol{\delta}_2\right)\), 那么

    \[\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}=\boldsymbol{v}^{\top} \boldsymbol{r}_{\boldsymbol{\delta}}=-\alpha\left(\|\boldsymbol{\delta}\|^2-2 \boldsymbol{\Delta}_1 \boldsymbol{\delta}_1-2 \boldsymbol{\Delta}_2 \boldsymbol{\delta}_2\right)=-\alpha\left(\|\boldsymbol{\delta}\|^2-2\langle\boldsymbol{\delta}, \boldsymbol{\Delta}\rangle\right)=-\alpha\left(\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2-\|\boldsymbol{\Delta}\|^2\right) \]

    其中 常数\(c=-\|\boldsymbol{\Delta}\|^2\) 。

    至此,我们成功找到了\(\boldsymbol{v},\ \boldsymbol{r}_{\boldsymbol{\delta}}\),使得\(\mathbf{A}_{\boldsymbol{q}, \boldsymbol{k}}=\boldsymbol{v}^{\top} \boldsymbol{r}_{\boldsymbol{\delta}} = \alpha\left(\|\boldsymbol{\delta}-\boldsymbol{\Delta}\|^2+c\right)\)。

  • \(\alpha\):理论上,\(\alpha\)应该是无穷大。但在实际中,其他像素的注意力概率会随着\(\alpha\)的增长以指数形式趋近于 0,因此,如果32位浮点数的下界是\(10^{-45}\),那么只需要令\(\alpha = 46\)就能满足要求。

4. 实验

4.1 Implement details

fully attentional model模型:

  • fully attentional model包含 6 层多头自注意力层,每层有 9 个注意力头,模拟 3×3 卷积核的局部性。
  • 每层使用二次位置编码或学习位置编码,以捕捉空间信息。
  • 此外,模型在输入图像上进行 2×2 下采样,以减少计算量。
  • 最后一层通过平均池化汇总特征,并送入线性分类器进行预测。
  • 在部分实验中还加入了内容自适应注意力,使注意力得分根据像素内容进行自适应调整。

下面是fully attentional model和CIFAR-10上与ResNet18的比较

image-20241025194527800

image-20241025200022044

fully attentional model比ResNet18慢,不知道是代码优化的问题还是架构的问题。作者相信通过优化,二者的性能差距可以被抹平。

4.2 Quadratic encoding

每个多头自注意力层有 9 个注意力头,每个头关注的位置偏移初始化为\(\boldsymbol{\Delta}^{(h)} \sim \mathcal{N}\left(\mathbf{0}, 2 \boldsymbol{I}_2\right)\)

下图是第4层多头自注意力层中,每个头的\(\boldsymbol{\Delta}^{(h)}\)结果(每种颜色代表一个头的$$\boldsymbol{\Delta}^{(h)}$$)。可以看到,9个头合在一起确实可以模拟卷积层。

image-20241025195735446

图4是训练结束之后,各个层中,每个头的\(\boldsymbol{\Delta}^{(h)}\)。前几层中,注意力头倾向于关注局部模式,而更深的层则倾向于关注更大的模式。

image-20241025195707941

4.3 Learned relative positional encoding

让模型自主学习相对位置编码时,query像素的相关性得分如下(红色越深代表相关性越大)

image-20241025203107242

可以发现

  • 有类似卷积的操作:第1,第2和第3层中的某些头关注单个像素,与引理 1 非常吻合。
  • 也可以执行卷积不能执行的操作:其他头会关注水平对称的模式,以及长距离像素间的相关性。

此外,作者还加入了基于内容的注意力机制(content-based attention)。当content-based attention与模型自主学习的相对位置编码结合后,相关性得分如下:

image-20241025203120371

可以发现:

  • 有类似卷积的操作:即使加入了content-based attention,某些头也只是利用相对位置来计算相关性,就像卷积核的感受野一样,利用相对位置计算。
  • 也可以执行卷积不能执行的操作:其他头使用了更多的基于内容的注意力。

5. 结论

  • 理论上:头部数量足够时,self-attention可以表示任意的卷积层。
  • 实验: fully attentonal model既可以学习像卷积层一样学习局部模式,也可以学习全局模式。因此fully attentonal model是一般化的CNN。
  • 未来工作方向:将CNN中的观点应用到transformer上。

标签:Convolutional,Layers,精读,mathbf,boldsymbol,Delta,right,delta,left
From: https://www.cnblogs.com/rh-li/p/18512537

相关文章

  • Openlayers高级交互(4/20):手绘多边形,导出KML文件,可以自定义name和style
    KML(KeyholeMarkupLanguage)是一种基于XML的文件格式,用于表示地理数据并在地球浏览器中显示这些数据。KML文件可以用来展示各种类型的地理信息,包括位置点(Point)、路径(LineString)、多边形(Polygon)以及带有地理位置的文本描述(如描述标签)。KML文件还可以包含样式信息(Style),用......
  • Comfyui如何快速选出图像的高光和阴影 _ layerstyle节点
    ✨背景comfyui中,除了AI图像生成本身以外,还会有很多图像处理的工作要做,比如说调整色阶、饱和度,或者还原商品细节。在最近探索的一个场景中,需要将图像中的高光部分提取出来做光源模拟,发现layerstyle这个节点组中包含了这个功能,所以简单分享一下。✨layerMask:ShadowHighlight......
  • Openlayers高级交互(2/20):清除所有图层的有效方法
    Openlayers项目中,经常会放置很多的图层,在业务操作的时候,会做出删除所有图层的行为。这里面给出了一个详细的方法,能够有效的解决清除所有图层的问题。效果图专栏名称内容介绍Openlayers基础实战(72篇)专栏提供73篇文章,为小白群体提供基础知识及示例演示,能解决基础的开发问......
  • Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    layerGroup是OpenLayers库中的一个类,用于创建图层组。图层组允许您将多个图层组合在一起,并作为一个整体来控制它们的可见性和其他属性。本示例动态添加layer到layerGroup,并动态删除。效果图专栏名称内容介绍Openlayers基础实战(72篇)专栏提供73篇文章,为小白群体提供基......
  • OpenLayers:构建现代Web地图应用
    ......
  • ResNet论文精读
    ResNet是一种深度卷积神经网络架构,由微KaimingHe等人于2015年提出。ResNet的核心在于引入了残差学习的概念,通过构建残差块来解决深度神经网络训练中的梯度消失和梯度爆炸问题,从而使得训练非常深的网络成为可能。左图为普通结构,右图是ResNet的基础架构–残差块,在残差块中,......
  • 论文精读:多源域自适应目标检测中的目标相关知识保存(CVPR2022)
    原文标题:Target-RelevantKnowledgePreservationforMulti-SourceDomainAdaptiveObjectDetection中文标题:多源域自适应目标检测中的目标相关知识保存论文地址:https://arxiv.org/pdf/2204.07964代码地址:无官方实现?我有点纳闷难道顶会不公布代码的吗这篇文章是由北......
  • 吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)3.5-3.
    目录第四门课卷积神经网络(ConvolutionalNeuralNetworks)第三周目标检测(Objectdetection)3.5BoundingBox预测(Boundingboxpredictions)3.6交并比(Intersectionoverunion)第四门课卷积神经网络(ConvolutionalNeuralNetworks)第三周目标检测(Objectdetection......
  • Vue3 + Openlayers10示例 台风轨迹和台风圈
    前言假装已经完成了vue3和Openlayers10开发环境的搭建,如果有需要,可搜索vue+Openlayers环境搭建的相关文章。本示例基于Vue3和Openlayers10的环境,实现台风轨迹和台风圈的效果。一、安装插件安装Element-plus插件,其实只在台风列表的地方用到了el-checkbox,可根据实际需......
  • 自然语言处理之语音识别:Convolutional Neural Networks (CNN):深度学习与神经网络基础
    自然语言处理之语音识别:ConvolutionalNeuralNetworks(CNN):深度学习与神经网络基础深度学习与神经网络基础subdir1.1:神经网络的基本概念神经网络是一种模仿人脑神经元结构的计算模型,用于处理复杂的数据模式识别和预测问题。它由输入层、隐藏层和输出层组成,每一层......