5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)

一、A-SCN

原文链接:Attentional ShapeContextNet for Point Cloud Recognition | IEEE Conference Publication | IEEE Xplore

        这篇文章提出了一个新的网络结构SCN(本文不过多关注):

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第1张图片

        引入注意力后即A-SCN。下图为A-SCN块结构(图中标注的第一个D_{out}好像应为D_V):

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第2张图片

\textup{Attention}(Q,V,K)=\textup{Softmax}(\frac{QK^T}{\sqrt{D_Q}})\cdot V

 上图中{V}'V相加后,有一个transformation环节将N\times D_V转换为N\times D_{out}形状。

二、Point Attention

原文链接:https://arxiv.org/pdf/1909.12663.pdf

        本文提出了新的网络结构LAE-Conv,然后将其输出特征输入到下列结构:

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第3张图片

其中A,B,D均由MLP得到;\otimes表示矩阵乘法。

s_{ij}=\textup{softmax}\left ( \frac{\exp(A_i\cdot B_j)}{\sum_{i=1}^N\exp(A_i\cdot B_j)} \right )

最后P_{\textup{final}}=\alpha (S\cdot D)+P_{LAE},其中\alpha为缩放参数。

        将上述注意力机制嵌入网络中,得到本文的Point Attention网络如下:

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第4张图片

 三、CAA

原文链接:https://arxiv.org/pdf/1911.12885.pdf

        同样也是先提出一种网络结构,再将特征输入下图所示的CAA模块:

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第5张图片

该图大致分为三行,第一行包含CCC块和CAE块:

        1.CCC块:Compact Channel-wise Comparator block

        设输入特征为F_{N\times d}=[c_1,c_2,\cdots ,c_d],在通道向量c_i\in \mathbb{R}^N上使用共享权重的MLP,得到更少的点数{N}'=N/\textup{ratio}\textup{ratio}>1

        使用两个MLP M_q(\cdot )M_k(\cdot )分别处理c_i,即q_i=M_q(c_i),q_i\in \mathbb{R}^{​{N}'}k_i=M_k(c_i),k_i\in \mathbb{R}^{​{N}'}。令Q=[q_1,q_2,\cdots ,q_d]为query矩阵,K=[k_1,k_2,\cdots ,k_d]为key矩阵,然后计算相似度矩阵S_{d\times d}=Q^TK,其第i行第j列元素值表示F_{N\times d}i个通道和第j个通道的相似度。

         2.CAE块:Channel Affinity Estimator block

        首先选取S每一列最大的相似度,然后扩维至与S相同的大小。将其减去原始的S后,有较高相似度的通道会有较低的Affinity。

A_{d\times d}=\textup{softmax}(\underset{1\rightarrow d}{\textup{expand}}(\max_{d\rightarrow 1}S)-S_{d\times d})

图中第二行使用另一个MLP M_v(\cdot )得到v_i=M_v(c_i),v_i\in \mathbb{R}^{N}V=[v_1,v_2,\cdots ,v_d]为value矩阵。

图中第三行使用残差连接,并学习一个权重\alpha来使学习变得容易。最终的输出为

{F}'_{N\times d}=\textup{CAA}(F)=F+\alpha\cdot VA

四、Offset Attention

原文链接:https://arxiv.org/pdf/2012.09688.pdf

        同样先提出PCT(点云Transformer)结构,这里仅关注其中的注意力部分。

        Offset Attention图示:

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第6张图片

图中两个开关均往上时为自注意力(SA);均往下时为offset attention;LBR表示线性层,BN和ReLU。

        若输入为F_{in}\in \mathbb{R}^{N\times d_e},则对于SA有

(Q,K,V)=F_{in}\cdot (W_q,W_k,W_v)

其中W_q,W_k\in\mathbb{R}^{d_e\times d_a}W_v\in\mathbb{R}^{d_e\times d_e};即Q,K\in\mathbb{R}^{N\times d_a}V\in\mathbb{R}^{N\times d_e}

\tilde{A}=(\tilde{\alpha})_{i,j}=Q\cdot K^T

然后由图中的SS操作归一化,得到A=(\alpha)_{i,j}

\bar{\alpha}_{i,j}=\frac{\tilde{\alpha}_{i,j}}{\sqrt{d_a}},\alpha_{i,j}=\textup{softmax}(\bar{\alpha}_{i,j})=\frac{\exp(\bar{\alpha}_{i,j})}{\sum_{k}\exp(\bar{\alpha}_{i,k})}(1)

最后F_{sa}=A\cdot V,且

F_{out}=\textup{SA}(F_{in})=\textup{LBR}(F_{sa})+F_{in}(2)

        Offset attention所作的修改在(1)和(2)式:

\bar{\alpha}_{i,j}=\textup{softmax}(\tilde{\alpha}_{i,j})=\frac{\exp(\tilde{\alpha}_{i,j})}{\sum_{k}\exp(\tilde{\alpha}_{i,k})}, \alpha_{i,j}=\frac{\bar{\alpha}_{i,j}}{\sum_k \bar{\alpha}_{i,k}}

F_{out}=\textup{OA}(F_{in})=\textup{LBR}(F_{in}-F_{sa})+F_{in}

五、Point Transformer

原文链接:https://arxiv.org/pdf/2012.09164.pdf

5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第7张图片 Point Transformer Layer
5种3D Attention/Transformer整理(A-SCN、Point Attention、CAA、Offset Attention、Point Transformer)_第8张图片 Point Transformer Block

        使用减法关系,并对注意力向量\gamma和变换特征\alpha添加位置编码\delta

 y_i=\sum_{x_j\in X(i)}\rho (\gamma(\phi(x_i)-\psi(x_j)+\delta))\odot (\alpha(x_j)+\delta)

其中子集X(i)\subseteq Xx_i的局部邻域(如k近邻);\odot表示按元素乘法;映射函数\gamma是带ReLU的双层MLP;\rho是归一化函数如softmax;\phi,\psi,\alpha是逐点的特征变换,如线性层或MLP。

实际上这里的\phi,\psi,\alpha分别产生Q,K,V矩阵。

        位置编码:\delta=\theta(p_i-p_j),这里p_i是点i的坐标。函数\theta是带ReLU的双层MLP,与其他子网络一同训练。

你可能感兴趣的:(attention,transformer,深度学习)