5分钟就能学会的简单结构 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021
- 文章转自:微信公众号「机器学习炼丹术」
- 作者:炼丹兄(欢迎交流,共同进步)
- 联系方式:微信cyx645016617
- 论文名称:「MLP-Mixer: An all-MLP Architecture for Vision」
- 论文链接:https://arxiv.org/pdf/2105.01601v1.pdf
「前沿」:最近忙各种各样的事情,更新慢了。抽空写一点。这一篇内容很简单,只需要5min就可以学完。
正文开始
我们提供了MLP-Mixer架构,之后简称Mixer。这是一个有竞争力,但是概念和技术都很简单的结构,并且没有用到卷积和自注意力。
类似于transformer,Mixer模型的输入依然是图片的Patch经过线性映射之后的序列,简单的说就是embedding。是一个形状如同“patches x channels” 这样的一个特征。其中,我们把图片embedding之后的序列,叫做token。
下图是Mixer的宏观结构图:
Mixer利用了两种MLP层:
- channel-mixing MLPs:允许不同channels特征之间的交流;
- token-mixing MLPs:允许不同空间位置之间的交流。
- 这两个MLP层是交错的。
「图解读」
- 从图中caption部分可以看到。“Per-patch Fully-connected”我认为就是embedding层,比方说把一个32x32x3的彩色patch图片,全连接映射到128维度的序列。
- Mixer Layer就是文章提出的主要创新结构。其中,每一个Mixer Layer包含一个token-mixing MLP 和一个channel-mixing MLP,这两个结构都是由两个全连接层和GELU激活函数组成。
- 我们再来看上图的上面部分,体现了Mixer Layer的细节:首先,假设一个图片被分成了9个patch,然后每一个patch经过embedding,变成了一个128的向量。那么原图经过embedding,最终得到的是9x128这样的一个矩阵。
- 这个矩阵先经过LayerNorm,相当于是在128这个维度上进行归一化;
- 然后矩阵经过转置,变成128x9的样式;
- 经过第一个全联接层,这个MLP应该就是channel-mixing了,因为是对9这个patch维度进行计算;
- 然后再转置成9x128,再进行layer norm;
- 然后token-mixing channels,在128这个spatial维度上进行计算;
- 中间加了两个skip connection。
「这里,我们可以发现,整个结构确实非常简单,回头试试效果去。」
5分钟就能学会的简单结构 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021的更多相关文章
- 10分钟 教你学会Linux/Unix下的vi文本编辑器
10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...
- 2分钟就能学会的【Google/百度搜索大法】了解一下?
之前我在知乎回答了「日常生活中有哪些十分钟就能学会并可以终生受用的技能」,现在也整理分享给公众号的朋友们. 作为一个入坑8年国际贸易的老阿姨,真心推荐[google搜索大法](同样适用于百度). 2分 ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- 5分钟让你学会用最高效的工具解析所有Json
如果你是一个Android开发工程师,学会解析Json字符串是你的必修课,本篇文章主要以实例的方式手把手教你怎么做,花五分钟时间阅读本篇文章你就可以学会解析所有的Json字符串啦. 准备: json字 ...
- 5分钟教你学会JavaScript正则表达式
正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模 ...
- Docker虚拟化管理:30分钟教你学会用Docker
关于Docker的官方介绍网上太多了我就不贴了,就实际体验来说Docker可以极大的简化环境搭建及服务部署的操作流程,大大降低部署的时间成本,解放你的双手. 本文不会深入讲解Docker底层架构及运行 ...
- 几分钟就能学会的Python虚拟环境教程
什么是虚拟环境 我们在使用Python的时候,通常用pip来进行包管理.比如我们要安装一个叫requests的库,那么我们就会采用以下命令去安装: pip install requests 那你知道, ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(1)
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法. ...
随机推荐
- BB网络层测试
网络层测试2020 问题 1 以下不属于网络层的协议是___A_______. A DHCP B ICMP C IGMP D ARP 10 分 问题 2 如果目的网络.目的主机都对,但是 ...
- shopify 学习链接整理
shopify shopify packagist https://help.shopify.com/zh-CN/manual/apps/apps-by-shopify/script-editor/s ...
- js弹窗的3种方式:alert、confirm、prompt
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- hdu3234 带权并查集(XOR)
题意: 给你n个未知的正整数,有三总操作 I P V P的值是V I P Q V P XOR Q = V Q K ...
- CVE-2010-3974:Windows 传真封面编辑器 FxsCover.exe 双重释放漏洞调试分析
0x01 堆空间申请后的双重释放 Windows FxsCover 程序存储封面编辑器的信息,封面编辑器是传真服务的一个组件,通过解析特定的传真封面文件(.cov)时,会调用类析构函数对同一内存中的栈 ...
- WPF之事件绑定命令
目录 事件绑定意义 无参数的事件绑定 带EventArgs参数的事件绑定 使用事件绑定 扩展:基于InvokeCommandAction源码的实现(推荐) 参考资料 事件绑定意义 一般事件的处理程序都 ...
- PowerDesigner16安装和使用
安装 安装参考链接:PowerDesigner安装教程 因为这个博主已经操作的很详细了,这边就不做过多的赘述. 使用 新建模型 选择物理模型 调出面板Palette 建表 最终的效果(一般不在数据库层 ...
- 敏捷史话(十七):维基(Wiki)背后的灵感来源—— Ward Cunningham
在软件开发领域, Ward Cunningham 有许多独到的见解与成就. 1949年,Ward Cunningham 出生于印第安纳州的密歇根市,并在莱克县的一个小镇中长大.怀揣着对计算机浓厚的兴趣 ...
- Centos7下搭建gitbook环境踩坑记录
1.安装npm yum -y install npm 2.配置npm仓 npm config set registry https://mirrors.tencent.com/npm/ 3.安装git ...
- 一道VM的逆向所引发的符号执行思路
逆向虚拟机保护 虚拟机保护类的题目需要找到虚拟机的vm_code(字节码),各个handler,然后进一步分析虚拟机保护代码的流程. 用IDA打开程序,经分析后0x403040全局变量地址处存储的就是 ...