Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

杜伟、陈萍编译

前馈网络+线性交互层=残差MLP,Facebook纯MLP图像分类架构入场

最近一段时间,多层感知机(MLP)成为 CV 领域的重点研究对象,谷歌、清华大学等机构的研究者先后提出了纯 MLP 构建的视觉架构和新的注意力机制,这些研究将 CV 的研究重心重新指向 MLP。近日,Facebook 提出了具有数据高效训练、用于图像分类的纯 MLP 架构 ResMLP,当采用现代的训练方法时,该架构在 ImageNet 数据集上实现了相对不错的性能。

前几天,谷歌提出的 MLP-Mixer 引爆 CV 圈,无需卷积、注意力机制,仅需 MLP 即可实现与 CNN、ViT 相媲美的性能。

同样地,清华大学的 Jittor 团队提出了一种新的注意机制,称之为「External Attention」,基于两个外部的、小的、可学习的和共享的存储器,只用两个级联的线性层和归一化层就可以取代现有流行的学习架构中的「Self-attention」,进一步揭示了线性层和注意力机制之间的关系;此外,清华大学丁贵广团队将 MLP 作为卷积网络的一种通用组件实现多种任务性能提升。

MLP->CNN->Transformer->MLP 圈似乎已成为一种趋势。

近日,来自 Facebook 的研究者进一步推动了这一趋势,他们提出了 ResMLP(Residual Multi-Layer Perceptron ),一种用于图像分类的纯多层感知(MLP)架构。

论文链接:https://arxiv.org/pdf/2105.03404.pdf

该架构极为简单:它采用展平后的图像 patch 作为输入,通过线性层对其进行映射,然后采用两个残差操作对投影特征进行更新:(i)一个简单的线性 patch 交互层,独立用于所有通道;(ii)带有单一隐藏层的 MLP,独立用于所有 patch。在网络的末端,这些 patch 被平均池化,进而馈入线性分类器

该架构是受 ViT 的启发,但更加简单:不采用任何形式的注意力机制,仅仅包含线性层与 GELU 非线性激活函数。该体系架构比 Transformer 的训练要稳定,不需要特定 batch 或者跨通道的标准化(如 Batch-Norm、 GroupNorm 或 LayerNorm)。训练过程基本延续了 DeiT 与 CaiT 的训练方式。

由于 ResMLP 的线性特性,模型中的 patch 交互可以很容易地进行可视化、可解释。尽管第一层学习到的交互模式与小型卷积滤波器非常类似,研究者在更深层观察到 patch 间更微妙的交互作用,这些包括某些形式的轴向滤波器(axial filters)以及网络早期长期交互。

架构方法

ResMLP 的具体架构如下图 1 所示,采用了路径展平(flattening)结构:

整体流程

ResMLP 以 N×N 非重叠 patch 组成的网格作为输入,其中 N 通常为 16。然后,这些非重叠 patch 独立地通过一个线性层以形成 N^2 个 d 维嵌入。接着,生成的 N^2 个 d 维嵌入被馈入到一个残差 MLP 层序列中以生成 N^2 个 d 维输出嵌入。这些输出嵌入又被平均为一个表征图像的 d 维向量,这个 d 维向量被馈入到线性分类器中以预测与图像相关的标签。训练中使用到了交叉熵损失。

残差多感知机层 

网络序列中的所有层具有相同的结构:线性子层 + 前馈子层。类似于 Transformer 层,每个子层与跳远连接(skip-connection)并行。研究者没有使用层归一化(LayerNormalization),这是因为当使用公式(1)中的 Affine 转换时,即使没有层归一化,训练也是稳定的。

研究者针对每个残差块都使用了两次 Affine 转换。作为预归一化,Aff 替代了层归一化,并不再使用通道级统计(channel-wise statistics)。作为残差块的后处理,Aff 实现了层扩展(LayerScale),因而可以在后归一化时采用与 [50] 中相同的小值初始化。这两种转换在推理时均集成至线性层。

此外,研究者在前馈子层中采用与 Transformer 中相同的结构,并且只使用 GELU 函数替代 ReLU 非线性。

与 Transformer 层的主要区别在于,研究者使用以下公式(2)中定义的线性交互替代自注意力

与 ViT 的关联

ResMLP 是 ViT 模型的大幅度简化,但具有以下几个不同点:
  • ResMLP 没有采用任何自注意力块,使用的是非线性(non-linearity)的线性 patch 交互层;

  • ResMLP 没有采用额外的「类(class)」token,相反只使用了平均池化;

  • ResMLP 没有采用任何形式的位置嵌入,不需要的原因是 patch 之间的线性通信模块考虑到了 patch 位置;

  • ResMLP 没有采用预层归一化,相反使用了简单的可学习 affine 转换,从而避免了任何形式的批和通道级统计。

实验结果

研究者在 ImageNet-1k 数据集上训练模型,该数据集包含 1.2M 张图像,平均分布在 1000 个对象类别中。他们在实验中采用了两种训练范式:监督学习知识蒸馏

首先,研究者将 ResMLP 与 Transformer、convnet 在监督学习框架下进行了比较,如下表 1 所示,ResMLP 取得了相对不错的 Top-1 准确率

其次,利用知识蒸馏提高模型的收敛性,结果如下表 2 所示。与 DeiT 模型类似,ResMLP 可以从 convnet 蒸馏中显著获益。

实验还评估了 ResMLP 在迁移学习方面的性能。下表 3 展示了不同网络架构在不同图像基准上的性能表现,数据集采用了 CIFAR-10、CIFAR100、Flowers-1022、 Stanford Cars 以及 iNaturalist 。

权重稀疏性测量也是研究者的关注点之一。下图 2 的 ResMLP-24 线性层的可视化结果表明线性通信层是稀疏的,并在下图 3 中进行了更详细的定量分析。结果表明,所有三个矩阵都是稀疏的,实现 patch 通信的层明显更稀疏。

最后,研究者探讨了 MLP 的过拟合控制,下图 4 控制实验中探索了泛化问题。

参考链接:https://bbs.cvmart.net/post/4750
理论Facebook AI图像分类架构ResMLP
2
相关数据
线性分类器技术

机器学习通过使用对象的特征来识别它所属的类(或组)来进行统计分类。线性分类器通过基于特征的线性组合的值进行分类决策。 对象的特征也称为特征值,通常在称为特征向量的向量中呈现给机器。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

层归一化技术

深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。

推荐文章
暂无评论
暂无评论~