资讯详情

transformer一统天下?depth-wise conv有话要说

本文是对《ON THE CONNECTION BETWEEN LOCAL ATTENTION AND DYNAMIC DEPTH-WISE CONVOLUTION》作者在分析cnn该领域找到了和local attention模块相似的机制,构建了可和swin transformer分庭抗礼的CNN架构

研究局部自注意力机制

?作者提出了局部自注网络等swin transforme在稀疏连接的思路上,它们的主要区别在于以下两点:

  1. 参数共享: 空间层面共享深度可分离卷积参数,通道层面共享局部注意力参数;
  2. 动态权重的计算方法:局部注意力中的计算方法是基于局部窗口中点对位置的点积;动态卷积是基于中心表征的线性映射或全球池化表征。

location attention

?对于局部自注意力机制,作者主要从 包括稀疏连接和参数共享三个方面来研究。首先假定局部窗口的大小为 N k N_k Nk,即计算局部注意力的序列 [ x i 1 , x i 2 , x i N k ] [x_{i1},x_{i2},{x_{iN_k}}] [xi1,xi2,xiNk],给出局部自注意力机制的计算公式如下。 y i = ∑ j = 1 N k a i j x i j a i j = e x p ( Q i K i j T D ) Z i , Z s = ∑ j = 1 N k e x p ( Q i K i j T D ) (1) \bold{y}_i=\sum^{N_k}_{j=1}a_{ij}\bold{x}_{ij}\tag{1}\\ a_{ij}=\frac{exp(\frac{\bold{Q}_i\bold{K}^{T}_{ij}}{D})}{Z_i},Z_s=\sum_{j=1}^{N_k}exp(\frac{\bold{Q}_i\bold{K}^{T}_{ij}}{D}) yi​=j=1∑Nk​​aij​xij​aij​=Zi​exp(DQi​KijT​​)​,Zs​=j=1∑Nk​​exp(DQi​KijT​​)(1) 其中 y i ∈ R D , x i j ∈ R D , a i j ∈ R \bold{y}_i\in R^D,\bold{x}_{ij}\in R^D,a_{ij}\in R yi​∈RD,xij​∈RD,aij​∈R,实际上就是由 Q , K Q,K Q,K计算出的输入向量和窗口内向量的归一化权重 a i j a_{ij} aij​,再乘上对应向量的嵌入值得出该位置的输出。同样可以写成如下点积的形式: y i = ∑ j = 1 N k w i j ⊙ x i j \bold{y}_i=\sum^{N_k}_{j=1}\bold{w}_{ij}\odot\bold{x}_{ij} yi​=j=1∑Nk​​wij​⊙xij​ 其中 w i j = [ a i j , a i j , . . . , a i j ] ∈ R D \bold{w}_{ij}=[a_{ij},a_{ij},...,a_{ij}]\in R^D wij​=[aij​,aij​,...,aij​]∈RD,从这中形式的局部注意力我们可以分析出以下几条性质:

  1. :局部自注意力中的输出在空间上是稀疏连接的,输出向量中的某个元素 y i d y^d_i yid​只与窗口内所有输入向量同位置的值 [ x i 1 d , x i 2 d , . . . x i N k d ] [x^d_{i1},x^d_{i2},...x^d_{iN_k}] [xi1d​,xi2d​,...xiNk​d​]相关,没有跨通道的联系。(感觉这又有点回到了LeNet和GoogLeNet的思路)
  2. :不同通道间参数是共享的(对于多头注意力来说,在组内的通道间共享),也就就是 w i j \bold{w}_{ij} wij​所有值都相同。
  3. :注意力或者说权重的并不是如同CNN中MLP一样通过反向传播来学习,而是与窗口内输入向量的值有关,这就使得权重的计算中传递了跨通道的信息。
  4. :由于权重的计算是在窗口内部进行,如果窗口是稀疏采样的,比如swin transformer,那么当输入图样的平移长度为窗口的整数倍时,对应的输出值也会保持值相同而位置平移。如果窗口是密集采样,以sliding window的形式采样,那输出就是完全的平移不变。
  5. :窗口内的向量排列顺序并不会对输出造成影响,位置信息被忽略了,需要采用其他的方式来记录。比如可学习的位置表征或者固定的位置表征。

depth-wise convolution

 首先介绍一下深度卷积,它指的是对与输入的每个通道都分开进行卷积,假定输入为 H × W × C H\times W\times C H×W×C那就用 C C C个 W × W × 1 W\times W\times 1 W×W×1的卷积D对每个通道分开处理得到 H × W × C H\times W\times C H×W×C的输出,给出窗口大小为 N K N_K NK​的一维形式的深度卷积计算公式如下: y i = ∑ j = 1 N k w o f f s e t ( i , j ) ⊙ x i j \bold{y}_i=\sum^{N_k}_{j=1}\bold{w}_{offset(i,j)}\odot\bold{x}_{ij} yi​=j=1∑Nk​​woffset(i,j)​⊙xij​ 同样是从以上几个角度分析:

  1. :同样的,由于深度卷积对输入的每个通道分开处理,某通道的输出只和同通道的输入有关,无跨通道的联系。
  2. :不同空间位置上是参数共享的,也就是窗口移动时 w o f f s e t ( i , j ) \bold{w}_{offset(i,j)} woffset(i,j)​不变,而 w o f f s e t ( i , j ) \bold{w}_{offset(i,j)} woffset(i,j)​中的元素则并不相同。
  3. :基础的深度卷积是无动态权重的,只是通过反向传播来学习卷积核的参数,而深度卷积的动态变体则引入了输入相关的权重预测,分为同质变体和异质变体,前者是对窗口内的所有输入向量做池化后线性变化,后者则是对卷积位置的输入向量直接线性变换,公式如下: h o m o { w 1 , w 2 , . . . , w N k } = g ( G A P ( x 1 , x 2 , . . . , x N ) i n h o m o { w i 1 , w i 2 , . . . , w i N k } = g ( x i ) homo\{\bold{w}_1,\bold{w}_2,...,\bold{w}_{N_k}\}=g(GAP(\bold{x}_1,\bold{x}_2,...,\bold{x}_{N})\\ inhomo\{\bold{w}_{i1},\bold{w}_{i2},...,\bold{w}_{i{N_k}}\}=g(\bold{x}_i) homo{ w1​,w2​,...,wNk​​}=g(GAP(x1​,x2​,...,xN​)inhomo{ wi1​,wi2​,...,wiNk​​}=g(x

    标签: wnk808系列压力变送器wnk79智能压力变送器wnk79压力变送器

    锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台