众所周知,CNN是计算机视觉的首选模型,最近还流行用vision transformer做视觉,谁又能想到用多层感知机(MLPs)去做图像相关的模型呢?《MLP-Mixer: An all-MLP Architecture for Vision》这篇论文就用了基于MLP的框架,依然取得了很高的分类精度。

MLP-Mixer简介

MLP-Mixer不用卷积,也不用attention,完全基于multi-layer perceptrons(MLPs),仅依赖最基本的矩阵相乘,数据输出的改变(reshape,转置),和标量的非线性。上图展示了MLP-Mixer的宏观框架。说好的MLP,为啥看着这么像transfromer。

从上图我们可以看到,一张图片会被等分切成多个patchs,然后每个patch会有很多channels,最终一张图片的输入就是patches * channels的一张表。通俗点说,如上图左下角那张图片,假如它是9 * 9 * 3 ,会被划分成9个patch,每个patch就是3 * 3 * 3 = 27,所以这张图片的输入就是 9 * 27,如果输入多张图片,就是batch_size * 9 * 27。

从图中,我们可以看到Mixer使用两种类型的MLP层,channel-mixing MLPS和token-mixing MLPs。channel-mixing MLPs使得channel内之间有交互,而token-mixing MLPs使得不同位置(不同patch)之间有交互。这两种类型的MLP交错使用使得输入各个维度之间不断学习交叉特征。

如论文所说,channel-mixing就相当于使用1维卷积,对于token-mixing就可以看作为一个单通道的depth-wise卷积。CNN并不能看作是Mixer的特例,要远比这种结构复杂。

Mixer架构

其实Mixer架构非常简单,看上面的图解就已经很清楚了。Mixer把一个图片拆解为S个patchs,每个patch之间并无重叠。

每个patch会被同一个矩阵做线性映射为X(S * C),然后输入到上文所说的多个Mixer层中,先是遇到token-mixing MLP block,对矩阵每列做映射,再是通过channel-mixing对每行做映射,这里映射是共享embedding的。每个MLP层都包含两个全连接和一个非线性函数。Mixer layers用公式定义如下:

每层mixer的输入都是同样尺寸的table,这个和transformer很类似,和CNN就很不同了。Mixer也没有使用position embedding,因为token-mixing MLPs对位置已经很敏感了。最后Mixer用了一个很标准的pooling层和全连接层做分类任务。

实验

从实验中我们可以看到mixer在精度上离vit模型已经相差不多了,论文还对比了pretrain后的效果对比,感兴趣的可以看原文。

MLP-Mixer: An all-MLP Architecture for Vision.

arxiv.org/pdf/2105.0160

代码路径:github.com/google-resea

MLP is Best?

MLP is Best?相关推荐

  1. 谷歌提出纯 MLP 构成的视觉架构,无需卷积、注意力 !

    来源 | 迈微AI研习社 责编 | 寇雪芹 头图 | 下载于视觉中国 当前,卷积神经网络(CNN)和基于自注意力的网络(如近来大火的 ViT)是计算机视觉领域的主流选择,但研究人员没有停止探索视觉网络 ...

  2. AI从入门到放弃2:CNN的导火索,用MLP做图像分类识别?

    来源 | 腾讯知乎专栏 作者 | AIoys(腾讯员工,后台工程师) 项目文档和代码在此:github项目地址: https://github.com/zsysuper/AI_Notes ▌一.前言 ...

  3. CV之后,纯MLP架构又来搞NLP了,性能媲美预训练大模型

    视学算法报道 编辑:陈萍.小舟 搞不起大模型,试一下超高性能的纯 MLP 架构? 去年来自谷歌大脑的研究团队在网络架构设计方面挖出新坑,提出 MLP-Mixer ,这是一个纯 MLP 构建的视觉架构. ...

  4. ​2021年机器学习什么风向?把注意力放在MLP上

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:机器之心本文约2600字,建议阅读5分钟Attention i ...

  5. CNN、Transformer、MLP架构的经验性分析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨pprp 来源丨GiantPandaCV 编辑丨极市平台 导读 ViT的兴起挑战了CNN的地位, ...

  6. 假设你有一个多层感知机网络(MLP),输入层有10个节点、一个单隐层共50个神经元,最后是一个3个神经元的输出层。请问网络的结构是什么样子的使用数学形式进行描述?

    假设你有一个多层感知机网络(MLP),输入层有10个节点.一个单隐层共50个神经元,最后是一个3个神经元的输出层.请问网络的结构是什么样子的使用数学形式进行描述? 输入矩阵X的形状是什么? 隐藏层的权 ...

  7. 多层感知机MLP常见的超参数有哪些?如果MLP模型对于数据集过拟合了,如何调整这些超参数来进行解决?

    多层感知机MLP常见的超参数有哪些?如果MLP模型对于数据集过拟合了,如何调整这些超参数来进行解决? 目录

  8. 多层感知机MLP、RBF网络、Hopfield网络、自组织映射神经网络、神经网络算法地图

    多层感知机MLP.RBF网络.Hopfield网络.自组织映射神经网络.神经网络算法地图 目录

  9. sklearn MLP(多层感知机、Multi-layer Perceptron)模型使用RandomSearchCV获取最优参数及可视化

    sklearn MLP(多层感知机.Multi-layer Perceptron)模型使用RandomSearchCV获取最优参数及可视化 Deep Learning 近年来在各个领域都取得了 sta ...

  10. 【神经网络】MLP 编码器-解码器 注意力机制 残差连接

    [1] 多层感知机(MLP)   最典型的MLP包括包括三层:输入层.隐层和输出层,MLP神经网络不同层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接).   由 ...

最新文章

  1. Jquery真的很棒
  2. photoshop中把图片颜色变成透明
  3. 关于Flutter初始化流程,我必须告诉你的是...
  4. Day05 - Python 常用模块
  5. SpringBoot整合WebSocket时调用service和mapper的方法
  6. PHP的break与continue
  7. 洛谷 - P4016 负载平衡问题(最小费用最大流)
  8. 剑指offer--面试题13
  9. android 高仿随便走,随便走下载_随便走APP手机最新版安装 - 风云下载
  10. linux进程闭锁,4. ps 进程查看器
  11. 主动土工围栏行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  12. dubbox开发rest+json指南【转】
  13. 这是一封摘抄的情书有点长你读不完也没关系
  14. Excel学习日记:L30-制作甘特图
  15. matlab中nnt,Matlab语言的Neural Network Toolbox 及其在同步中
  16. power shell 命令 动词 大全 再也不用死记硬背命令
  17. Springcloud 介绍 和 Eureka的使用
  18. 并发编程之循环屏障CyclicBarrier
  19. lumen php命令,lumen控制器调用artisan
  20. php支持连接sql server数据库

热门文章

  1. 解决 Let’s Encrypt SSL 证书配置错误
  2. [development][PCRE] old PCRE
  3. Groovy/Spock 测试导论
  4. linux源码阅读笔记 fork函数
  5. 逼出的成功,强迫的辉煌
  6. BZOJ 2007: [Noi2010]海拔
  7. JavaSE(五)——修饰符、内部类、匿名内部类
  8. 计算机进桌面后反复重启,我的电脑一插网线就自动重启。到界面之后又马上重启。一直循环。...
  9. java快递柜系统开发_他专注智能柜系统开发,产品日使用频次达60万次,服务近400厂家...
  10. matlab用regress方法求ln函数_高考数学48条秒杀型公式与方法,想要120分一定要掌握...