本文转自公众号 雷锋网
2018 全球人工智能与机器人峰会(CCF-GAIR)在深圳召开,峰会由中国计算机学会(CCF)主办。会议期间,商汤科技联合创始人、港中文-商汤联合实验室主任林达华教授分享了计算机视觉研究中的新探索。
演讲中,林达华对计算机视觉过去几年的发展进行了总结、反思与展望。他表示,深度学习开启了计算机视觉发展的黄金时代。这几年里计算机视觉取得了长足发展,但这种发展是粗放式的,是用数据和计算资源堆出来的。这种发展模式是否可以持续,值得深思。
他指出,随着计算机视觉在准确率方面触顶,行业应该寻求更多层面的发展。商汤的尝试主要有三方面:一、提高计算资源的使用效率;二、降低数据资源的标注成本;三、提高人工智能的品质。
以下是林达华的全部演讲内容,在不改变原意的基础上进行了整理与编辑:
今天非常荣幸能够在这里分享港中文-商汤联合实验室过去几年的工作。刚才几位讲者从商业角度做了精彩分享,相信大家都获益良多,我的演讲可能有点不一样。我是商汤的联合创始人,但我并没有直接介入商汤在商业领域的运作。如果大家关心的问题是商汤什么时候上市,我恐怕回答不了。
但我可以告诉大家,商汤公司不是一天建成的。它的成功靠的不只是过去三年半的努力,还有它背后这个实验室18年如一日的原创技术积累。这个实验室所做的事情,决定的不是商汤今天拿什么出去赚取利润;而是如果商汤想成为一家伟大的科技公司,未来3年、5年甚至10年应该朝哪个方向走。
人工智能发展很快,但却是粗放型发展
下面这张图想必大家都非常熟悉。
过去8年,计算机视觉可以说取得了突破性进展,其中技术上最重要的进展是引入了深度学习。这个领域有一个非常高级别的比赛——Image Net。2012年之前,这个比赛中的识别错误率比较高,2012年引入深度学习技术后,计算机视觉经历了长达4年的黄金期。这4年黄金期中,Image Net比赛中的识别错误率从20%下降到了接近3%,之后就停滞不前了,直到去年这个比赛停办。
所以我想问一个问题:深度学习确实推动计算机视觉在这几年黄金期里取得了长足和突破性的进展,但这是否意味着计算机视觉发展到今天的水平已经走到了终结?站在今天的基础上往前展望3年、5年、10年,我们未来应该朝哪个方向研究?这是我们实验室,也是商汤一直在思考的。
人工智能在过去几年取得的成功不是偶然的,也不仅仅是算法发展的结果,而是很多因素历史性地交汇在一起促成的。第一个因素是数据,我们拥有海量的数据。第二个因素是GPU的发展,促进了计算能力大幅跃升。在数据和算力的基础上,算法的进展带来了今天人工智能的成功,以及它在众多应用场景的落地。我想向大家传递的信息是,虽然我们看到人工智能的成功和算法的巨大进展,但人工智能不是一个魔术,某种意义上,它是庞大数据量和强大计算能力支撑下的性能进步。
回过头来看人工智能这几年辉煌的发展历程,我们可以看到,某种意义上这是一种非常粗放型的发展。大家都在追求正确率和性能,所有比赛榜单上,中国公司都排进了前三名。我们虽然登上了不少榜单,但行业利润基本都被制定标准的公司赚去了。这种发展模式是否可以持续?这值得我们深思。
除了准确率,还要追求效率、成本和品质
回顾过去几年深度学习或人工智能的发展,我觉得我们还有很多事情要做,有很长的路要走。
接下来和大家分享我的几个思考方向:一、学习效率,我们是否充分利用了现有的计算资源?二、如何解决数据和标注的成本问题?三、我们虽然在榜单中达到了99.9%的准确率,但这样训练出的模型是否真的能够满足我们生活或社会生产的需要?这些都是我们推动人工智能更好、更快发展和落地需要解决的问题。
下面,我首先详细谈谈第一个方面——效率。
前面提到,我们现在走的是粗放型发展路线,是靠堆积数据和计算资源来换取高性能,这是资源而不是效率的竞赛。行业发展到今天,制定标准的公司赚取了大部分利润,面对这种情况,我们未来该如何发展?要回答这个问题,首先要回顾现在的模型和技术模式,看是否还有优化的空间。优化的原理非常简单,就是把好钢用在刀刃上。
举一个例子来说明。两年前我们开始进入视频领域,视频对效率的要求非常高,因为视频的数据量非常庞大,一秒钟视频有24帧,一分钟就是1500帧,相当于一个中型数据库。用传统处理图像的方式处理视频显然不合适。
2013、2014年的时候,大部分视频分析方法都比较简单粗暴:把每一帧都拿出来跑一个卷积网络,最后把它们综合到一起进行判断。虽然说过去几年计算资源发展非常快,但是GPU的显存还是有限的,如果每一层都放到CNN里去跑,GPU显存只能容纳10帧到20帧左右,一秒钟的视频就把GPU占满了,没办法长时间对视频进行分析,这是一种非常低效的模式。
我们知道,视频相邻帧之间的重复度非常高,如果每一帧都跑一次,其实大量计算资源都被浪费了。意识到这种重复计算模式的低效后,我们对采样方法进行了改变,改用稀疏采样:无论多长的视频,都划分成等长的段落,每个段落只取一帧。这样一来就能在时间上对视频形成完整覆盖,分析出的结果自然具有较高的可靠性和准确性。凭借这个网络,我们拿到了2016年的ActivityNet冠军。现在大部分视频分析架构都已经采用了这种稀疏采样的方法。
之后,我们进一步扩展研究领域,不仅做视频理解,还做视频中的物体检测。这带来了新的挑战:之前做分类识别,我们可以分段,把每一段拿出来都可以获得一个大体上的理解;但是物体检测没办法这么做,必须把每一帧中的物体位置输出来,时间上是不能稀疏的。
下图展示了我们获得2016年ImageNet比赛视频物体检测项目冠军的网络。这个网络的做法基本是把每一帧的特征拿出来,判断它的类型是什么,对物体框的位置做出调整,然后把它串起来。这里面每一帧都需要处理,当时最厉害的GPU每秒钟只能处理几帧,需要大量的GPU才能训练出这个网络。
我们希望把这样一个技术用在实际场景,得到实时性的物体检测的框架。如果我们每一帧都是按刚才的方法处理,需要140毫秒,完全没有办法做到实时。但如果稀疏地去采,比如说每20帧采一次,中间的帧怎么办呢?
大家可能想到用插值的方法把它插出来,但是我们发现这个方法对准确度影响很大,隔10帧采一次,中间的准确度差距很大。在新提出的方法里,我们利用帧与帧之间相互的关系,通过一个代价小得多的网络模块,只需要花5毫秒,在帧与帧之间传递信息,就能很好地保持了检测精度。这样我们重新改变了做视频分析的路径之后,整体的代价就得到了大幅度的下降。这里面没有什么新鲜的东西,网络都是那些网络,只是说我们重新去规划了视频分析的计算路径,重新设计了整个框架。
大家可以看看结果。上面是7毫秒逐帧处理的,我们2016年比赛就是用的这个网络,后面我们经过改进之后,超过62帧每秒,而且它的结果更加可靠、更加平滑,因为它使用了多帧之间的关联。
商汤也在做自动驾驶,需要对驾驶过程中的场景自动地进行理解和语义分割,这也是一个非常成熟的领域。但大家一直没关注到点子上,大家关注的是分割的准确率,像素级的准确率,这是没有意义的。我们真正做自动驾驶,关心的是人在你车前时,你能以多快的速度判断出有个人在那里,然后做出紧急处理。所以在自动驾驶的场景,判断的效率、判断的速度是非常重要的。之前的方法处理一帧要100多毫秒,如果真有一个人出现在车前面,是来不及做出反应的。
利用刚才所说的方法,我们重新改造了一个模型,充分地使用了帧与帧之间的联系,我们可以把每一帧处理的效能从600毫秒降低到60毫秒,大幅度地提高了这个技术对于突发情景响应的速度。这里面其实也用到了刚才类似的方法,技术细节我就不说了。
刚才说到如何提高效率,接下来谈谈如何降低数据成本。
人工智能是先有人工才有智能,有多少人工才有多少智能。人工智能有今天的繁荣,不能忘记背后默默奉献的成千上万的数据标注人员。今天商汤有近800名标注员在日夜不断地标注数据,一些大公司的标注团队更是多达上万人,这也是一块巨大的成本。
如何降低数据标注的成本,是我们每天都在思考的事情。既然很多东西没法通过人工标注,是否可以换个思路,从数据、场景中寻找它本身就蕴含的标注信息?
下图展示了我们去年的一项研究成果,这一成果发表在CVPR上,它尝试了一种全新的学习方式。过去图片的标注成本非常高,每张图片不仅要标注,还要把目标物体框出来。比如学习识别动物,需要人工把动物标出来。我们小时候学习辨认动物的过程不是这样的,不是老师给我一个带框的图片去学习,而是通过看《动物世界》学习的。这促使我产生了一个想法:能否让模型通过看《动物世界》,把所有动物识别出来?纪录片中有字幕,如果把它跟视觉场景联系在一起,模型是否就能自动学习?为此我们设计了框架,建立起视觉与文本之间的联系,最后得出了下图中的结果。
下图是我们在没有任何标注和人工干预的情况下,靠看《动物世界》和《国家地理》杂志,能够精确识别的几十种动物。
此外,做人脸识别也需要标注大量人脸数据。其中有一些数据,比如我们的家庭相册,这些相册虽然没有标注,但却蕴含很多信息。
大家看下面这张图,这是电影《泰坦尼克号》中的一些场景。左上角这个场景,如果光看人脸很难认出这两个人是谁。再看右上角第一个场景,我们可以认出左边这个人是Rose,但右边这个穿西装的人还是看不清。如果我们能识别出电影背后的场景,就会发现Jack和Rose经常出现在同一个场景。基于这种社交互动信息,我们可以推断,那个穿黑西装的男子可能是Jack。这样一来,在不用标注人脸的情况下,我们就获取了大量有意义的数据。
我们还把这项技术用到了视频监控领域:一个人从深圳的街道这头走到那头,人脸图像经常会发生变化,但只要能追踪到他的轨迹,我们就能判断所拍摄到的人脸属于同一个人,这对训练人脸模型是非常宝贵的信息。这项成果刚刚发表在了CVPR的论文中。
最后谈谈质量。
人工智能的最终目的是为生活带来便利,提高生活质量。但最近几年人工智能的发展好像步入了误区,认为人工智能的质量和准确率挂钩。我觉得人工智能的质量是多方面、多层次的,不仅仅是准确率。
给大家看几个例子。“看图说话”是近几年特别火的领域,即向计算机展示一张图片,让它自动生成描述。下图是我们用最新方法得出的结果。
大家发现,我们向这个最好的模型展示三张不同的图片,它会说同一句话,这句话在标准测试中的得分非常高,没有任何问题。但我们把它和人类的描述放在一起后发现,人类不是这样说话的。人类描述一张图片的时候,即使面对同一张图片,不同人的表述是不一样的。也就是说,人工智能在追求识别准确度的时候忽略了其他的品质,包括语言的自然性和图片的特征。
为了解决这个问题,去年我们提出了一个新方法。它不再把内容描述看成翻译问题,而是把它当做一个概率采样问题。它承认描述的多样性,承认每个人看到同一张图片会说不同的话。我们希望把这个采样过程学习出来。关于这个模型的细节,大家可以查阅相关论文。这里只展示结果:针对同样三张图片,模型生成了三句更生动、更能描述图片特征的语句。
我们再发散延伸一下:既然AI模型能生成一句话,那么是不是也能生成一段动作?下图展示了我们的一项最新研究,很多AI公司都在做这方面的研究,让AI生成一段生动的舞蹈。下面是一些简单的动作,这些动作都是计算机自动生成的,不是我们用程序描述出来的。
最后,对前面的分享做一个总结。过去几年,人工智能和深度学习都取得了突飞猛进的发展,这种发展既体现在标准数据集上的准确率提升,也体现在商业场景的落地。但回顾这一段发展历程,我们发现,朝着准确率高歌猛进的过程中我们也遗忘了很多东西。我们的效率是否足够高?我们是否在透支数据标注的成本?我们训练出的模型是否能够满足现实生活对品质的要求?从这些角度来看,我觉得我们才刚刚起步。虽然我们实验室和世界上许多其他实验室取得了一些重要进展,但我们仍然处在起步阶段,前面还有很长的路要走。以上,希望与大家共勉,谢谢!
以下是问答环节的精彩内容:
提问:我想知道,商汤在基础研发和产品落地方面是如何进行资源分配的?
林达华:这个问题非常好。我认为这不是一个简单的分配问题,而是一个正循环的过程。我们前线的同事会接触很多具体的落地场景,从场景中发现问题。我前面提到的很多问题都是他们从落地场景中发现的,这些问题可以为学术界提供不一样的视角。前线的同事受制于产品落地的压力,无法解决这些问题,这些问题就会转移到实验室,做长期的技术探讨。探讨的结果最终又会反哺产品落地。这使得商汤的技术具有领先和超前性,我们不仅仅跟友商拼数据和计算资源,还有技术上领先的视角。这就是我们基础研究部门和前线产品部门之间的互动关系。
提问:cv厂商和传统安防厂商在技术上合作是不是一种趋势?合作模式是“AI+安防”还是“安防+AI”?
林达华:传统安防厂商提供的是集成解决方案和摄像头,过去他们不怎么涉及AI技术。而商汤是从一个实验室发展起来的,是从学术做起,然后慢慢走向落地。现在cv厂商和传统安防厂商都在朝技术落地的方向走,大家交汇在了一起。所以我认为,传统安防厂商和掌握先进AI技术的公司、实验室深度合作是一种重要趋势。
但中间也存在风险:一边是从应用端往前走,一边是从技术端往后走,大家都想占领技术上的制高点。这需要大家建立一种信任和共赢机制,只有这样合作才能长久。
提问:在深度学习大行其道的环境下,传统的机器学习方法还有没有研究的价值?
林达华:我在学术会议和公开场合演讲时经常被问到这个问题。我觉得大家不要把深度学习看成一种全世界通吃的方法,某种意义上它是一种新的研究模式。我们最终面对场景和应用时,还是要提出一套解决问题的方案。深度学习的建模能力非常强,但它也有短板。比如我们面对一个复杂问题,涉及不同设备间的交互和多个变量的建模,可能传统的概率学习、随机过程就能发挥作用。如果把它跟深度学习结合在一起,就能实现性能上的突破。
我回香港任教之前,有很长一段时间在研究统计学习和概率图模型。那时候概率图模型很郁闷,虽然它有很多数据基础,但使用基础达不到数据需求。其实它是一个非常好的模型,可以让我们对世界进行深度建模。有了深度学习后,它们可以配合使用,把一些变量的简单假设——比如高斯分布这样的假设——切换成利用深度网络构造的模型。这样一来,传统模型就会得到升级迭代,为我们的具体问题和应用提供更高效的解决方案。所以他们不是一种取代关系,而是结合的关系。近几年的很多研究都呈现出这种趋势,把传统理念和方法用深度学习进行武装,最终得到了很好的效果。
提问:近年来图像领域的深度学习遇到了一些瓶颈,而且短期来看也没有突破性的进展,您从学术角度怎么看待?
林达华:其实我整个演讲都在谈这件事。我觉得大家要把追求的面稍微扩大一些,机器学习的目标不只是数据,还有很多层面的研究值得我们探索。比如商汤过去做人脸识别只关注准确率,但后来我们发现很多问题,包括时间成本、数据标注、可靠性、模型压缩等。这些之前的研究都没有涉及,但现在成了一个非常大、非常有前景的领域。比如模型压缩,之前并没有这个需求,但我们在实际应用过程中发现原来的方法解决不了问题,才想到能不能把模型压缩一下。这些来源于现实的想法,开拓了近几年一些新的研究方向。单从准确率来看,目前确实已经到了很高的水平,再往前走的空间不大。但在具体应用中还有许多新的挑战,每一个挑战都是一个研究方向,还有很大的研究空间。