人工智能因为真正懂的人不多,一直被有些人夸大或神化其影响力和破坏力。不巧,今天雷锋网参加了数博会人工智能与大数据主题论坛,遇到卡耐基梅隆大学计算机科学系教授邢波为我们做了一个系统性演讲 ,把人工智能变成了一个集数据、任务、模型、算法,实现系统、设备的东西,让我们茅塞顿开。下面为雷锋网对邢波教授演讲的精华整理:
在60年代前有一个图灵测试的概念,人跟机器人通过一个界面来交流,或者通话方式的状态来交流,当人不能分清幕布后面是人还是机器,这就说机器达到了人的智能,这是非常美妙的人工智能愿景。
紧接着有几个科学家发明了一台叫做逻辑理论家的机器,在自我环境去证明数学定理,把罗素很有名的证明定理中的前52道证明出了38道,这使人们产生了期望——也许通过符号运算或者逻辑推理的方法,能够找到物质的心灵本质,使这个设备获得一种思想或者一种感情能力,以至于达到所谓的人和机器人达到不可区分的地步。
这个方法被很多科学家推广,在50-60年代有很多早期的结果令人兴奋。有人还发明可以做数学应用题的机器,包括小i机器人的鼻祖对话机器人也在那个时候产生了,能形成很有意思的人机对话。另外,理论上产生了一些突破,比如现在可以在AlphaGo里面看到的增强学习的原型。包括现在提到深度学习一些基本原理也是在那个时候出现的,叫感知器。这一系列结果,使人们对人工智能产生狂热的乐观,我们会觉得在十年之内可以预计机器在棋牌或者更广泛的范围内打破人类,有这么一个期许。
但是很快的,很不幸地人们发现这条路径不顺利,这些当时所谓的国际理论家,这些对话机只不过是玩具范畴内的东西,它们实现的功能只能在很小的领域应用 , 布置新的任务或者设置新的功能,有很多障碍是不可逾越的,其中就包含了本身的方法论,有时候他们设立的模型有障碍,本身必须的方程不能表达;还有计算的障碍,实现功能所需要的计算是一个技术性问题,当任务量增加了十倍,工作量计算量增加一百倍,这样设备跟不上。最后没有达到人类的预期,最后结果很严重,公众和政府投资或者经费的方面都产生了一些相当巨大的滑坡,这是人工智能的第一个冬天。
虽然是冬天,还是有很多坚守者在接着往前走,他们突破了一些阻力,做了一些进一步的工作。在80年代的时候有人做了一个专家系统,能帮一个公司节省每年几千万的经费,这是一个很巨大的成功。
其次,日本也有人提出做一个专门的专家系统计算机,能帮助这个公司或者政府做各种各样的决策。在更广泛跟人的功能近似的领域,比如数字,或者跟人下棋诸如此类的。
但是,这个短暂繁荣没也有很长久,很快人们发现实现这些功能的手段是一个相当耗费功能和资源的手段,比如在同一个时段,我们看到苹果机,PC机以很低的价格进入每个家庭,同样每个专家系统在公司里面需要很高的维护价格,并没有小型机低很多,然后很快地,军方,政府,用户又很快对人工智能失去兴趣,人工智能又入冬了。
所以我想,也许人工智能的路径或者目标有一些问题,也许我们重新冷静一下做人工智能是为了什么?我经常跟朋友聊天,他问我会不是哪一天造出一个打扫院子的机器人,然后陪你聊天,他们感觉人工智能是无所不能的产品或者设备,能够很灵活训练做各种各样的事情。或者能不能做一个像人的机器?
这里面有一个技术上的模糊点。人和动物的功能和作用非常多方面,在目标不明确的时候,很难对产品做设计。比如做一个鸟,本身里面就包含不确定性,做这个东西是为了像鸟,还是飞,还是给你唱歌诸如此类的。这使人工智能的学者和技术人员重新思考,做人工智能的目标是比较宽泛的定义还是基于实际功能的定义?
如果做一台机器要能飞,这跟做鸟是完全不一样的目标,要是只要可以跟鸟一样的飞,可以采用机械式用空气中的力学和燃料技术实行另外的飞行方法。产生两个不同的路径左边是仿生学或者生物科学的进步,了解生物动物的结构和原理,然后复制重现他们的功能。这里面有很多的困难,对它们的功能不了解?其实了解很清楚之后,复制方面也有困难,包括材料学等等。
而右边的方法不一样,它是把这个功能做了一个直接非常简单的数学描述,可以通过这个数学描述,对形成功能的手段和达到功能的目标之间形成一个很明显的因果关系,这样可以形成一个明显试错过程,过程中可以提供很多手段。由于这是一个工程上的方法,使得你可以利用很多不对称的资源,比如你可以去使用很大的计算能力或者很大的电力,或者其它方面的东西,这是生物本身不具备的东西。但是你可以导入到你的设备,产生非对称的优势,来实现你所需要的目标。
这一点是我们想到,也许人工智能并不见得就是重复人的功能或者神态,而是定义成对功能的一个追求,这里面就产生了看到一系列的突破,就是导向对功能尽可能快速和优化的实现。
由于这样一种思维方式,展示出人工智能研发过程中,大家可以非常简单地去遵循比较完整的研发体系,我们通常会把人工智能从数据开始定义,跟今天的大数据很有关系,在不同的区块取得不同的数据,然后对功能做一个准确的定义。比如做推荐,做图象识别,要下棋,要做赛车或者机器人。由于有了对功能追求的定义,我们可以引入一些数据方法,做一个非常直接具体的描述。
然后再往下出现很好的算法,是一个引擎,把很好的题解出来。
然后再往下出现一套计算设备,对软件的实现。
然后再往下要写一套程序,就需要程序和硬件设备一个对接,中间要有一个操作系统。
这其中形成了一个小方块,使得大工程被分成小模块做产业化或者工业化很广泛的实现。这就是我们看到现代人工智能的愿景,这里面会展现很多研发的机会和挑战。
由于有这么一种框架,也催生很多技术产生,新的理论,新的算法和新的设备,我们都能够很快地把它们引入研发过程中,来产生很好的功效。
最近人工智能有很多惊人的成果,有AlphaGo的胜利,还有机器的狗的设备,自动驾驶车也不断起来,各种各样还有人工智能的展现。
也就是说,暂时功能性的人工智能给我们带来了一个高度,使我们重新燃起对人工智能的热情,到底走多久?以及类人智能的愿景。
很多人关注产业和人工智能经济带来的机会。如果仔细来看,进来人工智能的一些显性突破的话,它并没有直接带来商业方面明显的价值。因为,现有人工智能大部分的方案比较笨重、单一、昂贵。比如谷歌所推崇的有一个图片识别系统,叫谷歌大脑,是一个很巨大的设备,在一千台计算机实现,有几十个研发人员,功能上讲投入和产出不成比例,还有话题模型,还有下围棋的设备,都是非常昂贵的设备。在真正商业化的思维里面,有效率上的不匹配,比如你想把设备的规模扩大十倍,比如把机器从一台变成一千台,所收获的能力和功能并不是得到一百倍,那90%都是在某种缺陷部分丧失了。其实有很多的机会,有很多商业的前景,没有被很好的利用起来。
另一个方面,大部分人追逐很快的结果,使得在人工智能的人员培养出现了极大的断档,很多人没法掌握这些技术,现在这些需要人有很高的技术去训练,才能做价值的开发,其实这个矛盾很大。
我们看到人工智能的商业前景,其实在现在还没有被充分的发挥出来。由此产生了一些不太乐观的后果,比如垂直行业,像网络安全,像金融医疗,像用户画像对天文学数据学的处理等,目前的状态都是处在一个比较薄弱的数据状态,数据量很大,但技术手段和分析手段没有达到科学家和用户所需要的功能。
这对人工智能提出了一些比较具体的要求,不是要造的多好玩,而是你到底如何把相应的功能和数据做提高。
到这里时,我得谈谈人工智能面临的挑战和机会。其实并不是没人关注,有很多学者关注,现在已经有很多大公司 ,有很多学校积极研发通用软件或者通用平台,都希望向公众提供低门槛,好用低价的方案。
这些各个层面的解决方法,都有一个清晰的解决脉络,把个问题解决的步骤,分成了数据,任务,模型,算法,硬件等等各个纬度,这样来分,就可以使着力点和工作重心有所集中,使产业和研发的机会能够具体的被定义出来。
就这个谈几点我个人对目前产业的机遇或者未来的一些理解看法。
有两方面的路径可以去追逐,我刚刚已经听到了,包括总理和很多政府里面的高级官员都意识到数据是一座矿山,有很多财富可以挖掘。尤其是产业的老总和企业家都看到了这样的前景,我们有很多金矿,应该想怎么使用挖掘出来?怎么使用这些金子做有用的事情?
着重讨论的一个东西,在金矿,一方面金子很有价值挖,另外造挖金子的铁锹,这也是一个产业,我目前还没有看到很大的机遇获得了关注,把这些机会展现出来,看大家有没有兴趣做进一步的探讨。
关于工具打造,其实有一个很强的结果,首先在方法上展现了很多机会,方法论解决人工智能需要什么正规途径?比如数学模型、算法、形式化等,这几步有很多机遇,目前并没有被掌握。
比如计算机视觉的一个例子,从这个任务里面来,大概十年前的时候,有一帮学界的前瞻性很强的人物创造了一个Image Net竞赛,鼓励研发人员去设计机器学习软件,去自动识别图象,很多很多的图片。
由于这个比赛,路径表现在不同的研发人员来设计不同的模型,一开始有很多很粗浅的模型,精度在2010年很低,比如在一千类的时候,可以达到75%的精度,但到了一万类的时候,精度只达到了10%几。
这个起点使人们开始思索,首先在方法论上有一个突破?这样人工智能的工具库或者手段更丰富一点。这里面包含了很多方面的突破,包括设计更强的模型,导入更深的结构,更快的算法,你可以看到现在整个增长是逐年递增的,很多研发人员在里面投了很多精力,可以在一万类的图片达到95%以上的精度,比人做得好。
在整个流程里面,方法论占据了非常大的作用,是不是有很完美的方法论提供给所有的人工智能?不是的。实际上存在一个很大的鸿沟,提几个稍微的高光点:
比如数据模型中,目前使用的模型有很多的特点,包括表达性,在自然图片上设计的模型,虚拟后还能不能继续识别图片?包括模型本身的可调性都有很多未知。
下一步我们设计算法的时候,这里面的需求和供给鸿沟就更大,其实现在大量算法的速度,精度,稳定度都非常低。
而在纯理论工作上也面临很多困难,我们对现在一些工作良好的工具,并不了解其实质理论和数学背景的实质。
由于大数据的产生,我们对于软件系统的需要和部署能力有更高的要求,譬如希望在不同平台上,能在不同的移动设备,云的设备上不同平台上跑同样的软件,目前这些问题都没有解决。
我想说的是,固然目前学习的手段已经有很多的成果,与其去摘低的果子,还不如把精力放在突破这些挑战上,这本身就有很多的机遇。
最后就是如何来实现这个方案的部署?
这个比较工程,实际上也有很多很多研发的问题在里面。通常在大公司里面,尤其在中国大公司里面看到的一个常态,很多公司非常喜欢一个自有完整的体系,把所有的部件,所有的模块都是自己来做,基本上是封闭,没有外延和接口。
它们可以雇佣很多技术师和工程师,通过内部打造来完成,成本非常高昂。谷歌是一个例子,大部分的公司有互相互补和外包的机制,使他们不用关注所有的问题。里面有内在逻辑,因为在解决部署人工智能软件或者算法的过程中,实际上有很多的规律能够使你用来充分利用,来降低你的运算成本和提高效率。比如在研究部署范式的时候,我们可以问很多方面的选择:包括用什么平台来做实现?包括问题有多大规模?包括用什么操作系统和语言?不同的处理,会找到不同的解决方案。而且能够给你展现出来,一些当时很难想象的优势,能使你在金钱或者质量上获得巨大的优势。
举个例子说一下这样的事情,讲到了分布式计算,很多公司,包括云公司,需要对大规模的客户或者企业进行对接的时候都面临一个计算任务扩增的需求。当时在FB的时候,我们要做一个社交媒体圈的定位,通常做一个研发的时候,写一个软件在一百万个用户展示这么一个功能,实际上部署的时候,是一亿用户规模,怎么迁移?
有很多很多问题,有一个幼稚的想法,这个软件在一台机器上完成的,就多买点,尽可能把机房的规模扩大。比如一百万个用户,在一台计算机6分钟算出来,买一千台是不是0.06分钟算出来。不太可能,即使几个星期也算不出来。
因为在技术上要实现定型机群的同步,里面有一个很大的瓶颈就是————怎么来实现多机器的协调?单就运转速度不一样,总有一台机器比一台机器慢一点,比如这个机器人被其它的占用了,或者温度不均衡慢了。机器的学习算法是迭代算法,跟传统的数据库不一样,这样就造成了资源的最大浪费。最后就看到了这样的一个瓶颈。
如何将AI程序并行?但这些并行机,并没有帮人工智能进行很好的服务,要么让你长期处在待机状态,或者放弃通信,使两个机器多台机器随便跑就产生了一个发散,这就使我们产生了一个质疑,也许这个平台本身,并不太适合我们机器学习的需要。
也许操作系统面临新的时刻,底层系统需要设计。
这是最近在机器学习领域的一个新的质疑,也许操作系统面临新的时刻,底层系统需要设计。因为人工智能计算,大数据计算和传统数据库的数字是不一样,传统计算里面强调的是一定要算对,如果错了,就算搭积木一样,后面再怎么努力搭,设备会垮掉没有办法维持。
但人工智能的计算方式是一个爬山的方式。
人工智能的计算方式是一个爬山的方式,到底怎么爬?用哪种路径爬?并不是那么关键。
由于某种原因,走错了,如果不是很严重,并不一定回原点,在继续往下修正。当你做这么一种认识,在支持人工智能算法的技术要求支持跟传统不一样。
传统的技术设备对于同步的要求,就像一个飞行表演队要做一个展示,每个飞机的间距都得严格控制,否则会撞击或者不美感。
人工智能是为了完成一个任务,当一对飞机去扑火的时候,是为了达到手段,而不是目的,它只要是一个知道哪里扑火,提供一个协调,让一个指挥官指挥多台机器人。
它也引用了所谓的动态调度方面,在负载情况下能够使用利用机器学习内部的结构分散开但是又不影响数学结果正确性,还有复杂均衡的方法,有些任务完成早,可以把机器让出来,让其它任务占据。机器学习和人工智能所特有的,当你意识到机会的时候,会有一个水平的提高。
解决方法是更加模块化的过程,而不是从头到尾的封闭方法,最后整合起来,一个完整的解决路径,这个包含了产业间的配合和研发之间的配合。
其实现在在人工智能的产业前景里面,看到了使用的范围已经远远的超出了数据中心的机房,可以在移动平台上部署,也可以在家用设备部署,也可以在云端部署,这些不同的硬件环境,都提出了对系统设计不同的要求。
看看这里面所需要的解决方法和现在已有的方案,看看差距在哪里?这样可以提供一个很大的产业。生产铁锹和工具本身有很大的价值需要去利用?
如何看待对于FPGA,TPU或者人工智能热潮的观点,这就是人工智能发力点在哪里?
是不是需要专业的硬件?这个问题不太容易回答。目前所看到的人工智能解决路径或者方案,大量使用的硬件,不仅包括网络,还有处理CPU,储存。
现有设备,从技术角度来看,还远远没有被充分使用,所以只要你掌握了一个算法的核心,应用到硬件上的时候,反而会有很快的结果。而且现在人工智能有很多的硬件标配,包括CPU,GPU等等。
那人到底要不要一个专业的设备呢?其实硬件的提升空间很大,比如需要设计更低功耗的CPU和GPU;核的数目在某一个设备里的话,是不是可以进一步提高;存储的功能是不是可以提高,这些都有很多的地方可以提升,但我们是不是要把这种提升的算法做成某一种专用的功能或者算法呢?
我自己持保留态度,因为我看到人工智能或者机器学习整个研发和产品的形态呈现倒三角的趋势,在这个倒三角的顶端,我们看到是数据任务或者数据模型和软件,但因为有无穷多任务和数据量,越往下走,越是希望能共享已有的解决方案。到了底端空间会越来越小,这就像在其他工业园看到的例子。飞机飞什么东西?显然不胜为举。多少种飞机,多少种引擎,可能十几个标准模型,多少种油,基本1-2种就可以了。
所以人工智能基础的价值在于通用性,这样才有最大市场占有率,然后成本才能降下来。
然后我个人认为,硬件是处在这个形态里面,至于它到底往哪个方向走?是往专业上走,还是往效率上走?如果产学能够产生充分的对话,得把这问题解决清楚。
最后多讲几句关于未来的憧憬,人工智能让人重新点燃比较浪漫的想法和愿景,但也有人担心,会不会给我们产生威胁?或者会不会影响到我们的工作机遇?
我从一个研发者的角度,分享这么一个观点,我觉得人工智能和人类(自然)智能,是较平行的两条轨道,它们功能和目的是完全不一样的,人工智能如图所示是很明确,可定量评测的功能;自然智能是比较散泛,非常宽广功能的这么一个空间,然后它的数学模型和硬件是不清晰不明朗的,不清楚的,软件算法也不清楚,所以它整个是一套比较模糊的体例。
但在人工智能都有比较清晰的定义,比如是一个单一的功能来实现,设备是电子设备,软件是靠算法来执行。这两个产生一种比较值后,有时候大家会产生一种错觉。
比如看到谷歌AlphaGo赢了人,到底应该采取什么样的态度?在我个人看从开发人工智能的软件和功能的角度,当我们开发的目的就是去实现一开始设计的目标,比如下棋,在有限的条件下,机器超过了人,就像马车超过了马,很有可能会做到这一点。
只不过机器超越本身是不是被过度解释了,以至于形成对人类自身能力的挑战,应该比较理性的来看待这个问题。因为机器的功能跟人思维,感情,自主性不是一回事,目前不必从技术上担心会受到人工智能的威胁。我觉得人工智能以后一个大的方向,在长期实践会和人产生共存关系,帮助人实现很多有用的功能,提升人的生活质量和降低人的生活风险的功能。
最后,总结一下这个方向的市场潜能。
我觉得人工智能的市场潜能相当巨大,以我很限的视野已经看到在社会政府,或者在科学、商业有诸多的应用,这里面相当主要的一个基本点,就是我们拥有大数据。
数据就是一旦增加到很大程度,机器和人的优势就会产生很大的倾斜,人赶不上机器的消化程度。所以使得数据的价格产生了不一样价值,提供更多的帮助。包括在医疗、法律、健康等很多方面,得益于人工智能对数据的挖掘。人工智能在社会的运转,或者是科学的研究,或者是商业的拓展里面进一步赢得空间,给我们带来就业或者产品功能方面的机遇。而且不必得等到像人一样聪明才能获得这样的功能,人工智能的目标本身不应该过多关注生物性或者哲学性的对比,更多应该关注功能实现和低价快速的提供。