学界与工业界的AI研究:有哪些重要不同?

2018-08-24 14:24
3

我之前在学术界,现在在工业界。现在不少学界的科学家都到公司里面做研发,通常遇到的一个问题是:在工业界从事研发和以前在学界究竟有哪些不同?很多关心研发的人会有这样的疑问。我想从自己的经历出发,谈一下我的体会,希望能提供一些借鉴。


去年,我们讲到人工智能有“三要素”:算法、算力和数据。从今年开始,我们把场景加入进来,开始用“四元分析”的方式来理解人工智能。


为什么要加入场景?去年大家对人工智能非常热情,包括学校、企业都在讨论。但是,一年过去了,大家在想人工智能到底给我们带来startup-594126_1920.jpg了什么实实在在的价值?其实,加入场景非常重要的原因是人工智能终究是一种技术,人工智能必须要落实到精准的场景,才有它实实在在的价值。

我们现在来看一下,在学术界是怎么做人工智能。因为人工智能的概念实在太大了,现在深度学习热,那我们就看下在学术界里研究深度学习,会做一些什么事情。


一般情况下,学术界是把问题设立好之后,去思考研究一些新的算法,然后在具体的问题上,力图在精度上达到极限。从深度学习上设计更好的模型结构方面,大家可以看到在过去这些年,像初的Hinton用基本的网络结构,到谷歌的GoogleNet,微软的残差网络(ResNet),到今年我们参加比赛所设计的模型,可以看到基础网络结构是推动学术界往前走的核心。但是除了基本的网络结构之外,更大的网络、更深的网络以及不同的网络模型的融合,也是大家追逐精度的常用方法。


另一方面,我们要训练这些网络,可能需要更多的计算资源,比如像图形处理器集群(GPU Cluster),比如说我们希望有更便捷的训练平台,比如说像Caffe、MxNet、Tensorflow等等。当然,更重要的是大家在一点点往前推动的同时,积累了很多小的经验,这些经验通过学术报告,通过论文的形式来分享。大家都站在巨人的肩膀上在一步一步往前走。当然,还有怎么样用其它的非标注的数据来提升解决问题的能力。所有的一切都合在一起,在解决具体问题的时候,能够把精度达到极限。


学术界很多时候研究的目的,是要有成果论文发在优质的学术杂志上,也希望这些算法能够具有普适性,除了能解决自己的问题,其他人也能借鉴,较好能开源,所有的人都可以去使用,这样就能很好的提升自己在这个领域的影响力。


刚刚说的像深度学习去解决图像识别的很多问题,大家可以看到在过去的几年,错误在一点一点的降低,这正是大家在追逐精度的极限。

但是工业界不是这样。工业界要去探索商业,注定要有经济上的考虑,思考盈利模式,那对人工智能的考虑就会不一样。


在工业界里待过就会明白,人工智能本身并不是一个产品,不是单纯靠人工智能就能获得利益,必须要通过与自己的业务和场景相结合,才能发挥它的价值,核心算法只是其中的一个模块而已。无论是往前端走,还是往后端走,还是需要很多不同类型的人,才可以做出一个产品。


重要的是,人工智能并不是一个静态的东西。比如说训练出来的模型,要用到某个业务场景里面,业务场景里产生新的数据,这些数据进一步提升人工智能模型的能力,再用到场景里面,这是一个闭环和不断迭代的过程。


另一方面,也是很多从学术界到工业界的教授和学者经常很容易犯的一个很严重的错误。就是认为技术在真正推动产品,但其实,用在具体的场景里面,技术只是起到一个非常小的作用,如果说它的贡献大概到30%到40%就不错了。


一个成功的产品,还需要产品工程师和非常多的人,大家一起才能做出一个非常的用户体验的产品出来。一个核心点就是我们做技术的人,做研究的人,要明白永远没有的算法,算法永远是有瑕疵存在的,我们一定要和场景工程师在一起,通过好的产品设计,把这些算法上的瑕疵避免掉,产生没有瑕疵的用户体验。


比如说有一个很现实的场景,人脸的检测和定位的技术之后,大家都想做一些非常有趣的增强现实的应用。早期的时候,我们特别享受技术有多么牛,比如早期产品的设计模式,会看一张图能不能把我的脸换成刘德华的脸,即使在脸动的时候,在张嘴闭嘴的时候,看起来都像刘德华。可是,很多时候如果产品的定位是这样子,技术永远都不可能做得非常好,为什么呢?人脸的场景,光照条件或者是姿态不一样,就会产生一种烧伤脸的感觉,不会产生很好的效果。但是,像我们,还有国外的一些创业公司,他们的想法就是没有必要把人脸全都换掉,只要利用人脸定位的技术,可以在脸上加一些花卉,有蝴蝶飞,这样即使人脸定位的技术还不是很,还有一些抖动的情况,产生出来的视觉效果,还是可以接受的。这是一个典型的例子,需要算法和产品相互结合才能产生没有瑕疵的用户体验。


