文 | 白鹡鸰想用Transformer做CV
编 | 小轶想用Transformer做NLP

前言

计算机视觉、机器学习,这两个词会让你想到什么?

相信绝大多数人第一反应都是CNN,而持续关注这些领域发展的人,则会进一步联想到近几年大火的Transformer,它不仅在自然语言相关任务上表现优秀,在图像领域同样取得了相当不错的效果。去年10月份Google推出的Vision Transformer (ViT),就在图像识别任务上用更高的学习效率,达到了不亚于ResNet的精度。当一个模型性能达到SOTA之后,很自然地,人们就会想去探究它的原理,并和先前的模型进行比较。今年上半年,普林斯顿大学就从错误一致性的角度比较了ViT与ResNet,最终发现ViT更容易错判形状相似的物体,而ResNet的识别更依赖纹理信息 [1]。最近,Google则对网络本身进行了进一步的探索,试图通过追踪模型学习表征的过程,确认ViT和ResNet在处理图像的原理上是否一致

论文题目:
Do Vision Transformers See Like Convolutional Neural Networks?

论文链接:
http://arxiv.org/abs/2108.08810

方法

ResNet与ViT回顾

在开始研究区别之前,我们先快速回顾一下ResNet和ViT分别是谁,长什么样。

首先是 ResNet,深度残差网络,2015年ImageNet挑战赛冠军。通过如下图所示的残差块实现网络层上的跳跃,从而将模型的优化目标从寻找函数的等价映射改为了逼近零,弱化了网络变深对模型性能的负面影响。目前为止,基于ImageNet数据集训练的ResNet50仍然是图像处理任务中使用频率最高的预训练模型之一

▲ResNet核心部件——残差块

▲ResNet结构

ViT 则是从NLP领域红的发紫的Transformer改编而来。编码-解码的结构,中间加一个多头注意力机制。ViT主要的改变就是在输入端,将图像进行了分块和降维,从而将图像变成一种类似于词语编码的表达方式,方便了后续处理。经过了这一小步的改动,ViT在JFT-300M(ImageNet的300倍放大版,3亿张图像)上预训练的模型成功超越了ResNet152 [2]。

▲ViT结构

超越ResNet虽然有难度,但也算不上大新闻。ViT能引起讨论热度的主要原因是它跨界了,不仅制霸NLP,如今还可能给CV翻篇。这样的可能性自然是让人坐不住了,如果存在一个方法能作为不同模态不同类型任务的通解,那AI大一统时代说不定也就不远了。那么,在这一美好愿望成真之前,更需要谨慎地检验: Transformer 处理图像时获取的特征是否和之前主流的 CNN 有所区别

  • 如果它们虽然处理数据方法有所差异,但决定输出的特征是高度相似的,则意味着目前CV的模型已经接近了人类判断图像时所基于的依据

  • 而如果模型中决定性的特征有所不同,则可以进一步研究哪一种特征对信息的表征效果更好,或者两类模型还能相互借鉴,从而获得新一轮的性能提升。

比较方法——CKA

基于这样的动机,Google用Centered Kernel Alignment (CKA)对ResNet和ViT的一些关键层进行了检验。首先了解一下CKA这种方法。CKA是Google在2019年提出的,用于衡量神经网络中层与层之间相似度的指标 [3]。假设想要检测的两层网络分别有和个神经元,取个样本通过模型,则分别可以获取和的表征矩阵。基于点积的相似性,首先可以获得

此处下标F代表Frobenius范数。根据上式,可以推导出

然后根据Hilbert-Schmidt Independence Criterion (HSIC)[3]的表达式,将中的列通过核函数对应到上,使得,,可以得到HISC的经验估计值

此处是中心矩阵,即。归一化之后即为CKA指标

这个指标的优势在于,它能够确定基于不同随机初始化和不同宽度训练的神经网络的隐藏层之间的对应关系。因此,适合用于寻找ResNet和ViT中是否存在有对应的网络层。

关键结论

