热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

视觉图像的生成机制与英文术语解析

近期,GoogleBrain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。


机器心脏分析师网络


作者:安古丽亚赵


编辑:H4O


近日,谷歌大脑、牛津大学、清华大学等研究机构纷纷发表了自己对MLP在视觉分类中角色的重新定位,引发了广泛的学术思考。


图像分类一直是计算机视觉研究中非常基础和重要的任务。在以深度学习为主导的过去十年中,通用卷积神经网络(CNN)的基本范式得到了普遍继承。大部分思想集中在不同网络模型的设计和模块创新上,很少有直接对卷积神经网络本身的既定框架进行颠覆性的工作。Transformer在自然语言处理任务中取得成功后,注意力机制在视觉任务方向也获得了大量的关注和应用,他们的大部分工作也被认为是性能提升非常有效的一部分。


但是,最近谷歌大脑、牛津、清华等研究机构都发表了自己对MLP在视觉分类中角色的重新定位,引发了广泛的学术思考:深度学习网络在经历了来自CNN的一系列骨干变革后,是否再次收敛到普通简洁的MLP范式?MLP框架是否具有普遍性,其潜在的科研和商业价值有多高?新框架将为后续的视觉研究和技术应用提供哪些潜在的可能性和创新灵感?


基于上述问题,结合作者最近阅读的上述三篇MLP论文,对与神经网络模型相关的图像分类任务进行了简单的开发,然后对最近三篇论文中提到的方法进行了总结和提炼,并试图总结此类研究带来的意义和未来潜力。


0.神经网络图像分类发展简介


事实上,早在20世纪,就有一些早期的雏形如Neognonitron、ConvNet、LeNet等利用神经网络对图像进行分类。比如LeNet非常有效地完成了数字识别限制的任务,卷积的概念也很早就出现了。然而,由于缺乏计算机计算能力,很长一段时间都没有取得更多的进展。


大多数人更熟悉的事实是,2012年,AlexNet在视觉图像分类挑战(ImageNet)中使用了GPU,并取得了惊人的Top-1精度。此后,以卷积层为范式的卷积神经网络发展了各种经典模型。




2014-2017年,盗梦空间、Resnet、VGG等模型都取得了非常好的SOTA性能,小卷积核感受野、多通道跨层链接等模块的设计被证明非常有效。长期以来,CNN作为中坚力量,是应对深度视觉任务的最佳选择。请参考下图中各经典CNN网络模型的呈现和演进过程:




接下来,在2017年左右,人们发现注意机制在捕获和增强视觉特征提取方面也非常有效,并做了一点工作来尝试。2018年前后,最初用于自然语言处理的Transformer被发现在视觉分类等任务上具有高度移动性,因此Transformer成为近两年视觉研究的热点。人们对图像局部块之间的上下文关系给予了前所未有的重视,进一步将卷积网络时期的感受野学习提升为特征或图像块之间的关联学习。注意力相关的工作也取得了井喷式的发展,比如Vit[9],Deit[10]是有效整合Transformer思路的初期工作,DeepViT[11]是混合多个注意力头混合模块的尝试。CaiT[12]将原Transformer中的注意层分为两个阶段进行学习。CrossViT[13]、PiT[14]、LeViT[15]、CvT[16]以及其他许多相关著作都进一步发展了Transformer对于完全依赖导演的捕捉的优势,并试图将其与之前被证明非常有效的CNN模块(如pooling)相结合。


1.注意力是分类成绩的保证吗?


你需要关注吗?一堆前馈层在ImageNet上表现惊人


在介绍目前正在激烈讨论的MLP-密炼机模型之前,我们先来看看这份牛津大学的四页研究报告。在一定程度上简洁地回答了一个问题:注意机制是保证图像分类任务性能的关键吗?我们知道,自从Transformer被证明在视觉任务中同样可行后,许多与视觉相关的任务也应用了这一范式,并普遍将性能提升归因于注意机制,声称注意机制将全局感受野引入网络,致力于提高不同工作中注意模块的效率和有效性。因此,本文对ImageNet数据集进行了“严格控制变量”。

图像分类实验:在不改动注意力分类网络其他结构和参数设置的情况下,单纯将每个注意力网络层替换为一个简单的前传网络层(feed-forward layer),由此原先的 Transformer 模型可被看为由多层前传网络层构成的一个 MLP 分层网络,如左下图所示。

在实验部分,论文作者采用了目前 Transformer 分类器中的代表作 ViT 以及 DeiT,继承其所有的模型结构与超参设置,并依据 ViT,Deit 的 Tiny, Base, Large 三个网络结构,在 ImageNet 数据集上训练了三个 feed-forward only 模型(FF only)。参照右上图训练结果,Tiny 网络中 FF only 模型表现相比于 attention 模型,参数数目较多的情况下性能也并不占优。然而当模型增大为 Base 与 Large 时,仅有前传层的 FF only 表现就非常的惊艳了,在参数数目相比也较少的情况下,纯前传层构成的 MLP 模型 FF only 取得了几乎持平甚至占优的 Top-1 分类精确度,这从侧面也说明了MLP 模型在较复杂较大的网络中有不俗的表征能力。