我佩服的应该是Snapchat, 他们的技术是做算法的和做工程设计的人在一起,一个一个的效果不停地打磨。他们用的人脸的技术,像分割的技术,像SLAM(simultaneous localization and mapping, 即时定位与地图构建)技术,这些技术都不是的。在这种情况下,通过工程师的产品设计,把每一个都做的非常有意思,非常酷。


此外,除了考虑用户体验,工业界设计一个产品还会考虑其它方面。比如,当前把视觉,语音和相关的技术用在智能硬件上的时候,可能会想,到底这个产品是不是能满足某种高频的刚需?


我原来在新加坡每年写很多文章,一年写50、60篇的文章都有可能。那时候有一个很明显的特点,在写文章的时候我们会造一个场景,这个场景从用户需求来说,根本就不存在;从写文章的角度来说是有价值的,从产品的角度来说,不一定有价值。工业界还会考虑一款产品用到的技术有没有成熟?比如说家用机器人,可以端茶送水,可以聊天,这是不可能的,技术上还有一个过程。


另外,工业界还会考虑技术成熟了,但有没有壁垒?假设没有技术壁垒的话,今天做一个产品出来,比较前沿的大公司,都有专家团队,你把这个产品做出来立马又失掉了,技术上的壁垒也一定要有。


另外一方面,就是学术界想得少的:我们做一个场景,一定要有变现的模式。没有一个变现的模式,我们的产品出来了,但是今后挣不了钱,也不可能让这个公司维系下去。这些都是工业界和学术界思考的点不一样的地方。

总的来说,学界进行人工智能,深度学习的研究,一直是在追求精度和极限。用四元分析的方法来说就非常有意思,即我们的场景和数据确定了,然后设定一个问题,设定一个数据集,假设有足够多的计算机资源,怎么样设计新的算法,让精度能够达到极限?


我们知道有很多的数据集,比如ImageNet,号称人工智能的;人脸研究界有LFW(Labeled Faces in the Wild,人脸图片的数据库,用来研究不受限的人脸识别问题);在视频领域有美国组织的TRECVID;语音的话有Switchboard。他们共同特点就是:问题和数据都是确定的,用尽量多的计算机资源,去设计不同的算法,终是希望达到精度的上限。


但是我们不得不承认,这里面很多的成果是没有办法商业化的。为什么?在ImageNet上,假设训练了1000多层的网络,把9个或更多网络全部合在一起能达成一个很好的精度,在现实的场景下是不可能用这么大的模型和这么多的资源去做一件事情。所以,很多的成果,是假设将来计算能力达到一定的程度,精度能够达到这个上限。


AI研究的另外一个维度是追求用户体验的极限。用四元分析的方法,是把场景和算力固定了。这是什么意思?假设我们要做一个机器人,这个机器人希望它能识别你,这时候场景是确定的。算力确定了是说,这个场景推出的时候,用什么样的芯片和什么样的硬件,其实已经确定了。我们要做的事情是在这样一个确定场景和算力的情况下,怎么样去提升数据和算法,跟具体的应用场景去形成一个闭环,去不断地迭代,去提升它的性能。这跟学术界把场景和数据固定是不一样。在这种场景下,可以不停的用收集到的新数据不停提升和优化模型,在数据,算法和场景形成一个闭环。虽然我们能把所有的问题解决,但是在具体的场景下,也有可能逐步地提升它的性能。


这时候做的事情很有意思,要做很多数据的清洗、标注。为了把产品的价格降低,比如用一个很差的CPU就能够去做计算,肯定要不停地去优化模型的速度。另一方面,很多时候,满足这种体验的需求会有一些新的问题出来。


如果我们仔细想一想,学术界多数做的事情是在思考,在想它的极限在哪,主要用脑;工业界并不是强调用脑,而是用心——就是怎么样能把这个场景做出来,并不一定要有非常高大上的算法,就是要从用户使用产品的维度上,让用户感觉这个产品非常好。


学术界和工业界又不是割裂的:工业界敢去提某一个产品的设想,是看到了在学术界有一些前沿的成果,可以在工业界来用。同时,工业界也在逐步提炼它的问题,扔给学术界,希望他们去做这种前沿的探索。比如说工业界可以想,三年、五年以后会往哪些方向去推动,他就可以把这些任务推给学术界。


现在有很多公司,在中国和在美国纷纷建立AI实验室,其实有两种目标。一方面是长期希望能瞄准将来前沿的领域,做技术的积累;另一方面是要追求产品更好的落地,所以现在很多公司就建起了自己人工智能的实验室。


在人工智能深度学习的研究,学术界和工业界的差别还是很大的,同时也相互作用,相互增强。学术界和工业界一起合作,研究和产业相结合,一定会把人工智能带上另外一个阶段。