【Backbone: MLP-Mixer】MLP-Mixer: An all-MLP Architecture for Vision

 Abstract

  • CNN和attention-based结构很棒,但不是必须的。
  • 本文提出MLP-Mixer, 一种基于多层感知机(MLPs)的框架。包含两种layers:(1)channel-mixing MLPs:应用在image patches上,融合某个位置多个通道的特征;(2)token-mixing MLPs:应用在across patches上,融合某个通道多个位置的信息。
  • 效果不错的条件:在大型数据集上训练;或用modern regularization schemes

 

Introduction

  • 随着计算能力的提升,和更大数据集的出现,通常伴随着CV范式的改变,例如:CNN->ViT。ViT延续了长期的变化趋势:(1)去除去除人工设计的视觉特征和归纳偏置;(2)仅依靠初始数据。
  • 本文提出MLP-Mixer框架,它仅需要(1)矩阵乘法;(2)数据布局(reshape和转置);(3)放缩和非线性变化。
  • Mixer的输入是一组经过线性映射的图片快(tokens),输入格式为:patches x channels。Mixer使用两种MLP layers:(1)channel-mixing MLPs和token-mixing MLPs,具体结构如下:

  • 从CNN的角度看:channel mixing MLPs是1x1卷积;token mixing MLPs是单通道、全感受野、共享权重的卷积;CNN需要额外的pooling或特殊设计用于减少计算量,Mixer则相对比较简单。
  • 尽管它和简单,Mixer在大型数据集(~100M图片)上训练取得了sota成绩(在ILSVRC2012 "ImageNet"取得了87.94%)。在一定规模(~1-10M图片)下和modern regularization techniques([47, 52]),Mixer仍然取得了不错的成绩。

 

Mixer Architecture

  1. 神经网络通常(1)在给定的空间位置;(2)在不同空间位置间,进行特征融合。CNN用N x N(N > 1)的卷积和pooling实现了(2)。深层神经元通常具有更大的感受野。同时,1x1卷积执行了(1),更大的核会同时执行(1-2),在attention-based框架中,self-attention执行(1-2),而MLP-blocks仅执行(1)。Mixer是将(1)和(2)分别执行。
  2. 输入是S个不重复的图片块,每一个图片块被共享的线性映射到需要的维度C,input table是(S, C)。Mixer有多个layer,每个layer包含两个MLP blocks,分别是token-mixing MLP block和channel-mixing MLP block,并且每个layer的size是固定的。
  3. toking-mixing mlp block的维度选择和输入图片块的数量无关,因此计算复杂度和数量线性相关。channel-mixing MLP block的维度是和patch size无关的,所以复杂度和图片的像素点数量线性相关。
  4. 绑定channel-mixing mlps的参数是个自然选择,因为可以做到位置无关(卷积的显著特征)。
  5. Mixer的每个layer的输入具有相同尺寸,这与特征金字塔设计不同。
  6. 不需要positon embeddings,因为token-mixing MLPs对输入tokens的顺序是敏感的,因此可能学到位置表达。

 

Experiments

在中等、大型数据集上pre-trained,在小型和中型下游分类任务上测试。本文关注:(1)下游任务的准确率;(2)pre-training的计算复杂度;(3)推理时间。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值