image.png

从摘要读论文

Recently, MLP-like vision models have achieved promising performances on mainstream visual recognition tasks. In contrast with vision trans-formers and CNNs, the success of MLP-like models shows that simple information fusion operations among tokens and channels can yield a good representation power for deep recognition models. However, existing MLP-like models fuse tokens through static fusion operations, lacking adaptability to the contents of the tokens to be mixed. Thus, customary information fusion procedures are not effective enough. To this end, this paper presents an efficient MLP-like network architecture, dubbed DynaMixer, resorting to dynamic information fusion.

这里提到现有方法对于token的融合都是静态操作(强调的应该是空间MLP),缺少对于token内容的适应能力。值得好奇的是,本文又是如何的“动态融合操作”? 或许这里想强调,现有方法的MLP的权重是静态的,而本文可能是动态权重。 即由特征生成变换矩阵。

Critically, we propose a procedure, on which the DynaMixer model relies, to dynamically generate mixing matrices by leveraging the contents of all the tokens to be mixed.

这里验证了前面的猜测,确实是动态生成变换权重。

To reduce the time complexity and improve the robustness, a dimensionality reduction technique and a multi-segment fusion mechanism are adopted.

实际上本文使用的效率提升(相较于直接针对整个空间执行MLP)策略有三点:

  • 轴向拆解:将整个空间的计算拆成行列两种方向的独立的并行分支。
  • 维度缩减:主要用于缩减注意力矩阵运算过程中的参数量。有趣的是,在作者的实验中,提出的模块中的中间维度中甚至可以缩减到1而未造成太大的性能影响。
  • 而这里的multi-segment fusion指的是将提出的模块中对特征分组的设计。每个组独立计算token mixing矩阵。这样的设计按照作者的表述是可以“提升模型的鲁棒性和泛化能力”。但是并未提供所谓的依据,仅仅展示了分类性能。

Our proposed DynaMixer model (97M parameters) achieves 84.3% top-1 accuracy on the ImageNet-1K dataset without extra training data, performing favorably against the state-of-the-art vision MLP models. When the number of parameters is reduced to 26M, it still achieves 82.7% top-1 accuracy, surpassing the existing MLP-like models with a similar capacity. The implementation of DynaMixer will be made available to the public.
image.png

模型结构

这篇文章设计的核心就是将动态参数的思想引入了轴向上下文信息变换的过程中
image.png
image.pngimage.png
上文是文章提出模型的结构和核心操作,文章思路的起点还是在修改空间MLP的形式。即如何改善现有基于固定权重的空间MLP的对于token多变内容的适应能力,即模型的灵活性。

DynaMixer

我们直接看提出的DynaMixer操作的最终形式:
image.png
这里引入了通道分组的概念来提升模型的表达能力。首先通过一个对整个输入通道作用的权重Wd来计算得到中间特征,之后沿着通道分为S组(可以理解为对应于SelfAttention中线性变换后的分头操作),每一组独立计算等式6所示的过程(各头计算Attention矩阵)。这里softmax中已经是NxN的矩阵了。
这里的操作和SelfAttention的计算方式类似,只是相当于将原本的K变成了一个固定的权重W了。之后使用不同分组对应的空间变换矩阵来处理原始特征,结果拼接后整体融合一下,要注意,这里实际上是完全延续了SelfAttention的形式。如果将这里XWd看作是Q,而XWo看做是V的话,会更直观一些。(这些与Synthesizer中的Dense形式类似
另外,可以通过在不同的分组之间共享等式6中最右侧的权重参数,来减少参数量。此时相当于是不同的头公用一个固定的K。
需要注意的是,这里的Wd会将输入的特征的通道进行压缩来降低计算复杂度。实际会压缩到一个非常小的值d,甚至可以到1或者2,而不会影响性能。
提出的DynaMixer操作仅用于H和W方向的处理,而另一个独立的通道分支,则就是一个通道MLP。
三个分支会被加起来。本文中,也引入了ViP中借鉴自ResNeSt中的注意力加权的方式来组合不同分支。

与ViP和Synthesizer的关联

实际上,本文的工作与以下两份工作非常相关:
image.png

image.png
image.png

  • Synthesizer: Rethinking Self-Attention for Transformer Model:解析可见https://kexue.fm/archives/7430

    • 借鉴了权重直接动态生成的设计的思想,主要是与其中的Dense形式相近。只不过将Synthesizer Dense结构中的ReLU去掉了,并且这里的通道形式有所差异:
      • Synthesizer中,对于X: Nxd,进行如下变换:NxD->NxD->NxN,
      • 而本文则是:NxD->Nxd->1xNd->1xNN->NxN。
      • 即在生成最终的矩阵的过程中,本文同时用到了空间和通道信息,而Synthesizer仅仅只用用了通道信息。也就是说,Synthesizer仅仅是利用了单个token的信息,而本文考虑了更大范围的上下文。
    • 值得一提的是,Synthesizer中提到的另一种形式Random,其就是一种静态权重的形式,在原论文中也进行了关于动态和静态权重的对比。而本文相当于是在视觉任务中进一步设计了一种更有效的动态结构来和现有方法中的静态权重进行对比。

      模型的局限

      文章也讨论了模型的局限:
  • 由于混合矩阵是动态生成的,DynaMixer的参数和计算量略大于其他模型。在实践中,这种增量将影响训练时间。例如,Dynamicer-S、Dynamicer-M和Dynamicer-Lar的训练速度分别比ViP Small/7、ViP Mediam/7和ViP Large/7低20%、14%和25%。

  • 此外,我们模型的输入图像大小应该是固定的,这限制了它在一些下游任务上的应用,例如,目标检测和分割。通过采用滑动窗口等技术消除这些限制是未来会尝试的工作。

    实验

    具体训练设置可见原始论文,用了许多数据增强的手段和正则化策略。
    image.pngimage.png
    image.pngimage.png
    image.pngimage.png
    对分组数进行了消融实验,随着分组的增加,模型效果也会好一些。
    也比较了不同的压缩维度。可以看到,即使d=1,效果也不是太差。
    image.png
    将不同的变换矩阵生成策略进行了对比,本文的效果更好一些。这里的Random形式实际上和ViP的设计有相似之处,都是静态权重的应用,只能说作用范围可能略有差异,ViP中还涉及到部分通道。后两样的对比也证明了利用上下文信息的必要性,而且本文的实现思路也更有效。
    image.pngimage.png
    消融实验效果看上去都不错。消融实验中,作者尝试了将row mixing和column mixing两个分支的参数共享(“+sharing …”)来减少参数,可以看到,性能也不差。
    同时展示了在cifar上的微调结果。

    链接

  • 论文:https://arxiv.org/abs/2201.12083