人工智能三定律
关于人工智能AI,我现在想问大家几个问题。
第一个问题:在座有多少人认为人类会因为机器灭绝?在座各位有这看法的吗?没有。
第二个问题:人类永远不会因为机器灭绝,有多少人有这种看法?好,有一个,还有吗?两个,嗯,三个,太好了,还有吗?好,发现了三个。
这是两个极端的看法。现在也有所谓的奇点理论说,到了 2045 年的时候,机器就会超过人。有多少人会认同这个看法?一二三四五,那看来这个看法的拥护者最多。现在两个极端看法的拥护者比较少,第一个看法就完全没有人拥护,所以我是少数派,我是支持第一个观点的。
面试的时候我都会问一个很经典的问题,就是你认为人类什么时候会灭绝?这个问题是没有答案的,就没有真正的答案,每一个人都可以自圆其说,你说任何一个答案都是正确的,但只要你能够自圆其说就可以。人工智能就是这么一个奇怪的领域。
虽然我相信,长远看人工智能会取代我们人类的碳基文明,但我们今天的人工智能其实还是非常弱的。工程上人工智能其实不停在碰壁和过冬,经常悲剧。我前段时间在微博上吐槽,总结了一个人工智能三定律,我这个版本的,当然其实也是抄别人的。
第一条就是 AI 是什么呢?不是 Artificial Intelligence, 是 Artificial Idiocy,人工愚蠢。这是第一条。
第二条是当我们说Artificial Intelligence 的时候,实际上我们是在说 Artificial artificial-intelligence, 就是“人工人工智能”。
第三条大家可能听说过,人工智能就是有多少人工就有多少智能。我看到好几个人吐槽,肯定是在工作中被虐过。
当我们进入人工智能每一个领域的时候,我们都发现,这不是那么回事儿嘛,这跟教科书上讲得完全不一样。当我们在实际工作、实际工程中,拿到那些数据的时候,我们各种花样被虐,数据被虐,计算能力被虐,然后人被虐,然后产品经理也会虐我们,(笑)不要告诉产品经理。
人工智能不要有门户之见
我现在主要在做知识图谱方面的工作。但是在过去近二十年里,在人工智能的几个大的流派上,我一直在进行游学。从最早的时候做神经网络,做机器学习,然后做逻辑、知识工程,再做自然语言处理,每一步都没有计划过,就进入一个新的领域。所以说学术生涯特别坎坷。
今天有好多东西是有感而发的,是基于这些年各种碰壁和吐槽,形成了一些工程化的想法。在做语义网之前我很多年里遇到过很多问题,然后反思:为什么会有这些问题? 我碰壁碰得特别特别多,这有时候也许也有些好处。
人工智能内部大家有一个鄙视链,一个学派看不起另一个学派。比如某个时候曾经做神经网络的看不起做逻辑的,做机器学习的看不起做神经网络的。不过在几个分支都有所了解的话,就不太容易这样去歧视特定的方法。风水轮流转,人工智能领域里谁没有背运的时候?比如说你在九十年代末的时候,你说“我是做神经网络的”,那基本上没有人搭理你的(笑)。然后到了 2010 年末,你说你是做逻辑的,那完全属于别人看你就是看一个珍稀保护动物的感觉,“还有这种化石级的存在吗,竟然现在还有人来做逻辑。”
即使在2011年,你要看到什么文章说 perceptron(感知器)都会惊讶于这人还在用神经网络。然后 2012 年“砰”的一下深度学习火起来了。当然我们知道2006年Hinton那篇文章就已经写了,但是真正进入工业界又花了很长时间。到2012年,知识图谱突然火起来了,国内出现一堆相关公司。我记得 2012年的时候,国内至少有十家公司在炒这个东西,但是实际上十几年之前,学术界大家已经很早在做这方面的内容。
人工智能每一个领域,每一个分支从产生出来,到它最后能够兴起,通常其实有个二三十年的周期。这对我们今天有什么启示?我们不要太狭隘。人工智能内部各种学派之间一直在不停地上啊下啊,机器学习今天是如日中天,十年之后说不定就没人理,这种情况会不停地发生。
第一次人工智能冬天
人工智能这事儿呢,当然不止我们被虐,因为过去这五十年,这个领域里面几乎所有的人都是每天被虐,然后大概每过十年有一个大的被虐周期。比如说这个连接主义学派(即神经网络),还有行为主义,行为主义就是机器人那些东西,还有统计主义,就是机器学习,对吧?这些学派都被虐过,都被人觉得是垃圾过。
整个人工智能也是。现在VC天天在喊人工智能,也有一堆奇奇怪怪的人说各种话,“人工智能要取代人类”啊,霍金也出来了,马斯克也出来了,都在说人工智能。但是,人工智能现在真的有这么牛逼吗?或者说跟某些人说的一样,就是人工智能真的不那么牛逼吗?其实每过十年或者二十年,大家都在这两个观点之间进行震荡。
1956年人工智能在Dartmouth会议上出现,这个领域就这么诞生了。那个时候大家就觉得,“哇以前从来没有想过机器能够有智能啊。”然后像明斯基、还有西蒙,在六十年代末、七十年代初的时候,他们的想法就是,十年之内我们所有的人工智能问题都会被解决掉。当时逻辑出来了,逻辑当时是最火爆的一门学科嘛。四十年代末的时候神经网络也出来了。机器学习很基础的算法其实都已经出来了,包括我们大家现在用的 SVM六十年代都已经有了,不是什么新的东西。甚至包括我们现在讲的知识图谱,其实在六十年代的时候早就有语义网络了,semantic network,实际上跟知识图谱没啥区别。所以说在五十年前,基本上现在人工智能的各个分支的一些基础的东西都有,所以当时大家就对人工智能这个事儿很乐观很乐观。
然后到了七十年代中期的时候,突然就出现问题了。比如说当时就在想五年之后咱们就能攻克语音识别的问题。事实上现在过了四十年之后才有像云知声这样的公司来攻克这样的问题。当时以为逻辑能攻克所有的问题,写了一堆文章,包括麦卡锡啊这些宗师们。然后发现建模的时候出现了各种问题。大家知道从软件到软件工程有个巨大的鸿沟,对吧?人月神话。那么从知识到知识的工程中间也有一个更大的鸿沟,那是五、六十年代没有想到的。还有神经网络,神经网络一开始觉得,哎呀,我们能够模仿神经元,我们太牛逼了。然后,明斯基 pia 得一巴掌扇过来说:“异或问题”(一类简单神经网络不能解决的分类问题)。
到了 1973 年的时候莱特希尔报告,整个领域啪唧一下就蔫了。原来这个莱特希尔太损了,他把整个领域批得体无完肤。结果搞得最后十年时间大家都拿不到资助。所以到了八十年代,偃旗息鼓,尸骨累累。你说那时候你要是读人工智能的博士生,太悲惨了——仅次于读博士后(笑)。所以到了八十年代的时候,这是第一次人工智能的冬天吗,为什么?因为大家对人工智能的期望实在是太高了,高过了它实际的承载能力。
第二次人工智能冬天
后来到了八十年代中期的时候,大概 85年左右,就开始慢慢有了转机。
原来的神经网络不能解决异或问题。然后突然有一帮人说我们可以做并行分布处理,很炫的一个名字,但其实就是提出梯度下降、误差反向传播(BP)算法,这个东西被证明是能够跟图灵机等价的。神经网络能跟图灵机等价,以前从来没有人想过这种事情,这叫通用逼近定理嘛。所以当时大家一下子对这个东西的期望又升上来了。
我读研究生时赶上了神经网络热潮的尾巴,其实美国那边已经熄掉了,但是在中国还有一点点小尾巴。然后我那些同学,桥墩设计的,模具设计的,车前盖设计的。大家每一个人都可以找我来写文章,因为只要是bp网络,你只要套,总能发出文章的,所以说现在大家看到深度学习发出各种各样的文章来,那我们要回想一下九十年代末发的那些文章。当时神经网络就复兴了。
七十年代末专家系统也复兴了,然后八十年代出现了常识知识库。比如说1985年的cyc项目,试图把整个人类的知识全部用逻辑表达出来,这个项目已经三十多年了,现在还活着,奇迹。然后当时还有 lisp ,上百个各种各样的 lisp 的小公司。
然后当然就是日本的五代计算机项目,野心勃勃啊,扔了上千亿日元在里头,当时他们就想解决语音识别问题、图像识别问题、各种现在深度学习都解决不了的问题。就是因为人们被憋了十年之后,突然又有人告诉他们说,哇,人工智能可以解决所有的问题。然后就砸钱砸钱砸钱。
结果这一次的冬天比上一次来的还要再快一点,到了九十年代初期的时候就说,不行啊,你们讲的这些东西都是胡扯。你们报告书里讲的这些东西根本实现不了,大概94年、95年的时候,整个领域就开始往下走了,就是第二次人工智能冬天。对于人工智能一些领域,这是一个很长的冬天。比如说神经网络整整被打趴下了二十年时间,简直没脸见人那种。
所以我 2001 年到了美国的时候,我满怀着信心跟我的导师说——他自己研究了十五年神经网络——我说要做神经网络,我已经做了四年神经网络了嘛。他说你再也不要做神经网络了。其实我在国内研究生最后一年时间,我们在研究一个东西,叫层次神经网络,是说什么呢,那个bp神经网络一层不是不好用嘛。我们把它叠起来,我们把很多计算任务分散开来,用多个神经网络去完成一个任务,这玩意有点接近现在的深度学习嘛。但是当时这个想法,我跟我的老师们说,他们对这个问题已经丧失信心了,不愿意再做了。因为从他们的角度来说,是非常现实的。因为当时如果你用这个题目去写项目申请书,是不可能拿到钱的。所以我在Iowa State(艾奥瓦州立大学) 做的第一个项目,是用神经网络做电力负载预测。达到了特别好的效果,比我在论文里找到的所有的效果都要好,但这篇文章发都发不出去,因为大家觉得你这个方法不行而且你这个方法没有创意。
逻辑系统也是一样。逻辑系统在专家系统破灭之后,在很长时间里喘不过气来。从1999年开始,这帮人就换马甲。人工智能领域,大家活下来,一定要牢记,学会换马甲这个技术。尤其是我们学逻辑的。(笑)我们每过五年一定要换一次马甲,从专家系统换到lisp,然后换成了语义网。从1999 年到2006 年,我们用语义网这个马甲。2006年发现不行,忽悠不了,换一个马甲,叫Linked Data——互联数据。然后到了2010年的时候,这个马甲又不好使了。然后大家各种马甲,当时没有马甲了嘛,所以有的人说自己是NoSQL,有的人说自己是大数据,还有各种奇奇怪怪的马甲。然后到了20 12年,忽如一夜春风来,全部变成了知识图谱。这两年又开始换马甲了,去年他们把semantic technology conference换了个名字,叫smart data——智能数据。这是新马甲,最新的马甲。
总的来说,为什么换马甲呢,因为这个领域实在是招人嫌。 06年的时候,我去Google,当时是去面试实习生。Google 都是一帮做机器学习的嘛,他们就会说:
“你做什么的?”
“语义网。”
“语义网是什么?”
Blahblah 解释了。
“有什么用?”
Blahblah再解释。
“不信,回去。”
所以说雅虎、微软当时都不怎么相信这个东西。Google到2010年之后才开始相信这个东西,主要是他们找了Guha之后招了一堆懂行的老前辈,终于明白了该怎么做这个事,才有了Google的知识图谱。所以这是接受起来挺难的一件事情。
全面复兴
但是在这十年当中,哪一个流派最后牛逼起来了呢?经验主义、机器学习。
机器学习牛逼起来了,为什么?大家想想看,基本上机器学习那些算法,二三十年前就有了,为什么在九十年代中期以后,这个学派兴起了?有人能给我一个答案吗?
听众:“数据”
“为什么有数据?”
听众:“因为网络“
“对了对了, 说到点上了,因为网络。”
所以,机器学习因为有了廉价的数据,在九十年代后,进入 21 世纪之后爆炸式增长。
在AI领域里面有一个所谓的钟摆理论,是Church提出来的。Church是一个语言学家,他说过在经验主义和理性主义之间,我们以二十年为周期进行波动。过去前五十年,人工智能这个钟摆都是这样在摆的,每过十年这样摆一次。有时候逻辑牛逼,有时候经验主义牛逼。但是最近十年呢,因为深度学习的异军突起,可能把经验主义的生存周期延长了。可能不止十年,这一轮十五年甚至二十年都是有可能。但是这十年呢,就是进入了 2015年、2016年了,有一个怎样的新局面?
从来没有过的一件事情:人工智能的每一个学派都牛逼,这是前所未有的。你看机器学习现在是牛逼的对吧?然后我们现在这个神经网络也牛逼起来了。然后我们逻辑、理性主义这边,以知识图谱的马甲也牛逼起来了。人工智能历史上从来没有过这样一个时代,这三个学派全部在牛逼。如果说现在人工智能正在发生一个转变的话,可以说这是一个突破,一个前所未有的转变。
人工智能的经济学
我经常在想,人工智能这些子领域,它们为什么会发生这样起起伏伏的变化?到底是什么样背后的因素导致了这种变化?刚才我问了大家一个问题,就是机器学习为什么会兴起,得到了结论:因为数据。那么我们考察一个算法吧。它能够发展起来,我们要考察它哪几点?成本。当一个科学的理论,它在实验室里的时候,我们是不需要考虑成本的,只要有论文就行了嘛,只要能拿项目就行了嘛。至于它有没有用,那是以后的事情,反正博士生毕业就毕业了,找不到工作也不是我的事,这是教授的思维。
我们工程师考虑的是什么问题?我们考虑的是成本,成本、成本、成本。如何把一个东西从实验室能够运作的算法变成一个在工程实践中能够运用的算法、能够挣钱的东西,这个中间的差距太大了,gap太多了。人工智能问题骨子里是经济学问题。
我总结至少可以有这三方面我们要注意成本。
人的成本。每一个工程师我们本身是要有成本的。深度学习为什么牛逼起来了?因为在深度学习之前,特征就是一切。我们需要各种人去写特征,去看特征,所以说在那个ImageNet上面,2012年之前大家构造各种稀奇古怪的特征。后来Hinton出来了,用机器去构造特征。然后错误率一下子从26%降到15%,一下子打趴下了其他人。但在这之前,是需要人去做特征的。统计这边,像李开复他们当年做语音识别,也是要人去构造特征嘛。后来我们用统计的方法去构造特征,把人的成本降下来了。
数据的成本。这块是很容易被人忽视的。为什么很多牛逼的事情只能够在Google做?Google 09年发表The Unreasonable Effectiveness of Data 这篇文章,大家吐槽很多。但是当时我看了眼睛一亮,从来没有人这样来说这件事情。它里面提到了各种预测问题,流感啊什么的,以前我们没想过能用数据玩这种东西,玩这种游戏。我们以前总是想,我们人去做这个模型。但是它什么模型都不需要,它那里面用各种翔实的数据来证明说什么算法都不重要,只要你有足够多的数据,最后所有的算法得到一样的结果。这是Google的思维。为什么?
如果我们考虑到现在整个数据生态系统里面,考虑它的生产力和生产关系的话,我们现在是一个奴隶制的社会。这个社会里有大量的奴隶主,Google、百度都是奴隶主,有很多很多的数据奴隶给他们提供免费的数据,求着给它提供数据,因为这整个生产关系是一个封闭的、一个人身依赖的,一个不公平的系统。所以Tim Berners-Lee天天在喊要free。数据的自由,数据的公开性。
但是到目前为止,这些奴隶主是没有革新自己的欲望的,为什么?“哇,数据是免费的。”他们有大量的数据,所以说他们可以玩各种各样的玩法。他玩的那些算法,如果我们小公司来原样拷贝的话,死的要多惨有多惨,因为我们不可能免费地拿到这些数据。包括我原来在三星的时候,三星都没有办法免费拿到这么多数据。你不管是做语音识别,还是做实体提取、图像识别,都是靠数据。
计算的成本。我们反复提到了深度学习,我们提到了深度学习把人的成本降下来了。但另一块也是说,如果没有GPU的话,现在深度学习不可能这么成功。Google的猫脸识别,一千多台机器在跑,如果没有廉价的硬件成本,怎么可能做得到?当初我的老板之所以不愿意让我去做神经网络,也就是因为以当时的硬件能力不可能支持那种泛化的能力的。哪怕回到2001年,我们有了深度学习这些算法,当时也是不可能成功的,因为没有这样硬件的支持。
所以我们要考察整个系统的全周期成本,从数据的成本,到人的成本,到计算的成本。
人机交互的意义
我们发现了一条规律,人工智能每一步往前走的时候,核心的突破通常不是由算法本身带来的,而是由于人机交互带来的。
这是为什么?你想,机器它本身有没有智能?在座多少人相信机器本身是有智能的?真正的智能,到目前为止,到2016年此刻为止还都是只能来自于人,人才有智能,机器只能转移智能。所以能够让一个系统拥有智能的最重要的方式是如何去采集人的智能,如何去转移人的智能,如何去提炼人的智能。那么对这种把人的智能转移到机器里,把它数字化,最重要的技术就是人机交互技术。
所以说,如果没有鼠标的话就不会有图形用户界面,如果没有图形用户界面就不会有web,如果没有web就不会有统计机器学习的兴起。这是一环一环扣下来的。
我们现在的知识图谱跟十年前我们当年做逻辑的时候有什么区别?我们当时要去写的时候是要用逻辑表达式去写。那个东西的效率你说得有多低?各种各样的错误完全没有办法发现,那么后来我们有了各种各样的编辑器。我们想到了,我们不需要直接去写逻辑,我们可以去写自然语言的东西。我们有了 Wikipedia,然后从Wikipedia上面我们有了一些半结构的数据,我们有了DBPedia。这是一种方式。另外我们有了各种知识编辑器。Google 当年买的Freebase,他们之所以能够把Freebase做好,关键他们有一套很好的编辑器,有一套很好的 HCI 的工具。包括后来他们开源的 OpenRefine,就是这样一个工具。
所以说,人工智能能够往前走,我们不光要看算法,我们更多的要考虑,去构造系统的全周期里面。最重要的是智能的来源是人,我们怎么能够把人的知识更好地采集起,这才是人工智能产生突破的一个核心点。降低人的成本,机器的成本,还有计算的成本。
小结
说了这么多,我觉得这些事情挺重要的。我们做任何一个人工智能的分支领域研究时要去想一下,这个事情为什么我们现在在做,它为什么在这个点上成本就降下来了,以及它以后会怎么样。比如说我们想像一下十年之后深度学习会怎么样?当然很少有人能够看这么远了。比如说2000年的时候,语义网这个领域刚刚开始,大家很乐观地设想到了2010年我们能实现语义网。后来发现可能到2030年才能实现。那么到了2010年我们实现什么,比如说基础数据,到了2020年实现数据互联等等,就一步一步往上走。每一步都是随着当前的生产力水平,我们才能够做一定的适应。
对人工智能,最好抱一个平常心。人工智能不是万能的,现在我们做的还只是一些“人工人工智能”,离取代人类还早着呢。过高的预期,hype,已经造成了两次人工智能的冬天。这两年又有些过热,不冷静,这对这个领域发展并不好,会导致很多急功近利的事,甚至欺骗的行为。过高的预期也必然导致不当的失望,结果不但少数炒作的人,整个领域一些踏踏实实做事的人也会受到伤害。这些碰壁和冬天,我们做人工智能的人要多想想,也要多向领域外的人解释和宣传。保持平常心。
发表回复