为了更加公平的比较,论文作者也试图将所有前传层都替换为注意力层,类比实现一个 attention only 的模型来进一步探究注意力机制的表现力,然而注意力网络在 tiny 模型上训练了 100 个 epochs 之后也只能达到 28.2% 的 top-1 准确度。由以上实验,论文作者推断一个好的 Transformer 分类器并不一定需要注意力模块来保障性能,可能是图片块的映射嵌入(embedding)或者 Transformer 本身自成体系的训练流程保证了性能的优越性。

下图附上 FF only 模型中替换注意力模块的线性前传模块,可以看出实现直观简单,感兴趣的读者同样可以根据此做更多的扩展性探索和实验。

总体来说这篇文章提出的问题非常鲜明,提出的论证过程本身也非常有趣。论证的过程虽然实验设置相对有限,但也在一定程度上回答了开头的疑问:特定的注意力模块并不一定就是性能保证,同时文章非常吸引人的一点在于,它为业界指出了一种可能性:qsdmt面临较大模型的需求时,根据实验中 MLP 模型的表现力来看,它很有可能成为一个保证性能同时节省性能的不错替代方案。

2. MLP 有望成为新的视觉范式

MLP-Mixer: An all-MLP Architecture for Vision

通过牛津大学的文章我们了解到多层感知机(MLP)的表现能力不俗,在替换了视觉 Transformer 模型中的注意力模块之后依然能够实现优秀的分类性能,而被持续关注多时的注意力模块似乎并不能独当一面——在单独存在时作为一种新的计算范式去支撑一个高精度的模型,其本身也更多还是依托于一个好的骨干模型。谷歌大脑近期提出的 MLP-Mixer 就更进一步,让我们看到 MLP 模型完全有机会成为与传统卷积网络(CNN),Transformer 之后的下一种视觉研究范式。

自从深度学习兴起,它一直倾向于直接从原始数据中学习所需要的视觉特征,尽可能避免认为构造特征或设置归纳偏置, CNN 一直默认为此种学习思想下的一种标准,一两年前视觉的 Transformer 取得了 SOTA 的成绩,成为了另一个可选项。不同于前两者,谷歌提出的 MLP-Mixer 结构完全摒弃了卷积或是注意力机制,完全基于多层感知机结构,只依赖基础的矩阵相乘,重复地在空间特征或者通道特征上计算抽取。

MLP-Mixer 的结构如下图所示:

首先将大小为 HxW 的的输入图像切割为不重合的 S 个小方块(Patch),每个方块的分辨率均为 PxP,随之所有图像方块经过统一的线性映射变为隐藏维度是 C 的hxdgk,由此输入 MLP-Mixer 的数据就转换为一个维度 SxC 的二维矩阵表 X,X 在之后的计算流程会经过多个 Mixer 层,其包含两类 MLP 计算层:a.token-mixing MLPs 和 b.channel-mixing MLPs, X 首先通过 token-mixing MLP 计算不同方块hxdgk之间的联系,获得特征 U,之后再经过 channel-mixing MLPs 来计算通道之间的特征 Y:

在模型的最后 MLP-Mixer 也接了一个常见的全连接分类模块,来完成最终的类别预测。除此之外,MLP-Mixer 由于采用的 token-mixing MLP,导致它并不需要输入图片的位置编码信息,本身就对每个图像块的位置有了一定的敏感度,同时其采用的参数绑定(parameter tying) 也使得参数体量能够大幅度的减少。

实验部分作者采用了三个规格的模型大小分别为 base(B),large(L), huge(H), 对应的 MLP-Mixer 模型不仅在 ImageNet 与 JFT-300M 这几个大数据集上进行了 pre-train,也同时通过在中小数据集上微调(fine-tune)来进一步测试 MLP-Mixer 的迁移学习能力。与此同时与 MLP-Mixer 对比的模型均为 CNN 类别或者 Transformer 类别中实现 SOTA 性能的模型,例如 HaloNet,ViT。

通过实验结果汇总,也可以看出无论是预训练或是微调迁移,MLP-Mixer 虽然没有能达到 SOTA 的精度,但是各方面已经可以与当今的两个主流 SOTA 模型相当,同时在效率吞吐方面也存在着不错的优势。

更进一步,文章将每个输入图片方块的权重进行了可视化,可以观察的出来由粗到细、由轮廓到慢慢具象化的一个演变过程其实与 CNN 中提取视觉特征的过程也是有异曲同工之妙的。

