《MLP-Mixer: An all-MLP Architecture for Vision》的讲解

MLP-Mixer: An all-MLP Architecture for Vision
论文地址:
https://arxiv.org/abs/2105.01601

MLP-Mixer:一种仅基于多层感知机(MLP)的体系结构!可比肩并旨在超越成熟的CNN和大火的视觉Transformer的阵营工作

可以不使用CNN和transformer,仅仅依靠MLP来解决复杂数据集的分类任务吗?
《MLP-Mixer: An all-MLP Architecture for Vision》为了解决上诉问题,它仅仅依赖于基础矩阵乘法运算和数据的布局变换 (reshapes and transpositions) ,以及非线性层。结果表明,尽管Mixer仅仅使用了MLP层,但是其结果却是极具竞争力的。作者在大型数据集 (约1亿=100M张图片,对比 ImageNet 是1.28M训练集,5万验证集和10万测试集) 上训练以后可以在ImageNet 的验证集上达到87.94% 的准确率 (对比 EfficientNet-B7是84.7%, ViT-B是77.9% );若在 稍微小一点的数据集 (约1-10M张图片) 上训练,也能达到接近CNN架构的性能。

由此可见,仅仅靠着MLP真的可以解决复杂数据集的分类任务,而且和CNN,Transformer模型的性能相当。

1.MLP-Mixer是如何处理输入图片的?

对于维度为HW3的图片,基于MLP的 MLP-Mixer将输入的图片分块(patch),每个patch的大小是p* p* 3,一共可以分成s=(HW/p** 2)个patch给展平(flatten),就展成一位向量,得到一个长度为3p** 2的向量。s个这样的向量拼在一起就结合成一个维度(s,3p** 2)的张量,再把张量通过线性映射将第2维的大小为c成为hidden dimension。这样最后我们就得到了一个维度是 (s,c)=patcheschannels的张量。它由s个1c的向量组成,每一个向量,我们称为1个to ken。这样的张量才是后续MLP-MiXer模型的真正输入
在这里插入图片描述
注:1×1卷积可以结合不同channels的信息,但不能结合不同空间位置的信息。

MLP-MiXer模型的真正输入的张量,不仅混合各种channels之间的信息(将每一块的图片信息flatten成一维向量),而且混合不同空间位置的信息(分块)。

2.MLP-MiXer架构

在这里插入图片描述
在这里插入图片描述
有了上面的铺垫再来理解MLP-Mixer的结构就很简单了。如上图2所示,Mixer 由大小相同的多个层和一个分类头组成。每个层由 2 个 MLP 块组成,其中,第一个块是 token-mixing MLP 块,第二个是 channel-mixing MLP 块。其中分类头就包括Global Average Pooling和一个全连接层。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值