MLP在CV上的复兴,“Pay Attention to MLPs“

前言

本文写于2021年8月27日。最近好像没人写这方面的总结,我就稍微写一写。
Transformer最近成为cv学术圈的宠儿,有声音鼓吹要取代CNN。其实所谓的self-attention, 简单地说,就是输入I乘以一个权重P得到一个新权重Q,再乘以I本身。虽然在推断时P是固定的,但Q的值也取决于I,由于I是变化的,于是乎美其名曰“自适应”“动态权重”。CNN可以实现类似的功能,更不用说MLP。
Transformer热潮未过,谷歌又吹响了复兴MLP的号角,一系列魔改接踵而至。MLP能否达到Transformer的热度?拭目以待。
为什么需要复兴MLP?我觉得有两个原因很重要:简单,通用。目前的实验结果表明,MLP确实有成功的可能。

先锋:MLP-Mixer

MLP-Mixer: An all-MLP Architecture for Vision

MLP-Mixer让大家重新注意到纯MLP架构在CV中的应用。这篇文章也受到很多吐槽,主要是因为CNN中卷积操作与MLP中全连接操作可以相互转化。卷积是全连接的一种特化,所以可以将卷积核参数转化成全连接的参数矩阵;而全连接操作即二维矩阵相乘可以看成为1x1卷积。所以MLP-Mixer既可以用全连接来实现,也可以用卷积来实现。

预处理层

要证明一个新结构的有效性,往往先在CV最基础的任务——图像识别上进行验证。最近的MLP网络大都遵循预处理层->多个堆叠的block->分类器。不同网络的差异主要体现在block。分类器就是和类别数目相关的一层MLP,而预处理层负责将输入图像抽象成二维矩阵,便于后续进行矩阵乘法。这里先具体介绍一下预处理层。
假设输入图像大小为 ( W , H , 3 ) (W,H,3) (W,H,3),沿着长和宽将其均匀得分成 w ∗ h w*h wh块,每块的大小为 ( W / w , H / h , 3 ) (W/w,H/h,3) (W/w,H/h,3)。将块伸展成大小为 ( W ∗ H ∗ 3 / ( w ∗ h ) ) (W*H*3/(w*h)) (WH3/(wh))的向量,所有块按行拼成大小为 ( w ∗ h , W ∗ H ∗ 3 / ( w ∗ h ) ) (w*h, W*H*3/(w*h)) (wh,WH3/(wh))的二维矩阵,经过一层mlp提出特征,得到大小为 ( w ∗ h , c ) (w*h, c) (wh,c)的输出,其中 c c c为每个块特征的长度。

形形色色的block

如何让输入的各元素进行充分地进行信息交互是研究的重点。什么是信息交互?举个例子,加权和是神经网络里常用的计算方式,如果一组元素加权和得到一个输出,则称这组元素互相进行信息交互,因为它们一起为输出的某个值作贡献。
在预处理层得到了大小为 ( w ∗ h , c ) (w*h, c) (wh,c)的特征图。其中 w ∗ h w*h wh表示图像分块的数量,这个维度包含空间信息。假设输入输出大小不变,考虑普通的全连接操作,即有个大小为 ( c , c ) (c, c) (c,c)的权重矩阵,与输入特征图做矩阵乘法,得到大小为 ( w ∗ h , c ) (w*h, c) (wh,c)的输出特征图,图示如下
在这里插入图片描述
会发现只是按行交互,即只是进行通道之间的交互。这种称为通道间的全连接操作(Channel FC)。为了按列交互,即进行空间上的交互,MLP-Mixer添加了空间上的全连接操作(Spatial FC),图示如下
在这里插入图片描述
MLP-Mixer的block长下面这样。图中MLP1是Spatial FC, MLP2是Channel FC。
在这里插入图片描述
Spatial FC的权重矩阵大小为 ( w ∗ h , w ∗ h ) (w*h, w*h) (wh,wh),其中 w , h w,h w,h都由图像大小决定,这就导致了MLP-Mixer要求输入图像的大小是固定的,而不像CNN那样可以处理变长数据。有什么方法既可以交互空间上的信息,又可以处理变长数据呢?目前针对Spatial FC的优化参考了ShuffleNet中的通道交换思想,按一定方法对空间维度上的值进行采样,然后进行Channel FC。比如CycleMLP的按阶梯方式采样
在这里插入图片描述
无独有偶,S2MLP的Spatial Shift 模块将通道分成四组,分别向前后左右四个方向位移一个单位进行空间信息的交互。
在这里插入图片描述
还有许多魔改网络,总的来说大同小异,这里不多说。

再审视“纯MLP”网络
去卷积,却又处处是卷积。
  • 预处理层可以用大小为 ( 3 , c , W / w , H / h ) (3,c,W/w,H/h) (3,c,W/w,H/h)的卷积实现。
  • Channel FC和 Spatial FC,前面说了,可以用大小为 ( c , c , 1 , 1 ) (c,c,1,1) (c,c,1,1) ( h ∗ w , h ∗ w , 1 , 1 ) (h*w,h*w,1,1) (hw,hw,1,1)的卷积实现。
  • Cycle FC 和 Spatial Shift 本质是先进行空间移位再进行Channel FC。而空间移位操作也可以用参数固定的卷积实现。
究竟什么是完美的inductive bias

为了简化问题,算法往往会对问题做一些符合认知的假设,即inductive bias,中文翻译是归纳偏置。
CNN的inductive bias是邻域相关性空间不变性。领域相关性指二维空间上互相靠性的元素有联系而远的没有,所以卷积核有个相对小的面积,常用的比如 3 × 3 3\times 3 3×3; 空间不变性指卷积核参数在各位置共享。
而MLP-Mixer的inductive bias是全局相关性,空间上的联系不再局限于领域而是全局。S2MLP和CycleMLP也是如此,不过加了更多的人工规则。
笔者认为,各种各样的inductive bias可能有效,却很难接近完美。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值