利用CKA,研究者发现ResNet和ViT在最接近输入的网络底层(lower layer)时,表征的内容持有较大的相似度;然而,由于两个网络处理表征的方式有很大区别,在层层传递之后,在接近输出的网络上层(higher layer)两者的表征最终区别很大。

▲在网络的底层,ViT和ResNet还有较大的相似度

两个在底层表征上有相似之处的网络,居然长着长着发展到了两个方向。因为ResNet在处理输入时,需要经过更多层才能获得类似于ViT底层的表征,由此引发了一个合理的猜想:两个网络在整合全局信息的能力上存在差异

为了验证这个想法,研究者先是对ViT的不同层中,注意力集中区域的距离进行的计算,他们发现,ViT无论是低层还是高层,都是局部和全局信息混杂的,相比之下,ResNet更为严格地遵守从局部特征提炼全局特征的处理过程。这是导致两个网络中表征的差异逐层增加的一大关键因素。

▲ResNet的有效感受域有一个明确地从局部“生长”到全局的过程,而ViT只是在感知局部和全局信息的权重上发生调整

另一方面,这种差异的原因还可能来自ViT从底层到高层的相似度比ResNet高的这一现象。研究者认为,是ViT中的跳跃连接结构 (skip connection)保护了底层到高层的表征传递,如下图所示,如果撤掉特定块区上的这种连接结构,对应的表征信息就会立刻“失传”。

由于上述在处理信息过程上的差异,最终,ViT的高层表征能够更精细地保留局部空间信息。尤其是到了最后分类的关键时刻,ResNet还进行了一次全局的平均池化,进一步显著地减少了高层中局部信息的精细度。

▲ViT的高层保留的局部空间信息更多

通过全方位的比较,包括将隐藏层揪出来细细观察。最终,研究者下定结论:虽然它们在性能上不相上下,但以ResNet为代表的CNN与ViT在处理信息的工艺原理上大相径庭

最后的话

其实文章的结论没有特别出人意料的地方,毕竟ResNet和ViT的模型结构摆在那里,前期对两个网络分别的原理分析论文也不少了,Google这次的工作其实是把大家直觉性经验性的结论用可复现的实验规范地落在了纸上,并且努力夸夸ViT,好吸引更多研究者采用。引起白鹡鸰注意的是,在整个验证过程中,ViT模型是Google的,JFT-300M数据集是Google的,CKA度量指标也是Google的,这一整套完整的测评走下来,再一次让人不得不感叹Google的科研实力果然引领潮流。

不仅如此,论文的写作也确实又一次展现了业内标杆的风度,作为一篇原理解释型的文章,它没有将一大坨公式怼到读者脸上,而是通过一系列的自问自答,合理引导读者思路历程,清晰地说明了实验的动机和每个步骤的意义,并用图像佐证观点。这简直是泥石流中的一股清流,让近期饱受各类奇葩论文的白鹡鸰流下了感动的泪水,并觉得很有写作上的借鉴价值。

萌屋作者:白鹡鸰

白鹡鸰(jí líng)是一种候鸟,天性决定了会横跨很多领域。已在上海交大栖息四年,进入了名为博士的换毛期。目前以图像语义为食,但私下也对自然语言很感兴趣,喜欢在卖萌屋轻松不失严谨的氛围里浪~~形~~飞~~翔~~

知乎ID也是白鹡鸰,欢迎造访。

作品推荐:

  1. NLP太卷,我去研究蛋白质了~

  2. 谷歌40人发表59页长文:为何真实场景中ML模型表现不好?

  3. 学术&工业界大佬联合打造:ML产品落地流程指南

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1] Are Convolutional Neural Networks or Transformers more like human vision? https://arxiv.org/abs/2105.07197

[2] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. https://arxiv.org/abs/2010.11929

[3] Similarity of Neural Network Representations Revisited. https://arxiv.org/abs/1905.00414