总的来说,这篇文章提出了一个非常新颖但是有效的网络结构,涉及的方法理论并不复杂且模型结构直观,实验全面详实,是一篇非常有启发性的的 MLP 分类开山之作。尤其需要指出的是,在 MLP-Mixer 的结构描述中,对于如何设置各个 MLP 模块的顺序,以及如何进行图像映射,包括同样沿用了一个非常经典的 skip-connection 结构等方面看,是否也从某个侧面呼应了第一篇中 FF only 的部分猜想:怎样进行特征的嵌入映射,与一个合理的训练计算流程,或许才是一个高精度模型背后的支撑面。

从学术研究的角度看,MLP-Mixer 的提出启发更多学者关注到 MLP 网络结构是有潜能成为继 CNN,Transformer 之后的第三种范式的,更加先进有效的网络结构甚至微调延伸,也会不断出现并帮助完善这个研究分支。工业化部署的方面看,MLP 模型也确实为不少在性能和效率的 trade-off 之间挣扎的企业和工程师提供了新的思路,尽管目前的 MLP-Mixer 并不是精确度最优的解,但是其在效率利用甚至内存节省方面似乎看起来会比注意力机制为主的 Transformer 有更多的想象空间。

希望详细了解 MLP-Mixer 计算细节的读者可以参考我们之前的文章[7],[8]。

3. MLP 与 CNN 的结合

RepMLP: Re-parameterizing Convolutions into Fully-connected Layers for Image Recognition

清华的这篇 RepMLP 是一种 MLP 与 CNN 进行结合的新尝试,它尝试将各自网络模块的优势进行混合来实现更好的性能提升,并不限于分类,而是在多个视觉任务方面都给了我们一些全新的启发。已知全连接层通常来说更加擅长于建立特征的长依赖关系与空间关系,但是并不擅长于捕捉局部的特征或模式识别,这也一定程度上解释了 ViT 之类的模型为何需要数量更加庞大的训练集或者充分的数据扩增(data augmentation),二者都有类似难以建立局部特征的毛病。于是文章提出了 RepMLP,模型主体利用多层神经网络提取长期依赖关系与空间信息,同时利用结构化的重参数化(re-parameterization),在网络训练时候将多个卷积模块与全连接并行,用其抽取对应的局部先验知识并最后进行信息融合汇总。且 RepMLP 还巧妙地利用重参数化将推理时的参数与训练时的参数进行了再度转化,从而实现推理模型精简的目的。

RepMLP 模型总的来说并不复杂可参考其结构图如下:


推荐阅读
  • 英特尔推出第三代至强可扩展处理器及傲腾持久内存,AI性能显著提升
    英特尔在数据创新峰会上发布了第三代至强可扩展处理器和第二代傲腾持久内存,全面增强AI能力和系统性能。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • NVIDIA Titan RTX深度评测
    NVIDIA的Titan RTX被誉为当前最强大的桌面显卡之一,其卓越的性能和高昂的价格吸引了众多专业人士和技术爱好者的关注。本文将详细介绍Titan RTX的技术规格、性能表现及应用场景。 ... [详细]
  • 新手指南:在Windows 10上搭建深度学习与PyTorch开发环境
    本文详细记录了一名新手在Windows 10操作系统上搭建深度学习环境的过程,包括安装必要的软件和配置环境变量等步骤,旨在帮助同样初入该领域的读者避免常见的错误。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文探讨了亚马逊Go如何通过技术创新推动零售业的发展,以及面临的市场和隐私挑战。同时,介绍了亚马逊最新的‘刷手支付’技术及其潜在影响。 ... [详细]
  • HTML5实现逼真树叶飘落动画详解
    本文详细介绍了如何利用HTML5技术创建一个逼真的树叶飘落动画,包括HTML、CSS和JavaScript的代码实现及优化技巧。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 京东AI创新之路:周伯文解析京东AI战略的独特之处
    2018年4月15日,京东在北京举办了人工智能创新峰会,会上首次公开了京东AI的整体布局和发展方向。此次峰会不仅展示了京东在AI领域的最新成果,还标志着京东AI团队的首次集体亮相。本文将深入探讨京东AI的发展策略及其与BAT等公司的不同之处。 ... [详细]
  • 如何用GPU服务器运行Python
    如何用GPU服务器运行Python-目录前言一、服务器登录1.1下载安装putty1.2putty远程登录 1.3查看GPU、显卡常用命令1.4Linux常用命令二、 ... [详细]
  • 欢迎学习交流!!!持续更新中…文章目录页面生成过程渲染重排与重绘的比较重排(reflow)常见引起重排的属性和方法重排影响的范围尽可能减少 ... [详细]
  • TensorFlow 2.0 中的 Keras 数据归一化实践
    数据预处理是机器学习任务中的关键步骤,特别是在深度学习领域。通过将数据归一化至特定范围,可以在梯度下降过程中实现更快的收敛速度和更高的模型性能。本文探讨了如何使用 TensorFlow 2.0 和 Keras 进行有效的数据归一化。 ... [详细]
  • 本文探讨了如何使用pg-promise库在PostgreSQL中高效地批量插入多条记录,包括通过事务和单一查询两种方法。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
author-avatar
手机用户2602916141
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有