热门标签 | 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 模型总的来说并不复杂可参考其结构图如下:


推荐阅读
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 深入解析十大经典排序算法:动画演示、原理分析与代码实现
    本文深入探讨了十种经典的排序算法,不仅通过动画直观展示了每种算法的运行过程,还详细解析了其背后的原理与机制,并提供了相应的代码实现,帮助读者全面理解和掌握这些算法的核心要点。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转
    本文探讨了在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转的技术细节。通过详细分析Swscale的工作原理和实际应用,展示了如何在Android环境中高效地进行图像格式转换。此外,还介绍了FFmpeg的全平台编译过程,包括x264和fdk-aac的集成,并在Ubuntu系统中配置Nginx和Nginx-RTMP-Module以支持直播推流服务。这些技术的结合为音视频处理提供了强大的支持。 ... [详细]
  • 如何在Android应用中设计和实现专业的启动欢迎界面(Splash Screen)
    在Android应用开发中,设计与实现一个专业的启动欢迎界面(Splash Screen)至关重要。尽管Android设计指南对使用Splash Screen的态度存在争议,但一个精心设计的启动界面不仅能提升用户体验,还能增强品牌识别度。本文将探讨如何在遵循最佳实践的同时,通过技术手段实现既美观又高效的启动欢迎界面,包括加载动画、过渡效果以及性能优化等方面。 ... [详细]
  • 在Java中,一个类可以实现多个接口,但是否能够继承多个类则存在限制。本文探讨了Java中实现多继承的方法及其局限性,详细分析了通过接口、抽象类和组合等技术手段来模拟多继承的策略,并讨论了这些方法的优势和潜在问题。 ... [详细]
  • H3C防火墙自动构建安全隧道
    实验拓扑结构:两端采用静态IP地址配置。H3C防火墙能够自动构建IPSec安全隧道,确保数据传输的安全性。通过配置防火墙的非信任区域,实现自动化安全连接的建立与维护,有效提升网络防护能力。 ... [详细]
  • 在探索 Unity Shaders 的过程中,我逐渐意识到掌握 OpenGL 基础知识的重要性。本文将详细介绍 OpenGL 的核心概念和基本操作,帮助读者从零开始理解这一图形编程技术。通过实例和代码解析,我们将深入探讨如何利用 OpenGL 创建高效的图形应用。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。 ... [详细]
  • 注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 决策树在鸢尾花数据集上对不同特征组合的分类效果分析及模型性能比较
    本文探讨了决策树算法在鸢尾花数据集上的应用,分析了不同特征组合对分类效果的影响,并对模型性能进行了详细比较。决策树作为一种层次化的分类方法,通过递归地划分特征空间,形成树状结构,每个节点代表一个特征判断,最终达到分类目的。研究结果表明,不同特征组合对模型性能有显著影响,为实际应用提供了重要参考。 ... [详细]
  • 如何在Linux系统中部署TensorFlow的详细指南
    本文详细介绍了在Linux系统中部署TensorFlow的过程。作者基于北京大学曹建教授的MOOC课程进行学习,但由于课程内容较旧,环境配置方面遇到了不少挑战。经过多次尝试,最终成功解决了这些问题,并总结了一套详细的安装指南,帮助初学者快速上手TensorFlow。 ... [详细]
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社区 版权所有