谷歌:一篇论文,让研究者吃我三份安利相关推荐

  1. 批训练、注意力模型及其声纹分割应用,谷歌三篇论文揭示其声纹识别技术原理

    声纹识别技术在谷歌的诸多产品中有着重要应用.除了安卓手机目前所独有的声纹解锁功能外,谷歌的家庭语音助手 Google Home 也能通过声纹识别支持多用户模式,从而针对不同用户提供个性化服务.当你向 ...

  2. 谷歌三篇论文(GFS,MapReduce,BigTable)

    Google引爆大数据时代的三篇论文 谈到Hadoop的起源,就不得不提Google的三驾马车:Google FS.MapReduce.BigTable.虽然Google没有公布这三个产品的源码,但是 ...

  3. 开启大数据时代谷歌三篇论文-Mapreduce

    摘要 MapReduce 是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现.用户首先创建一 个 Map 函数处理一个基于 key/value pair 的数据集合,输出中间的基于 ke ...

  4. 开启大数据时代谷歌三篇论文-BigTable

    1 摘要 Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服 务器上的 PB 级的数据. Google 的很多项目使用 Bigtable 存储数据, ...

  5. 谷歌三篇论文之一Google文件系统

    GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务. 1.设计概览 (1)设计思 ...

  6. 谷歌三篇重要论文读后感

    -谷歌三篇重要论文读后感 粗略看完谷歌三篇论文,<Google Mapreduce>.<Google File System>.<Google Big Table> ...

  7. Jeff Dean亲笔盘点谷歌AI 2019:日均2篇论文,纵横16大方向,一文汇集重要开源算法...

    点击上方"深度学习技术前沿",选择星标或置顶,每天给你送干货! 阅读大概需要16分钟 跟随小博主,每天进步一丢丢 又一年,Jeff Dean代表Google AI,总结过去一年AI ...

  8. 谷歌用算力爆了一篇论文,解答有关无限宽度网络的一切

    无限宽度神经网络是近来一个重要的研究课题,但要通过实证实验来探索它们的性质,必需大规模的计算能力才行.近日,谷歌大脑公布的一篇论文介绍了他们在有限和无限神经网络方面的系统性探索成果.该研究通过大规模对 ...

  9. 谷歌 AI 的2019:日均2篇论文,纵横16大方向,一文汇集重要开源算法

    点击我爱计算机视觉标星,更快获取CVML新技术 乾明 边策 十三 郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 又一年,Jeff Dean代表Google AI,总结过去一年AI大趋 ...

最新文章

  1. 原创jQuery移动设备弹出框插件——msgalert.js
  2. 的函数原型_相信我,跟着这个文章学习JS原型,你一定能看得懂
  3. 小鱼天气android,小鱼天气(cn.microsoft.cig.uair) - 1.3.14 - 应用 - 酷安
  4. Darwin Streaming Server for Windows 安装
  5. django模板过滤器
  6. oracle中把函数的执行权限赋个某个用户
  7. python项目飞机大战
  8. django+ajax+表格加载,如何使用ajax在Django-admin表格内联中读取/写入输入字段?
  9. 电视光端机常见故障问题介绍
  10. 研发团队绩效_如何在团队内部建立网络绩效文化
  11. glob,正则表达式元字符,扩展正则表达式总结
  12. android 8.0 行为变更--day03
  13. HNU 实验五 猴导师
  14. linux websocket服务安全组,在 linux 下安装并使用 websocket
  15. stm32f405rgt6芯片手册
  16. 关于Shader KeyWord的整理
  17. vc中cout如何解除fixed控制_C++ fixed用法详解
  18. php天眼查数据抓取,python用xpath采集天眼查内容,有反爬,zip拼数据
  19. Canvas绘制网格
  20. 实验二 利用Excel表格进行掷骰子模拟实验

热门文章

  1. B. Code For 1 一个类似于线段树的东西
  2. [Swift]loadNibNamed方法
  3. devexpress gridcontrol 内置导航栏,双击后才修改数据
  4. Navicat for MySQL数据库管理工具
  5. 一个简单的高并发的回应服务器(5万并发)
  6. Linux关闭防火墙详述
  7. std::string中的反向迭代器rbegin()和rend()
  8. 排序算法之选择法排序(C/C++)
  9. 一文看懂 | 内存交换机制
  10. Linux应用编程之共享内存实例