深度学习——Pay Attention to MLPs

文章目录

  • 前言
  • Gmlp
    • 输入与输出
    • 结构
    • 个人理解

前言

前不久入职某大厂了,有点怀念无忧无虑的学生时代。入职后很快收到了第一个优化任务,算法岗的高不确定性确实会让人有一丝焦虑。目前体感来看,现有的深度学习模型性能非常依赖于数据质量,在数据质量足够的前提下,才有模型上的一系列操作。

本文将总结类ViT网络结构Gmlp,论文题为Pay Attention to MLPs

本文为个人总结,如有错误,欢迎指出。本文默认读者具有ViT相关知识


Gmlp

输入与输出

Gmlp是类ViT的结构,其输入仍为若干图像块(即将一张图像切割成若干图像块),输出为若干个向量(token)堆叠组成的矩阵,例如token的维度为 L L L,个数为 N N N,则输出为 N ∗ L N*L NL的矩阵。通过池化等操作转换为最终的特征向量。

结构

对比ViT,Gmlp取消了Position Embedding以及Self Attention,由若干个基本构成单元堆叠而成,基本构成单元(unit)的结构如下图所示
深度学习——Pay Attention to MLPs_第1张图片
设输入矩阵(即图中的Input Embeddedings)为 n ∗ d n*d nd的矩阵 X X X,则Gmlp的unit结构可以简化为(省略了Norm等操作):
Z = δ ( X U ) Z ^ = s ( Z ) Y = Z ^ V + X \begin{aligned} Z&=\delta(XU)\\ \hat Z&=s(Z)\\ Y&=\hat Z V+X \end{aligned} ZZ^Y=δ(XU)=s(Z)=Z^V+X

U 、 V U、V UV为可学习的矩阵(就是FC层,维度自己定), δ \delta δ为激活函数, s ( z ) s(z) s(z)为图中的Spatial Gating Unit,其结构可以表示为

f W , b ( Z ) = W Z + b s ( Z ) = Z ⊙ f W , b ( Z ) \begin{aligned} f_{W,b}(Z)&=WZ+b\\ s(Z)&=Z\odot f_{W,b}(Z) \end{aligned} fW,b(Z)s(Z)=WZ+b=ZfW,b(Z)
Z Z Z n ∗ d n*d nd的矩阵,则 W W W n ∗ n n*n nn的矩阵(不会改变输入矩阵的维度), b b b n n n维向量( W Z + b WZ+b WZ+b表示 W Z WZ WZ的第一行元素与b的第一维元素相加),为了保证训练的稳定性, W W W初始化值接近于0(貌似用[-1,1]的均匀分布初始化), b b b的初始值为1,此时 f W , b ( Z ) ≈ 1 f_{W,b}(Z)\approx1 fW,b(Z)1,此时Spatial Gating Unit相当于Identity Mapping。

更进一步的作者发现将 Z Z Z沿着channel维度切割成 Z 1 、 Z 2 Z_1、Z_2 Z1Z2 Z 1 、 Z 2 Z_1、Z_2 Z1Z2维度分别为 n ∗ d 1 n*d_1 nd1 n ∗ d 2 n*d_2 nd2 d 1 + d 2 = n d_1+d_2=n d1+d2=n)两个部分更为有效,此时 s ( Z ) s(Z) s(Z)操作变为
s ( Z ) = Z 1 ⊙ f W , b ( Z 2 ) s(Z)=Z_1\odot f_{W,b}(Z_2) s(Z)=Z1fW,b(Z2)

Spatial Gating Unit的输出在经过矩阵 V V V调整维度后与unit的输入进行相加。

个人理解

这里总结几点我认为比较重要的点,首先是脱离Gmlp的大方向上,在看完ViT的结构后,个人一直感觉Self Attention不是其性能的主要来源,gMLP、MLP-Mixer,以及接下来要总结的MetaFormer都验证了这一点。更进一步的,这几个工作都有一个共性,即类ViT结构的模型都会先用FC层混合单个token中的信息,接着用一个特定的操作来混合多个token的信息(MLP-Mixer通过token mixer来混和多个token的信息,MetaFormer通过池化操作,gMLP通过Spatial Gating Unit),这两个操作可看成对CNN中卷积操作的拆解,在CNN中,多个特征图输入到卷积核后,卷积核会糅合多个特征图中的空间(Spatial)和通道(channel)信息。而在类ViT结构中,若将token看成特征图,则其首先利用FC层糅合单个特征图(token)的空间信息,接着糅合多个特征图(token)的信息(通道信息)。此外,类ViT结构中的矩阵操作可以等价于卷积操作(只不过卷积核的分辨率大小等于特征图大小)。综合上述分析,类ViT结构更像是CNN模型的变种,我们似乎发现了一种更为有效的CNN结构。

回到Gmlp上,Spatial Gating Unit形式上很想Attention,但作者引入其的本意并不是挑选哪类特征是重要的,而是混合多个token的信息,不过这种混合的方式比较诡异,应该存在更具解释性的方式。

你可能感兴趣的:(深度学习,深度学习,人工智能,机器学习)