(简译)机器学习猿 vs 知识工程狮

在Menlo Park吃早餐时买了一本书“The Master Algorithm”,也才看了两章,非常的有趣。科普如何设计一个Master Algorithm来解决各种Machine Learning算法解决的问题。第二章讲不同领域如何认识The Master Algorithm,其中有两段非常有意思。一个是今天想简单翻译的“机器学习猿 vs 知识工程狮”,另一个是改天准备带给大家的“Swan bites robot”。

  • 前言

有很多人认为The Master Algorithm是不可能实现的,其中很大一股阻力来自于知识工程狮(knowledge engineer)。他们认为很多知识是不能被自动学习出来的,必须由工程狮写出计算机能理解的程序。当然,学习猿(learner)可以从数据中提取出一些东西,但那不是真正的知识。对于知识工程狮,数据并不是新的成品油,只是新的未加工油(big data is not the new oil, it’s the new snake oil)。

AI初期,Turing等人认为机器学习是唯一有可能实现人工智能的办法。但很快,知识工程狮反击了,70年代机器学习几乎被人遗忘,80年代公司和国家大量投资知识工程,使其快要占据整个世界。但随之而来的是更多的失望,机器学习开始复苏,起初是悄悄地,后来随着大数据崛起。

大部分知识工程狮还没有被机器学习说服,他们认为机器学习很快就会遇到瓶颈,幸运的指针很快会指向他们。Marvin Minsky,一位MIT的教授以及AI的先驱,就这么认为。他不但怀疑机器学习的思想,并且怀疑一切想同意统一AI理论的想法。他的理论在他的书“The Society of Mind”里被概括为“智能是一个又一个该死的主意”,并且列出了数百个想法,每一个都有自己的小插曲。这一种试图建造AI的想法并不可行,这就好像让计算机来集邮,但是一个智能系统需要知道的想法有无数种!如果一个机器有很多人的能力但是不会学习,那么很快就会成为时代的眼泪。

Minsky是Cyc计划(一个AI史上臭名昭著的失败计划)的热心支持者。这个计划是通过将所有必须的知识输入电脑中来实现一个AI。80年,计划开始时,Cyc的领导Doug Lenat很有信心的预测这个计划将在10年内完成,然而30年过去了,Cyc还没有看到结束的希望,那些常识性的知识还在推导。具有讽刺意味的是,Lenat后来想让Cyc挖掘互联网上的知识,并不是因为Cyc能够阅读,而是因为他们找不到其他的方法了。

哪怕真的有一天,我们能够将所有的知识编写为程序,我们的问题也才刚刚开始。各个研究机构实现了很多理解视觉,语音,语言,推理,计划,导航,操作等等的算法。但是没有一个统一的框架,这些东西的复杂度变得非常之大,代码被移来移去,相互关联互相调用,无数的漏洞根本没有办法调试。从知识工程狮的角度,人工智能貌似只是一个工程问题,只是我们的能力尚无法解决。一个有趣的比喻,1962年,Kennedy在登月计划中讲,登陆月球只是工程问题。然而在1662年时,登录月球并不是工程问题,这就好像今天用知识工程(knowledge engineering)来实现人工智能一样。

在工业界,除去少数特殊情况,没有任何迹象表明知识工程能够和机器学习相抗衡。当你有足够数据能够进行研究时,为什么要付大量资金给专家来将知识编写为代码?当你没有足够数据时,进行知识工程的花费很少能超过受益。但是想象一下,当农民一个个去种植玉米而不是将大量的种子洒向田地让其生长时,我们都会饿死。

另一些对机器学习的怀疑来自于语言学家Noam Chomsky。他认为语言的学习是先天的,因为一个孩子从小听到的语法并不足够让他学习所有的语法(poverty of the stimulus理论)。这种想法给语言学习的进化上带来了一些负担,这与Master Algorithm的想法并不矛盾,只是他不认为机器学习能像大脑一样。如果有一种统一的语法存在,阐明它将对实现Master Algorithm帮助巨大。当然,除非它和其他的认知能力没有任何想通的地方,不过这是不可能的。

人们很早就知道Chomsky的poverty of the stimulus理论是错误的。1969年时,J.J. Horning证明了我们可以从正相关的例子中学到一套probabilistic context-free grammar。语言的学习并不是凭空产生的,小孩能够通过他们的父母和周围的世界来学习语言,因为语言的结构与周围世界的结构有着千丝万缕的联系。而这些相同的结构正是语言学习中寻找的。

另外,Chomsky批判各种统计学习。他有一套统计学习无法完成的任务列表,但是这个列表已经过期50年那么多了。他似乎将机器学习和行为主义(Behaviorism)画等号,但现实的机器学习早已不在是建立行为和奖励的连接,它能学出很多丰富的中间知识。

最后,统计语言学习(Statistical language learning)完全将人工语言系统(hand-engineer language system)打败。70年代,DARPA举办了一个大规模语音识别比赛。让所有人吃惊的是,一个简单的sequential learner轻易的打败了一个成熟的依靠人工知识的系统。这样的learners现在被用到每一个语音识别系统中。Fred Jelinek,IBM语音识别组的老大甚至开玩笑说“每当我开除一个语言学家,语音识别的效果就会更好一点”。80年代,计算语言学几乎在知识工程的泥澡里死亡。在那之后,机器学习完全改变了NLP领域,几乎没有一个NLP的会议会避开机器学习。基于统计的语言分析准确率能和人类媲美,machine translation,spelling correction,part-of-speech tagging,word sense disambiguation,question answering,dialogue,summarization,这些领域的最好系统全都在用机器学习。

Chomsky也许会说这些工程上的成功并不能在理论上证明是最好的。另一方面,如果你搭建的大厦倒塌,或者引擎不工作,也许只是你的理论错误。Chomsky还在垂死挣扎,认为语言学应该针对理想的说话者和聆听者,忽略实际应用统计语言学的需要。不出意外的,很少有实验还去遵守他的理论。

另一些反对The Master Algorithm的人大概只是反对它的定义,比方心理学家Jerry Fodor。他认为心里是由很多模块组成的,他们相互之间有着有限的沟通。比方说,当你看电视时,你的大脑知道这是在平面上不断变化的图像,但是视觉系统仍然在处理三维空间内的各个物体。从Master Algorithm的角度来讲,我们承认哪怕这样模块化的定义是正确的,也不能推导出不同的模块在用不同的学习算法,也许用一个算法就足够处理视觉和听觉信息。

  • 结尾

从前像Minsky,Chomsky和Fodor这样的反对者能够一手遮天,但是他们现在的影响力已经大大减弱了。我们还是要记住他们提出的各种批评,原因有二。其一,知识工程狮和机器学习猿面对同样多的难题,即使他们的尝试没有成功,我们也可以从中吸取经验教训。其二,知识和学习是相互紧紧关联在一起的。虽然现在你可能还能够发现不同阵营的声音还不一样,机器学习常常谈概率,知识学习常常谈逻辑(machine learning speaks probability,and knowledge engineer speaks logic),但是我们会慢慢趋于一致。

  • 后记

翻译让大家见笑了,但是当写出第一段后,就发现我并没有办法当一个好的译者,到处都在偷工减料。之后Swan bites robot一章,还有一些关于machine learning和knowledge engineer的想法我很喜欢,大家喜欢读的话我下次就提。