【新智元导读】在谷歌研究院工作是一种怎样的体验?新智元近日专访了谷歌研究员朱梦龙,他作为谷歌团队G-RMI的核心成员,从去年9月开始一直盘踞在COCO的物体检测榜首。此外,他作为团队核心成员发布的最新研究MobileNet,通过分解降维卷积层,以及早期采用stride 2等,把计算量压缩至VGG的1/30,让终端模型的图像检测达到VGG的效果。谈到在谷歌研究院的体验,他认为就像在读PhD,跟一群天才(包括曾经在谷歌的贾扬清)一起讨论有趣的想法,以及做有意思的项目;不同的是,这些项目还能在现实中被广泛应用。
粽情 AI,新智元祝读者端午安康!
在这一中国传统节日,新智元为大家带来对身在海外的华人 AI 新星学者朱梦龙的专访。
朱梦龙(来自其个人主页)
在加入谷歌前,朱梦龙在宾夕法尼亚大学获得计算机信息科学博士学位,师从Kostas Daniilidis。 他本科就读于复旦大学,于2010年获得学士学位。目前在谷歌主要研究计算视觉和深度学习。
谷歌研究院近日发布的用于终端设备的计算机视觉模型MobileNet引起了广泛的关注,新智元联系到了研究背后的华人作者朱梦龙,请他来为大家解读这一“要将深度学习带到终端设备”的技术。
具体说来,该研究的方向是物体检测,朱梦龙所在的G-RMI团队最近在尝试的一种方法是“通过改变速度/内存条件搭配FasterRCNN,R-FCN,SSD等算法而得到新的不同精确度的模型”。MobileNet是其中一种,在极端条件下(当速度和内存要求特别高的情况下)同时能够以实时速度并且获得的相对较高精确度的模型(特征提取器),该模型特别适合在移动终端中,比如在现有的手机平台上,达到实时的效果。移动端的物体检测,准确性的重要性毋庸置疑,因而,他们提供了一种在COCO物体检测中达到超高水平的检测器。
值得一提的是,这一工作自从2016年9月18日一直高居COCO物体检测排行榜第一名!
COCO是2015年被提出的,它的训练、验证和测试集,共包含超过20万张图像和80个对象类别。所有对象实例都使用详细的分割掩码(segmentation mask)进行标注。其中训练和验证集的注释(具有超过500,000个对象实例分割)是公开的。COCO 物体检测挑战赛鼓励团队在两种对象检测挑战(或两者)中竞争:使用边界框输出或对象分割输出。
谷歌的团队对一些影响物体检测的速度和精确度的主要因素进行了实验性的比较。希望帮助研究者选择适合的方法以部署物体识别应用。他们还总结了一些新的技术,能够在不牺牲太多精确度的前提下提升速度。
准确度/时间,不同颜色和性质代表不同的特征提取器,每一对(元架构,特征提取器)根据不同的输入大小和stride等不同映射到以上散点图
居COCO物体检测榜首至今无人破,集成5个Faster RCNN是制胜武器
从2016年9月18日开始,朱梦龙所在的谷歌G-RMI团队一直占据COCO物体检测的榜首。
根据COCO网站上的资料,朱梦龙所在的G-RMI团队集成了5个Faster R-CNN的模型,由纯Tensorflow接口与可微分的ROI剪裁进行端对端的训练,使用了Inception-Resnet和(stride 8)Resnet-101的组合做特征提取器的基础。所有模型都基于train+val (minus minival)训练,并且,他们在测试时使用了多剪裁推理。
Jonathan Huang, Chen Sun, Vivek Rathod, Anoop Korattikara, Alireza Fathi, Kevin Murphy, Zbigniew Wojna, Ian Fischer, Menglong Zhu, Yang Song, Sergio Guadarrama | Ensemble of five Faster RCNN based models jointly trained end-to-end using a pure Tensorflow implementation with differentiable ROI cropping. We use a combination of Inception-Resnet and (stride 8) Resnet-101 base feature extractors. All models are trained on train+val (minus minival) and we use multi-crop inference at test time. |
---|
COCO物体检测榜首团队G-RMI成员和方法介绍
这一成果的论文《Speed/accuracy trade-offs for modern convolutional objectdetectors》已于四月发布在arxiv,同时即将在今年的CVPR发表。
论文摘要中说:“本文的目标是用于指导选择一个物体检测架构,为给定的应用程序和平台实现取得的速度/内存/精度一个恰当的平衡。为此,我们研究了在现代卷积物体检测系统中,用速度和内存换取精确度的各种方法。近年来有许多成功的系统,但是由于不同的基本特征提取器(例如,VGG,残差网络),不同的默认图像分辨率以及不同的硬件和软件平台,逐一对比这些系统将非常困难。我们提出了一种Faster R-CNN,R-FCN和SSD 的结合实现,我们将其视为“元架构”,然后通过使用各种特征提取器,在每个“元架构”改变其它的关键参数,例如图像大小,从而描绘了速度/精确度的权衡曲线。当速度和内存要求特别高的情况下,我们提供了一个检测器可达到实时速度并且可以部署到移动设备上。在准确性特别重要的情况下,我们提供了一种在COCO物体检测中达到超高水平的检测器。”
值得注意的是,目前排在第二名的微软亚洲研究院用的并不是目前COCO上主流的R-CNN系模型,而是R-FCN,这两种模型在COCO和PASCAL VOC上的表现都不错。榜上25个团队有11个用Faster RCNN,3个团队用到R-FCN,同时我们从最前面的速度/时间散点图看到,总的来说Faster RCNN比R-FCN的准确度似乎更高一筹。
朱梦龙他们在论文写道:对于Faster R-CNN,较少使用建议(proposals)可以显著加快速度,而不会造成严重的准确性损失,从而使其比SSD和RFCN具有竞争力。SSD的性能对于特征提取器的质量不如FasterR-CNN和R-FCN那么敏感。我们在这一精确度/速度平衡曲线上标记了不错的点,这些点只能通过牺牲速度才能提高其精确度。
从数字上来看,机器检测物体离人类水平还是有些差距,朱梦龙表示:“COCO有很多特别小的物体,所以还是很有挑战,但是在PASCAL VOC最好的上准确率已经超过80%,已经非常好。”
MobileNet最新解读:分解降维卷积层,模型计算量可压缩至1/30
正如上面的论文摘要中提到的:“当速度和内存要求特别高的情况下,我们提供了一个检测器可达到实时速度并且可以部署到移动设备上。”这个检测器其实就是MobileNet,新智元也曾经报道过这一论文,这是谷歌团队提出的一种高效模型,用于移动和嵌入式设备的视觉应用,使得在同样的效果下,计算量可以压缩至1/30。
提到在移动端做视觉模型的挑战,朱梦龙说: “移动端除了手机也包括各种智能化的设备。在这些设备上的主要挑战,除了直接能想到的存储空间和硬件本身计算速度限制之外,还要考虑到计算能耗以及散热的限制。为了保证设备不过热很多移动端芯片的CPU会设有throttle保护(节能保护),在进行大量密集计算之后如果芯片温度升高到一定程度,就会限制计算的频率,防止设备过热。同时在应用层面也要考虑到其他共存的计算任务,比如说在做图像识别任务的过程中,除了识别算法本身,手机拍照成像也需要占用一部分的计算资源。总的来说最主要的技术挑战在于如何在这些限制之下,以最少的模型参数和计算量,保持较高的准确性。”
MobileNet基于一个流线型的架构,该架构使用depthwise separable convolution 来构建轻量级的深度神经网络。他们引入了两个简单的全局超参数,有效权衡延迟和准确度。这些超参数能让模型搭建者根据问题的限制为其应用选择适当规模的模型。
朱梦龙介绍:“MobileNet一个很大的亮点是对depthwise卷积的大规模使用。将一个二维的depthwise卷积和1x1的映射卷积组合起来可以很好的逼近普通的三维卷积。对于常用的3x3三维卷积来说,利用depthwise和1x1映射来取代可以将计算量压缩8-9倍,所用到的参数量也大大减少,但仍然保持相类似的精确度。这样的想法来自于矩阵分解,一般如果一个矩阵是low rank(低秩)的话,可以有很多办法将其分解成为两个或者多个矩阵。另外一个启发是大部分的计算会产生于早期的卷积层,所以MobileNet较早的采用stride2而大大减少了计算量。MobileNet在ImageNet分类的任务上能达到类似VGG的效果,但是参数和计算量都少了都超过一个数量级(约1/30)。”
在资源和准确率的不同权衡条件下,他们进行了广泛的实验,与ImageNet分类任务的其他流行模型相比,MobileNet显示出很好的性能,同时也证明了MobileNet在一系列应用和使用情况中的有效性,包括对象检测,细粒度识别,人脸属性提取,以及大规模地理定位。
朱梦龙说:“MobileNet所用的其中一个压缩模型的方法是线性减少每个卷积层的kernel数量,我们称之为width multiplier。通过调整width multiplier可以改变模型的复杂度,相对的准确率会有类似线性的下降,这个手段给实际应用提供的一个很好的trade-off曲线。”
理想是混合终端和云端的方式,未来可以在终端训练模型
MobileNet不仅仅是一项研究,跟云端模型相比,它有一些特殊的应用场景。从朱梦龙的个人看来,MobileNet在手机和其他智能设备包括机器人和自动车上都可以有很多应用场景,比如实时的物体检测和分类识别,人脸,体态姿势的识别都是可能的应用方向。
与云端模型相比MobileNet在及时性,交互性,保护个人隐私的角度更有优势。比如在机器人或无人机上,需要实时的视觉识别,在本地高效运行的MobileNet就更加实际。此外,未来AR应用中实时检测会有更强的交互性,在信号不好的时候,比如在野外徒步的时候希望了解遇到的一些花草或者野生动物的种类信息,这时候就应使用终端模型。
目前MobileNet是服务器上训练,未来甚至会考虑直接在终端训练,可以参考也是谷歌研究院的成果:联合学习方法(Federated Learning): https://research.googleblog.com/2017/04/federated-learning-collaborative.html
朱梦龙也认为,本地终端模型也有它的限制,他说:“比较理想的模式是一个混合终端和云端的方式,一部分的计算在本地进行,其他的对延时要求较低的任务就交给云端处理。”
在谷歌研究院工作是一种怎样的体验?
回到做出这些成绩的谷歌研究院,这个机构会让我们想到关于极客、梦想、天才等关键词。能够进入谷歌研究院想必也是不少人的dreamjob,特别是做AI技术的人。朱梦龙跟新智元分享了他是如何选择并进入谷歌研究院的“简单过程”:“…我在进入谷歌之前在宾夕法尼亚大学读的PhD,做的是计算机视觉方面的研究,也和谷歌的一些研究员有学术交流,而且也一直关注谷歌的研究成果。毕业的时候,我比较想除了研究之外做一些实际的产品,谷歌基本上是最好的选择了。外加个人也有些谷歌情节吧,毕竟每天用谷歌的产品:搜索,地图,安卓,youtube和chrome等等,后来就面试来了谷歌研究院里继续相关研发。”
关于在谷歌研究院工作是一种怎样的体验?
朱梦龙表示:“谷歌研究院整体的氛围挺像在大学读PhD的时候的感受,大家很愿意分享idea一起讨论合作,有特别多有意思的想法和项目。不同的是,谷歌里的很多研究成果很多都是有望或者已经能够应用于实际产品之中,直接给全世界用户带来更好的的产品和服务。谷歌的同事都特别厉害,很多都是非常知名的研究员。在谷歌研究院的这些时间下来我跟很多人都有非常愉快的合作(其中也包括caffe的founder贾扬清,在他去Facebook之前也很有幸跟他有不少交流合作),也学到了特别多的东西。”
接下来,朱梦龙除了计划把MobileNet做得更好之外,他目前精力主要集中在物体检测上,例如文中最开始提到的COCO物体检测挑战中,他们在第一名的位置很久了,他表示会在近期开源他们Tensorflow的物体检测系统的源代码。
朱梦龙对不少最新的、有意思的技术很感兴趣,比如说GAN,深度强化学习等。总体来说深度学习给计算机视觉带来很多新的机会和探索的空间,他期待能做出跟多又好又实用的研究。详情会发布在谷歌博客,新智元也会第一时间给您报道。