An Image is a Wave:Phase_Aware Vsion MLP论文笔记
由于本人能力有限,只是将论文中重要的部分做了翻译整理。
创新点
将patch视为一种波的形式,分为相位和幅值作为输入,以此来寻找不同patch之间的非线性关系。
摘要
在计算机视觉领域,最近的工作表明,主要由全连接层堆叠的纯MLP架构与CNN和transformer的性能媲美。视觉MLP的输入图像通常被分割成多个tokens(patches),而现有的MLP模型直接用固定的权重聚合它们,忽略了不同图像中标记的不同语义信息。为了动态地聚合标记,**我们建议将每个标记表示为一个具有两部分的波函数,即振幅和相位振幅是原始特征,而相位项是根据输入图像的语义内容而变化的复数。**引入相位项可以动态地调节标记和MLP中固定权重之间的关系。基于类似波浪的标记表示,我们建立了一个用于视觉任务的新型WaveMLP架构。广泛的实验表明,所提出的Wave-MLP在各种视觉任务(如图像分类、物体检测和语义分割)上优于最先进的MLP架构。
Introduction
在计算机视觉领域,卷积神经网络(CNN)长期以来一直是主流架构。但是最进的研究发现,Trasnformer同样也在各种机算计视觉任务中可以取得很好的成绩,比如图像分割、物体检测、语义分割。
相比于在视觉Transformer中具有很复杂的自注意机制,一些只有多层感知机(MLPs)的简单架构(如MLP——Mixer、ResMLP)受到了更多的关注。相比于CNN和Transformer,这些视觉MLP架构具有更小的归纳偏置并且更有可能被应用于更多不同的任务。
以一连串的图像斑块(tokens)为输入,类MLP的模型主要包含两个可分离的模块,即通道混合MLP(Channel_mixing MLP)和标记混合MLP(token_mixing MLP),两者都由全连接层和激活函数组成。通道混合MLP对每个标记的特征进行转换(不同通道信息融合),而标记混合MLP则试图对不同标记的信息进行聚合(不同位置信息融合)。通过交替堆叠这两种类型的MLP块,简单的MLP结构可以有足够的能力来提取特征,并在视觉任务上取得良好的性能。
但是这种MLP的表现依旧逊色于SOTA Transformer和CNN的架构。作者指出,视觉MLP的瓶颈之一在于它对不同标记物的聚合方式。回顾Transformer中,他可以根据注意力机制动态的变换权值,类似的token之间的权值会更大。但是如今的视觉MLP模型的tocken之间是固定的权值来聚合不同的token。忽略了各种标记的语义差异。
在本文中,我们提出了一个新的视觉MLP架构(被称为Wave-MLP),它将每个token作为一个具有振幅和相位的波。振幅是代表每个标记内容的实值特征,而相位项是调节标记和MLP中固定权重之间关系的单位复数值。这些类似波浪的标记之间的相位差会影响它们的聚合输出,相位接近的标记往往会相互增强。考虑到来自不同输入图像的标记包含不同的语义内容,我们使用一个简单的模块来动态地估计每个标记的相位。有了配备了振幅和相位信息的标记,我们引入了一个相位感知的标记混合模块(图2中的PATM)来聚合这些标记。整个Wave-MLP架构是由PATM模块和信道混合MLP交替堆叠而成的。
Related Work
该部分主要介绍了一下基于CNN、Transformer、MLP三种不同架构的模型,并且对比了一下不同模型之间的区别和性能你。介绍了一下不同架构的发展情况。
Methods
在本节中,主要介绍了所提出WaveMLP的架构,以及PATM的算法模型(相位感知的标记混合模块),该模块中,每一个token视为一个波,通过同时考虑赋值和相位来聚合他们。最后介绍了在WaveMLP上的几种变体。
Preliminaries
类MLP的模型是一种主要由全连接层和非线性激活函数组成的神经架构。WaveMLP采用的是MLP-Mixer的那种构架形式,及分为channel和token两个MLP。
C h a n n e l − F C ( z j , W c ) = W c z j , j = 1 , 2 , . . . , n Channel-FC(z_j,W^c)=W^cz_j,j = 1,2,...,n Channel−FC(zj,Wc)=Wczj,j=1,2,...,n
W c W^c Wc是可学习参数,channel-FC对token中的特征分别独立进行提取,为了增强转换能力(transformation ability),通常将多个Channel-FC层与非线性函数堆叠在一起,构建出一个通道混合的MLP(Channel-mixing MLP)
为了从不同的token中获得信息,需要token-FC:
T o k e n − F C ( Z , W t ) j = ∑ k W j k t ⊙ z k , j = 1 , 2 , 3 , . . . , n Token-FC(Z,W^t)_j = \sum_kW^t_{jk}\odot z_k, j = 1,2,3,...,n Token−FC(Z,Wt)j=k∑Wjkt⊙zk,j=1,2,3,...,n
加入Token-FC的意义:为了去从不同token捕获混合feature之间的特殊信息同时论文中也指出了诸如MLP-Mixer、ResMLP等限制MLP-like架构的瓶颈:具有固定权重的简单的 token-mixing MLP忽略了不同输入图像中标记的不同语义内容。
Phase-Aware Token Mixing
为了可以在MLP中动态的调节token和固定权重之间的关系,文中采用了将token看作是一个具有幅值和相位的波。
波的表现形式: z j ~ = ∣ z j ∣ ⊙ e i θ j , j = 1 , 2 , . . . , n \tilde{z_j} = |z_j|\odot e^{i\theta_j},j=1,2,...,n zj~=∣zj∣⊙eiθj,j=1,2,...,n
增益 ∣ z j ∣ |z_j| ∣zj∣是一个实值,代表每个token的内容 e i θ j e^{i\theta_j} eiθj是一个周期函数,元素具有单位范数(unit norm). θ j \theta_j θj表示相位,表示一个波段内,token的当前位置。
聚合不同token的时候:
∣
z
r
∣
=
∣
z
i
∣
2
+
∣
z
j
∣
2
+
2
∣
z
i
∣
⊙
∣
z
j
∣
⊙
cos
(
θ
j
−
θ
i
)
|z_r|= \sqrt{|z_i|^2+|z_j|^2+2|z_i|\odot |z_j|\odot \cos(\theta_j-\theta_i)}
∣zr∣=∣zi∣2+∣zj∣2+2∣zi∣⊙∣zj∣⊙cos(θj−θi)
θ
r
=
θ
i
+
(
a
t
a
n
2
(
∣
z
j
∣
⊙
sin
(
θ
j
−
θ
i
)
,
∣
z
i
∣
+
∣
z
j
∣
⊙
cos
(
θ
j
−
θ
i
)
)
\theta_r = \theta_i+(atan2(|z_j|\odot \sin (\theta_j-\theta_i),|z_i|+|z_j|\odot \cos(\theta_j-\theta_i))
θr=θi+(atan2(∣zj∣⊙sin(θj−θi),∣zi∣+∣zj∣⊙cos(θj−θi))
其中, a t a n 2 ( x , y ) atan2(x,y) atan2(x,y)是两个参数的正切函数。 ∣ θ j − θ i ∣ |\theta_j-\theta_i| ∣θj−θi∣:相位差。下图为直观表现形式。
振幅:为了简化,取消了绝对运算。将 X = [ x 1 , x 2 , . . . , x n ] X = [x_1,x_2,...,x_n] X=[x1,x2,...,xn]视为一个区块的输入,则振幅为
z j = C h a n n e l − F C ( x j , W c ) = W c x j , j = 1 , 2 , 3 , . . . , n . z_j = Channel-FC(x_j,W^c)=W^cx_j,j = 1,2,3,...,n. zj=Channel−FC(xj,Wc)=Wcxj,j=1,2,3,...,n.
相位: 选择简化决策(消除pai相位),虽然可以区分不同的token,但是也忽略了不同输入图像的多样性。为了捕获不同输入的属性 使用一个估计模块 Θ \Theta Θ ,通过输入的特征取生成相位信息。 即 , θ j = Θ ( x j , W θ ) \theta_j = \Theta(x_j,W^\theta) θj=Θ(xj,Wθ)。相位也使用了上述公式的Channel-FC作为相位的估计模块。
θ j = C h a n n e l − F C ( x j , W θ ) = W θ x j , j = 1 , 2 , 3 , . . . , n . \theta_j = Channel-FC(x_j,W^\theta)=W^\theta x_j,j = 1,2,3,...,n. θj=Channel−FC(xj,Wθ)=Wθxj,j=1,2,3,...,n.
Token Aggregation:
z j ~ = ∣ z j ∣ ⊙ cos θ j + i ∣ z j ∣ ⊙ sin θ j , j = 1 , 2 , 3... n . \tilde{z_j} = |z_j|\odot \cos\theta_j +i|z_j| \odot \sin\theta_j,j =1,2,3...n. zj~=∣zj∣⊙cosθj+i∣zj∣⊙sinθj,j=1,2,3...n.
不同的token( z j ~ \tilde{z_j} zj~)由token-FC来汇总, o j ~ \tilde{o_j} oj~为复数输出:
o j ~ = T o k e n − F C ( Z ~ , W t ) j = ∑ k W j k t ⊙ z k ~ , j = 1 , 2 , . . n . \tilde{o_j} = Token-FC(\tilde{Z},W^t)_j=\sum_kW_{jk}^t\odot \tilde{z_k},j = 1,2,..n. oj~=Token−FC(Z~,Wt)j=k∑Wjkt⊙zk~,j=1,2,..n.
其中 , Z ~ = [ z 1 ~ , z 2 ~ , . . . , z n ~ ] \tilde{Z} = [\tilde{z_1},\tilde{z_2},...,\tilde{z_n}] Z~=[z1~,z2~,...,zn~]
通过加权使实部和虚部相加,最后得到实数的输出.相角 θ k \theta_k θk随着输入的数据可以动态的调节。最后得到的输出为:
o j = ∑ k W j k t z k ⊙ cos θ k + W j k i z k ⊙ sin θ k , j = 1 , 2 , . . . , n . o_j = \sum_kW_{jk}^tz_k\odot \cos\theta_k + W_{jk}^iz_k\odot\sin\theta_k,j =1,2,...,n. oj=k∑Wjktzk⊙cosθk+Wjkizk⊙sinθk,j=1,2,...,n.
Wave-MLP Block
一个基础的block主要由两个channel-mixing MLP和相位感知token-mixing组成。channel-mixing MLP由两个channel-FC和非线性函数构成。token-mixing block组成了PATM模型。
为了兼容计算机视觉的任务,将2D图像看作是
H
×
W
×
C
H\times W\times C
H×W×C.其中,
H
、
W
、
C
H、W、C
H、W、C分别表示图像的高、宽和通道数。有两个平行的PATM模块,分别沿着高和宽来聚集信息。
和cycleMLP类似,不同分支用一个重新加权的模块求和。
传统的 MLP-Mixer做不了语义分割和物体检测。为了解决这个问题,使用了一个简单的策略,限制FC层只使用本地窗口(local window)内的token。除了PATM模块,另一个直接连接输入和输出的通道用来保存原始的信息,即,最后的输出为三个分支的总和。
Experiemnts
略