计算机视觉,听起来似乎很遥远的一个名词。但它的应用,你一定不会陌生。比如,今天在某些城市,如果乱闯红灯,就可能被路口的摄像头捕捉到。从美颜自拍,到增强现实(AR)、虚拟现实(VR)游戏,还有用无人机在人迹罕至的地区检测高压线路,背后都有计算机视觉的参与。
在这一领域,孙剑博士是其中的佼佼者。
2009年和2016年,孙剑两获计算机视觉领域的顶级会议CVPR(IEEE Conference on Computer Vision andPattern Recognition)最佳论文。2010年,他还入选《MIT技术评论》35岁以下年轻创新者。通过设计152层的神经网络ResNets,孙剑所带领的微软亚洲研究院团队在2015年获得ImageNet和MS COCO比赛的五项第一。
在微软研究院从事研究13年之后,他在2016年7月加入旷视科技,任首席科学家、研究院院长。旷视研究院从事基础以及应用研究,聚焦于深度学习算法、架构和数据科学。最近,孙剑带领的旷视研究院团队获得了COCO和Places挑战赛2017的三项冠军。
在前不久举行的CCF-GAIR全球人工智能与机器人峰会发表题为《云、端、芯上的视觉计算》演讲后,孙剑博士接受了《知识分子》的独家专访。他用自己的研究经历说明,计算机视觉研究是如何改变我们的生活的。
计算机视觉的核心问题一直没变
《知识分子》:1993年到2003年,你一直在西安交通大学读书、做研究,那个时候的计算机视觉的研究面貌跟现在很不一样吧?
孙剑:其实研究的问题是一样的。计算机视觉研究的问题几乎没怎么变,因为核心问题就是研究怎么样去做分类检测、识别跟踪,大致就是这些问题。
西安交大的“人机所”成立已经30多年了,成立之初就叫人工智能与机器人研究所,那时有做图像的,比如有国防项目就是用摄像头看一个车,去跟踪,这样就需要做车的检测、跟踪,跟今天做的是一样的。
也有机器人项目。那个时候国有机器人还很少,我的导师郑南宁老师从日本引进了一台机器臂的设备,我们专门有一个机器人的组来研究怎么去控制这个机器人,学习里面的基本知识,操作机器人抓东西,跟今天的研究也是一样的。目前这个方向已经有很大进展,但是还不够,还需要更大的进展,因为这是更难的问题——感知问题,只是被动的看,怎么能够主动地去和世界交互,这个是更难的。看的话,很容易教计算机,给它一张照片,然后就可以学;但是交互的过程,很难有大规模的交互的例子能提供给计算机,让它理解,所以这个是最难的。
《知识分子》:那个时候,你做什么样的研究?
孙剑:人机所其实早期有很多学数学的老师和博士,最早我们做了很多机器学习的事情。机器学习基本的知识、概念,如何做机器学习,我都是在人机所学习得到的,然后把它运用在计算机视觉上。
举个例子,我自己本科毕业设计时,做了一个硬件设备——硬件电路板,来实现混沌神经网络,当然现在它不是主流。混沌神经网络能够记忆一些模式,是用硬件来实现的,因为当时的算力在CPU上是做不好的,一定要在硬件上来做这件事情。
我读硕士的时候,就是用神经网络来做人脸检测和简单的人脸识别工作。但是,其实当时的人脸识别就仅限于人脸或者是一些车牌这样的识别,能够做到一定地步。我博士做的方向是3D感知,也就是立体匹配。计算机视觉有两大核心问题:一个问题是3D重建;一个问题是识别。这样就把计算机视觉的一些基本问题学习了一下。
《知识分子》:LeCun教授1998年提出LeNet-5,用卷积神经网络,你硕士的时候的神经网络是怎样的?
孙剑:我那时候用的那些神经网络不是卷积神经网络,它可以认为是全连接网络的一些改进,做了一些分组,跟卷积有点像。卷积神经网络是我(本科)毕业以后才出现的,最早做手势识别、光学字符识别(Optical Character Recognition, OCR),大家也没觉得那个能怎么样,真的就是这样。后来,在2000年的时候出现了支持向量机(Support Vector Machine, SVM),一统江湖,所有人都在研究这个,所以关注神经网络的人就更少了。
《知识分子》:你在2009年就得过CVPR的最佳论文奖?
孙剑:对。那篇论文不是关于深度学习的,做的是计算摄影学。计算摄影学是做什么呢?比如,我们公司有一个业务叫手机智能,不是造手机,而是给手机提供核心的算法,人脸解锁是很大的一个应用,另外一个是如何让照片拍得更好看。
计算摄影学是我博士毕业后的一个研究方向,研究如何通过软件和硬件的修改,拍出更好的或者通过一般的技巧拍不到的照片。比如,今天用手机虚化背景,模拟单反照片的效果,这个就是计算摄影学——修改相机硬件,就能实现这样的新的效果,以及加了人工智能算法,使画质得到提升。
计算摄影学是计算机视觉和图形学的交叉,我做了很长时间这个工作。那个时候手机还没有这么强大,做完了以后,目的是应该放到单反相机、卡片机里面去,但是这些厂商(其实也是对的)需要做快速改动的能力和意愿不是那么强,所以并没有在相机或者单反上广泛使用,这大概是在十几年前的事情。今天,时代不一样了,相机计算力非常强,里面有很好的图像传感器,甚至在晴天下拍的照片和单反看不出区别。另外,现在的手机厂商也非常重视这个方向,如果看手机发布会的话,基本上照片拍的效果是竞争的一个亮点,所以这也是我们目前投入很大的一个方向。我们去年成立了旷视研究院的西雅图分院,专门研究计算摄影学在手机上的创新和应用。
我自己也挺感慨的,以前做研究,做完以后发一些文章,顶多Photoshop里面可能用一些这样的算法,离实际生活还是蛮远的,今天真的能够用深度学习的方法重新做一轮这样的问题,能够很快用在手机上,这个感觉,非常高兴。
卷积神经网络袭来
《知识分子》:你开始研究和使用卷积神经网络是什么时候?
孙剑:2013年,我在微软带领团队开始做卷积神经网络。2012年AlexNet出来,但刚出来的时候也没有人那么相信(它多么好),尤其是在计算机视觉领域。因为AlexNet只是针对ImageNet,大家不知道它是过拟合了ImageNet,还是在别的任务也管用。2013年的时候,特别是伯克利的RCNN(Regions with CNN features)出现,对于别的数据集的检测提高也非常大,真的具有很强的通用性,所以大家才会非常重视。
我们是在2013年开始研究,2014年第一次参加了ImageNet,物体检测拿了第二。2015年参加比赛的时候,内部就已经开发出了ResNet,ImageNet拿了三个第一名,COCO拿了两个第一名。而且COCO,只是把ResNet用上去,提升的就非常多,这是我在微软的工作。其实与此同时,旷视也是非常早,用深度学习来做人脸识别,大概也是在2013年开始的,我还没到旷视。他们当时在人脸检测、识别、关键点定位上拿了三个世界冠军,这也是他们做的非常早的一个工作。旷视是最早的用深度学习来做计算机视觉的创业公司之一。
《知识分子》:大众对人工智能、深度学习的兴趣很多是通过AlphaGo这样的事情,研究者好像一下子都涌到卷积神经网络的原因是什么?
孙剑:我觉得拥抱卷积神经网络也是花了好几年。2012年AlexNet出来时还有人怀疑,不相信,从2013年到现在也5年了,大家慢慢接受了。深度学习核心思想是,它有端到端学习的思想,尽可能不要人来设计复杂系统,因为人的设计能力是有限的。所以更多人去用这个思想来做事情。不是说这个思想是新的,而是如果这个思想有效,就会有更多的人愿意主动去用。
从图像识别来说,从ImageNet或者大规模数据学出来的特征,确实很有通用性。这个特征并不是说抽取语义特性,而是说它能够把很多东西分得开,比如说ImageNet出来的模型在医疗图像上非常好用。医疗图像数据比较少,先用ImageNet训练,以后再用少量的数据根据抽出来的特征再次做学习,可以提供很大的帮助,不然医疗图像这么少的数据,又没有好的特征,确实很难做什么事。
《知识分子》:你和合作者在2015年提出ResNet,它解决什么问题?
孙剑:训练优化问题。我们在开发之前,大概GoogleNet,VGG就是最好的网络,大概到20多层,再增加层数就不行了,训练都训练不下去;或者训练的难度非常高,说明整体的优化没有做好。
其实机器学习大概要解决三个问题,一个是说系统是否可以有能力拟合,能力是否够。比如,很简单的一个线性分离器可能无法表示像AlphaGo那么复杂的映射关系,如果加很多层这样的神经网络,能力就是够的。不过,这也只是说理论上能力够。
第二个问题要解决怎么让它拟合上去,就是训练优化问题,ResNet是解决这个问题。当然加了ResNet以后,现在可以说是任何深度层的都可以来拟合。大家常用的是几十层或者是一两百层这样的网络。
第三个问题今天还没有解决的很好,就是推广能力问题。比如,确认了网络在训练数据、测数据的时候好,如果突然来一个新的场景,能不能也做好?比如说,突然来了一个刮风下雨的天气,又有一个奇怪的车,车上掉了东西下来,这个东西还没见过,这就需要推广能力。这是在训练数据当中无法大规模收集到的,这个问题今天深度学习也好,人工智能也好,还是长期要解决的问题。这跟人不一样,人有推理、抽象,有先验,很多东西都能来帮助我们解决推广能力问题,泛化能力问题。这是下一个深度学习解决的问题。像人脸识别解决的非常好了,但是还有很多任务没有这么好。
《知识分子》:从研究方法上来说,现在是不是一个巨大的改变,都是用深度学习,卷积神经网络来做?
孙剑:对。基础都得用这个,结合具体问题的一些领域知识,领域知识用得越多越好。现在深度学习已经成为一个工具。我们刚从CVPR2018回来,如果看今年的发展的热点,深度学习已经无处不在了。有几个Talk很有意思,讲者上来就说,我的Talk不包含深度学习,没用深度学习。像以前专门有论文,题目叫深度学习XXX,今天这样的论文题目已经很少了,而是真正深入到问题的本身去研究了。
机器学习会长期产生更大的作用
《知识分子》:大家都用深度学习了,以前传统的方法会完全抛弃吗?
孙剑:没有完全抛弃,像3D的话还是不能抛弃的,3D几何的这些关系,是不能简单那样来描述的。包括图像,其实今天深度学习能做的非常好,但是实际上我们在做很多深入的视觉理解中,拟合一个函数是不够的,还有很多局限性,做不到非拟合函数的一些推理功能。比如,如果两张扑克牌叠在一起很近的话,今天的方法不一定能很好的检测出两张牌,但是人是知道这个牌是方形的,多出来一个角不正常,通过推理就能够推出,下面还有一张牌。人有很强的先验信息,才能把这个问题做好。
《知识分子》:你今天的主题讲的是“云端芯的计算机视觉”,你觉得现在云端、终端和芯片上有哪些不同的要求?
孙剑:云上不用考虑计算量和内存访问、模型大小的一些问题,或者说是有很松的边界,要追求的是精度问题。在端上,比如说在手机上,它的计算量、内存访问模式和要求的模型大小都是不一样的。今天因为设计网络结构还是人工的一个事情,所以在云上设计的模型肯定在端上不是最优的设计,所以需要在端上面设计才能得到更好的效果。
包括在芯片上也是一样,不光要调结构,而是内部的网络表示都要采取低精度化的表示,其实这也是神经网络很神奇的特性,因为我们一般来说用32位浮点数表示里面所有的信号,但它(神经网络)其实很稳健,不用32位,用几个比特也能够很好地把这个信息流给传播了。
因为我相信人真正的神经系统里面也不会用32位浮点数表示信号,所以,第一就要设计这样的算法来适合现有的硬件;第二,其实芯片是演化非常快的一个行业,设计芯片要考虑这个特性,用低精度来设计芯片,这样就能够做的非常好。我相信在很多设备上这样的芯片都会普及,以至于在云上的一些计算可以围绕这个芯片来做,今天这个发展非常快,这远远不是摩尔定律能够框起来的,大概几个月计算量翻一倍,功耗还不变或者说计算量不变,功耗降一半,这个范围非常宽。
《知识分子》:设计各种各样的网络,看起来就像是艺术,你是基于什么去设计一个算法的?
孙剑:别的科学都没有Science这个名词,而Computer Science,计算机科学加了一个Science,其实计算机科学里面大多数算法都是设计出来的,它跟物理、生物实验做出来的发现是不太一样的。我们深度学习有点像计算机科学这个方式,像排序算法是怎么设计出来的,有各种各样的排序算法,不是做实验做出来的。
另一方面,它(神经网络)跟那些纯算法还不太一样,它和数据相关,跟数据相关的话,跟平台也相关,所以核心是说,对要做的一些问题要有非常深入的理解,理解有很多细节,理解整个网络在不同的情况下会怎么样,然后从小出发,抓住小的点,把小的点做大,慢慢就可以设计好。
《知识分子》:你对微软的研究氛围体会如何?
孙剑:鼓励基础研究。深度学习中有一个梯度下降算法、反传算法,最后监督信号决定了这个系统会是什么样子的。我觉得在任何一个组织的话,你希望这个组织做什么,不做什么,就相当于一个监督信号。训练一个分类器,可以接受正样本、负样本,这个组织就会像深度学习一样,自动地去反传、监督这个信号,形成它的特色。微软研究院很鼓励基础创新,鼓励对最前沿问题长期如一日的这么做,这样才可能有新的突破诞生。
《知识分子》:在人工智能的科研和教育方面,旷视和大学、科研机构有合作吗?
孙剑:我们在南京成立了研究院,与南京大学有合作,我们和西安交大人机所、上海科技大学成立了联合实验室,和权龙老师在香港科技大学也成立了一个实验室,因为想实现互补——3D认知方面和图像识别方面是要结合在一起的。我们接下来还会找和我们相互补的,不管学校也好,或者研究机构也好,来做这样的合作。
《知识分子》:年轻人都来学AI,你有什么样的经验可以给到他们?
孙剑:如果看长远一些,机器学习会长期产生更大的作用。今天虽然说人工智能,但其实大多数是机器学习的基础知识,包括如何来用统计思考问题的方法,可能很多做事情的方式都是通过这种方式做的。学习这些,我觉得长期来看都是非常有好处的。