计算机视觉中的自监督学习与注意力建模

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自从深度学习提出以来,AI得到了快速的发展,每年都会有很多成果涌现,2020年也是丰收的一年,在各个AI领域都有很多里程碑的成果,在计算机视觉领域,也有很多技术上的重要突破性进展,今天给大家分享的就是其中两个重要进展,一个是计算机视觉中的自监督学习,另一个是计算机视觉的Transformer注意力建模,同时介绍讲者所在的微软亚洲研究院研究小组在这方面所做的相关工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面分三个部分来介绍具体的内容:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2020年计算机视觉研究的三大突破"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"计算机视觉中的自监督学习"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"计算机视觉的Transformer注意力建模"}]}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"2020年计算机视觉研究的三大突破"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"首先介绍2020年的计算机视觉领域有哪些突破性的进展。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/68\/68f3d22ce930aff74aa71aa44f824399.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 自监督学习"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一个突破是在自监督学习领域,2020年自监督学习首次超越了有监督预训练,这是一个里程碑。标志性的工作有何恺明等人的MoCo(参见论文《Momentum Contrast for Unsupervised Visual Representation Learning》),以及Hinton等人的SimCLR(参见论文《A Simple Framework for Contrastive Learning of Visual Representations》)。这两个工作在不到一年的时间里面已经收获了450和550个引用,对自监督学习是一个极大的促进。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. Transformer注意力建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二个重要的突破是Transformer成功应用于主流视觉问题,代表工作有DETR(参见论文《End-to-End Object Detection with Transformers》)和ViT(参见论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》),它首次将transform成功地应用于主流的视觉问题,具体来说是分别应用在目标检测和图像分类上。这两项工作对将CV和NLP统一在同一种模型下,并开辟了一个新的研究潮流。也正因为如此,2020年的下半年涌现了很多transform相关的CV方向论文。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 用于视图合成的神经辐射场"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三个重要突破是NeRF(参见论文《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》),它对于低层视觉来说是一个里程碑的进展。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"视觉中的自监督学习"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 自监督学习的重要性- Yann LeCun的蛋糕"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Yann LeCun在他图灵奖颁奖典礼演讲中有一个著名蛋糕类比,即用一块蛋糕来类比各种学习方式,其中包括强化学习、有监督学习,以及自监督学习等。Yann LeCun把强化学习比作蛋糕中的樱桃,认为它虽然耀眼,但不是根本的;又把有监督学习比作蛋糕中的冰激凌,虽然好吃但也不是根本;Yann LeCun把自监督学习比作蛋糕本身,认为它才是实现人类智能最根本的东西。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/d1\/d18510b23b597edadb1946975ea9eb90.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"自监督学习为什么这么重要?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Yann LeCun认为人类婴儿就是通过自监督学习来认识这个世界的。婴儿出生后并不能与成人做直接交流和学习,所以他的学习不是有监督学习。婴儿与环境的交互有一些,但不够充分,因此他的学习主要也不是强化学习。事实上,婴儿大部分的学习是通过观察周围环境,从观察中蕴含的自监督任务来进行学习的,也就是说自监督学习才是人类通向智能最本质的一条道路。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"关于婴儿是如何进行学习的,IBM的Linda Smith和Michael Gasser在2005年发表的《The Development of Embodied Cognition: Six Lessons from Babies》主题报告中有一些很好的阐述,有意者可以阅读参考。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. “有监督预训练+下游任务微调”范式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2012年AlexNet横空出世,在当年的ImageNet比赛中,将错误率空前地降低了约40%,从此人工智能步入深度学习时代,以后所发表的计算机视觉论文中越来越多的出现了“deep”一词,而在2014年开始“deep”一词出现的次数又有了明显的激增。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/84\/84021fb2c3ca505a407fe7fb371da7fb.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而导致激增一部分原因在于2014年在学术界验证了一个很重要的范式(另一原因可能在于开源深度学习框架开始涌现),即“有监督预训练+下游任务微调”范式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"众所周知,深度学习训练需要大量的数据,然而我们在实际的下游任务训练中并没有很多的标注样本数据,通常只有几千甚至几百个数据,但是依然能训练出效果很好的模型,原因就是我们使用了“有监督预训练+下游任务微调”这样的范式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以ImageNet为例,模型首先是在有120万标注数据的ImageNet分类数据集进行预训练,得到预训练模型,此后,下游任务则是基于预训练模型进行微调,通常的下游任务包括语义分割、目标检测、细粒度识别等等。相比不使用预训练模型,使用预训练模型的下游任务在模型性能上有很大的提升。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/9d\/9ddfbe602ac16a71e5e55b6728ef6512.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. “自监督预训练+下游任务微调”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"上面讲述了“自监督学习”和“有监督预训练+下游任务微调”,在2019年,这两件事情走到了一起,即“自监督预训练+下游任务微调”。这得益于一个里程碑的工作,就是何恺明等人提出的“MoCo”,即在2019年CVPR上发表的论文:“Momentum Contrast for Unsupervised Visual Representation Learning”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"MoCo在7个下游任务中,利用自监督预训练首次超越了有监督预训练的效果。这很可能意味着人工智能自监督或无监督时代的到来,这不但让我们可以利用几乎无限的训练数据而无需标注,更重要的是,从认知的角度看,“自监督预训练+下游任务微调”这样的训练范式也与人类的学习方式更加接近。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"4. 自监督学习的发展历程"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自监督训练是如何一步一步发展过来的呢?下面的图片中展示了过去十几年中出现的各种自监督学习方法。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/01\/012b8c8ef08dec896f588083507086b4.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"方法各种各样,值得注意的是最近的突破性进展主要发展自2014年的“Exemplar networks”,其特点是把每个样本图片都作为一个类别,例如ImageNet有120万张样本图片,那么就认为有120万个类别。这个任务其实蛮反直觉的,因为我们学习的目标通常是希望更多抽象,因此接着这个思路做的人最初并不多。终于在2018年中的“Memory bank”将这一思路推到了一个引人关注的程度,2018年底的“Deep metric transfer”证明了这一思路在半监督学习中的重要价值,以及2019年底的MoCo取得了里程碑的结果,即在多个重要下游任务中超越有监督学习。从MoCo开始,自监督学习领域开始迅速发展,2020年2月份,谷歌提出了SimCLR,2020年6月份我们研究小组提出了PIC和PixPro,Deepmind和FAIR分别提出了BYOL和SwAV。2020年11月份,我们研究小组进一步提出PixPro,将自监督学习从图像级引入到像素级,显著地提升了物体检测和分割等下游任务的效果。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f7\/f77782fe2eb85751db90308c72bb61f3.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"5. PIC:单分支无监督特征学习算法"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Memory bank 、MoCo、SimCLR等都是两分支算法,即对每个输入的图像都生成两个增强的视图,两个增强视图经过卷积网络提取其的特征,利用“将同一个图像两个视图的特征拉近,将不同图像生成的视图的特征推远的”原则,对网络进行训练。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/b6\/b6d77a50afd2e0a90bf0634c1d0bd10a.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"PIC不是两分支网络,而是一个单分支网络,即对每个输入的图像生成一个增强视图,同样使用卷积网络提取特征,但在卷积后接了一个分类器用于图像的分类。相比两分支算法,PIC更简洁,并具有同样好的效果。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"6. PixPro:像素级自监督学习算法"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"过去一年,自监督学习在ImageNet的1000类线性分类评测上的性能有着明显的提升,从MoCo到CLSA有15.6%的绝对性能提升。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/73\/73137e4f70ae094cef7239692c65a22c.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是在一些依赖稠密预测的下游任务的效果上并没有多少提升,以Pascal VOC目标检测为例,从MoCo到InfoMin只有1.7%的绝对性能提升,而PixPro相比InfoMin将Pascal VOC目标检测任务的性能提升了2.6%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1b\/1b2afb5a6f1fb1ee33b10c5a24e0f193.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"PixPro在其他下游任务中也有性能上的提升:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/88\/885ef03aed91ea7f8939ba6c620c4983.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"相比于其他的自监督训练算法,PixPro的关键思想是将基于图像的预训练任务转变为基于像素的预训练任务。在下游任务中,很多都是基于像素的任务,例如图像分割、目标检测等。如果预训练是基于像素进行的训,那么其与下游的任务将更加契合,从而有可能带来更好的表现。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/87\/879bf7a0bc8536edaf5de58908006403.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们首先提出了一个区分每个像素的预训练任务,对于一个输入的图像,我们和此前的图像级方法一样,对其进行视图增强,得到两个增强的视图图像,然后使用“拉近两个视图中相近像素的特征,推远两个视图中距离较远的像素的特征”的任务来对网络进行训练,从而将基于图像的预训练推广到基于像素的预训练。我们将这种方法称为“区分像素”的预训练任务,简称PixContrast"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/86\/86ab7c6b148a10b145199609dc5b498b.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在此基础上,我们提出了PixPro,它是对PixContrast的一个改进,具体有两点改动:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"像素平滑:视图1特征提取保持不变,视图2的特征做平滑处理,即使用周围的像素对目标像素进行平滑。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"去掉推远分支"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们称改进后的方法为PixPro,即“像素-传播的一致性”的预训练任务。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ee\/ee1eaac9e5deaed03f87efd4b544c433.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"改进前的“区分像素”训练任务主要是进行像素对比,增强模型的空间敏感性;改进后的训练任务由于加入了像素平滑,增强了模型的空间光滑性。由于下游任务像素之间是有相关性的,所以增加模型的空间光滑性可以增强下游任务的训练效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"PixPro的结构图如下:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/c4\/c46cf39f0bfd64c588c6e8c57d11cfa3.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"像素级别的自监督训练优点还在于:可以让预训练模型和下游任务训练模型采用相同的网络结构,例如可以把FPN引入到预训练模型中。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/e0\/e07d4d6969621a51c130f37c001428de.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"7. 非静态图片的自监督预训练"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"除了上诉基于静态图片的自监督预训练之外,过去一年中“基于视频的预训练”和“多模态特征预训练”也有一定进展。“基于视频的预训练”的代表性研究员和研究小组有牛津大学的Andrew Zisserman、谢伟迪,以及加州大学伯克利分校的Alexei Efros和王小龙等人。“多模态特征预训练”是将图像与声音、语言等多种输入信息相结合来进行自监督训练,这种方式与人的学习很像。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"视觉中的Transformer注意力建模"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 人工智能的大统一故事"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大统一理论是物理学的圣杯,无数人致力于将四种相互作用力统一起来。在人工智能领域也有这样一个目标,而且事实上深度学习的浪潮已经让我们在大一统上前进了很大一步,例如我们的学习机制基本已经统一:数据标注和基于误差反向传播的训练方法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/2d\/2d7fa9a43e10040e9f2d438314665fd3.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是人工智能的不同领域的主流建模方法还是不尽相同的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自从Yann LeCun提出LeNet到现在,CV领域最基础模型一直是卷积网络。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而在NLP或者序列建模领域,其模型则经历了一个变迁的过程,直到2017年Transformer提出之后才稳定下来,如今Transformer成为了NLP的主流建模方法。NLP或者序列建模领域的模型的主要变迁如下图所示:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/da\/da874293d11ba19f2a3eb767f60ee827.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而2020年Transformer在计算机视觉领域的应用改变了CV和NLP两大领域模型结构不一样的局面,对视觉和自然语言处理两大领域的模型统一起到了极大的促进作用。我们对在视觉中使用Transformer已有了多年的探索,我们探索的出发点是“自然语音处理与计算机视觉的统一建模”,这一方面是为了实现自然语音处理与计算机视觉模型数学形式上的统一,另一方面是希望两个领域将来能更好的互通和相互促进。在2020年,学术界在这个方向上已经迈了很大一步。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. CV与NLP统一建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① 卷积在NLP中的应用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在NLP领域,人们曾尝试将卷积应用在NLP领域,也切实地提出了一些不错的方法,例如2017年FAIR提出的ConvSeq2Seq、2019年FAIR提出的Dynamic Convolution以及微软亚洲研究院提出的Deformable Convolution等等都取得了一定效果,但离Transformer的性能都有些差距。特别是在GPT、BERT等预训练模型提出之后,Transformer的地位更加稳固了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/e2\/e2a939de540ed3cb2de731802e2a277e.png","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② Transformer\/注意力机制在CV中的应用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同样在CV领域,人们也在尝试使用Transformer进行建模,并且在2020年的几项工作使得Transformer在CV的应用得到了突破性的进展。首先得到广泛关注的是FAIR的“DeTR”,将Transformer整体成功应用于物体检测中,随后微软亚洲研究院提出了RelationNet++,用Transformer解码器来解决融合不同物体表达方法的问题,在10月份谷歌又提出了Vision Transformer,用Transformer来作为backbone网络进行图像分类。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/c0\/c02ddb7a02a5cb180a86fed87b6a8bb6.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面对这些工作一一进行介绍。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 将Transformer应用在CV领域的一些工作"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① DETR"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"DETR是将Transformer应用到物体检测任务上,其特点是将Transformer在NLP上的应用方法照搬到CV领域,直接对图像特征进行编解码,并且实现了端到端的训练。但是它依然使用了CNN进行了特征提取,并没有完全摆脱CNN的使用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/d4\/d430ccf46f6e7d6820e49549e17839f8.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② RelationNet++"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在RelationNet++工作中,我们使用Transformer的解码器去拟合物体检测中不同物体的表示。目前表示物体的方法有多种,例如用物体的中心点、或者anchor框,或者Bounding Box,或者物体框的对角位置等等,这些表示方法各有优点,但是我们一种物体检测模型中一般只使用一种表示方法,但是利用Transformer解码器就可以把各种表示方法统一起来,将各种表示方法的优点结合起来,这样在CoCo上单模型可以取得52.7%的mAP。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/6d\/6d768f0c53c799361f7476b2f281e29f.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ Vision Transformers"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Vision Transformers是将Transformers应用到了图像分类任务上,其实际速度和精度均超越了ResNet。它的方法是将原图分割成多个尺寸是16*16的子图,对于RGB图像,每个子图就是一个768(16*16*3)维的向量,然后将其输入到Transformers编码器中。虽然这个方法简单,但是其效果和实际运行速度都是不错的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/fb\/fbe937cb1bea453d36355e8cdeeab74a.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"4. 注意力机制在CV上的应用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在Transformers应用在CV领域之前,人们就已经将Transformers中的注意力机制应用在了CV领域上,例如FAIR在2017年提出了NLNet,我们的研究小组从2017年至2020年分别提出了RelationNet、LRF和LR-Net。也应注意到这期间出现了大量利用注意力机制来解决视觉中各种问题的工作,由于时间关系,本次演讲中涉及就少。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1e\/1e4e6c6cd453669057c22fa693f90c87.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"注意力机制用于基本视觉单元间的关系建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们在视觉的建模中都会涉及到两个层次的概念,一个是“像素”,一个是“物体”。而视觉的建模就是“像素和像素”之间或“物体和像素”之间或“物体和物体”之间的关系建模。针对“像素和像素”目前主流方法是用卷积进行关系建模,针对“物体和像素”目前主流的方法是利用RoIAlign等方法建立关系,而“物体和物体”的关系建模以前涉及较少。事实上,这些不同的关系建模其实都可以用注意力方法来代替。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/18\/18e3a32ed1130b65d86a5c9f209ecfb2.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"5. 注意力机制的物体-物体关系建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在将注意力机制引入CV领域之前,并没有考虑物体与物体之间的关系建模,引入注意力之后就可以考虑物体与物体之间的相互关系了,我们有很多工作都使用了注意力机制进行物体之间的关系建模,例如物体检测模型RelationNet [CVPR’2018]、多目标跟踪模型Spatial-Temporal Relation Network [ICCV’2019]、视频物体检测MEGA [CVPR’2020]等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f3\/f38b6f6e537819c50fc7b390570e5660.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① 物体检测器"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们首次使用注意力机制实现了端到端的物体检测,参见发表在CVPR’2018上的论文《Relation Networks for Object Detection》。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f9\/f97766f69c5f9c8bb504f426161dc3df.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"该方法的关键是使用注意力机制代替了NMS模块,这样整个过程就都可以使用反向传播进行训练,使去重模块也可以学习。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② 多目标跟踪模型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们在目标跟踪任务上也使用了注意力机制,可参见发表在ICCV’2019上的论文《Spatial-Temporal Relation Networks for Multi-Object Tracking》"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/06\/064c01255b0779177a42f75fe577d885.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ 视频物体检测"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们在CVPR’2020上发表的论文《Memory Enhanced Global-Local Aggregation for Video Object Detection》则是注意力机制在视频物体检测任务上的应用。目前效果最好的视频物体检测方法大多都使用了注意力建模。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"6. 注意力机制的物体-像素关系建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在使用注意力机制之前,基本上都是用RoIAlign等方法在feature map中截取目标物体的区域特征,在使用注意力之后,就可以自适应的去获取目标物体的区域特征。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ed\/eded3fd30bee1e8a6ecb32f965d5e5c8.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们在ECCV’2018发表的论文《Learning Region Features for Object Detection》就使用注意力机制自动学习了区域特征的提取。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/7c\/7c42ceec1d1c6cb854c680a1d8253a0e.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"7. 注意力机制的像素-像素关系建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在注意力机制之前,图像像素与像素的关系是使用卷积进行建模,在像素与像素之间关系建模引入注意力机制之后,注意力机制可以与卷积进行互补,甚至注意力机制完全代替卷积。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① 注意力机制与卷积互补"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由于卷积自身的结构特性,用卷积进行像素与像素间关系建模会有区域的局部限制,如果用注意力机制进行补充,则可以获取全局的信息。王小龙和何凯明等人在CVPR’2018提出的非局部网络(NL-Net)在卷积网络中插入一种使用注意力实现的全局模块,这样可以提升很多任务的性能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/d1\/d1617d6cd2459c435d85b9e115742c7c.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是上面的方法会出现退化现象,即不同的查询像素,其实受到了一组Key像素的影响,我们将这个研究发表在了TPAMI’2020上。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"针对非局部网络的退化问题,我们在ECCV’2020发表的《Disentangled Non-Local Neural Networks》论文中给出了一种解耦非局部网络的方法,使模型能够学到更有意义的物理关系。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/40\/4076c5d07fa0bcd717e0a40ba2313750.jpeg","alt":"图片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② 用注意力机制替换卷积"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"相比注意力机制与卷积配合,更进一步的是使用注意力机制完全代替卷积,我们在ICCV’2019发表的论文《Local Relation Networks for Visual Recognition》中提出了一种用注意力代替卷积的方法,即将ResNet中的卷积单元换成注意力单元,模型在相同FLOPs情况下取得了更高的精度。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/18\/16\/18bff3fc2fa4d9da313f5b3d63b89416.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"总结"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"计算机视觉已经开始进入自监督或无监督训练的时代"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Transformer和注意力模型:目前最有可能统一视觉和自然语言的建模方法"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"分享嘉宾:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"胡瀚 博士"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微软亚洲研究院 | 研究员"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"演讲者简介:Han Hu is currently a principal researcher in Visual Computing Group at Microsoft Research Asia (MSRA). He received the Ph.D degree in 2014 and the B.S. degree in 2008 from Tsinghua University. His Ph.D dissertation was awarded Excellent Doctoral Dissertation Award of CAAI at 2016. He was a visiting student in University of Pennsylvania from October, 2012 to April, 2013. Before he joined MSRA in Dec. 2016, he worked at Institute of Deep Learning (IDL), Baidu Research, His research interest include visual representation learning, joint visual-linguistic representation learning and object recognition. He will serve as an area chair of CVPR2021."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Homepage:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/ancientmooner.github.io\/"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"本文转载自:DataFunTalk(ID:dataFunTalk)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文链接:"},{"type":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s\/OFDO2o61zagfifjDcNQ9cg","title":"xxx","type":null},"content":[{"type":"text","text":"计算机视觉中的自监督学习与注意力建模"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章