Geoff Hinton认为,机器将很快具备常识。这看起来好像是一件挺简单的事。但是,我们现在不知道该如何解决这个问题,甚至是去定义它。 撰文 王培(美国天普大学计算机与信息科学系) 前一段有“深度学习教父”之称的 Geoffrey Hinton 预测在十年内将出现“具有常识”的计算机系统。此言一出,“常识”顿时在媒体上成了个高频词,还有名人为此预测的成败公开打赌。在这一片热闹之中,却很少有人解释一下“常识”究竟是什么,以及为什么拥有常识比击败围棋高手还难。也许这本身就是常识,因此无需解释?且待我们细细看来。 “弱方法”和“强方法” 主流人工智能研究的目标是“解决那些只有人能解决的问题”。在早期,研究者致力于发现和总结那些可以用于解决各种问题的通用技术,如状态空间搜索和符号逻辑推理等等。但这些技术只获得了有限的成功,而越来越多的人认识到并没有什么“包治百病”的妙方。不管你多聪明,没有相关领域里的专门知识也是解决不了多少问题的。在上世纪八十年代,“知识就是力量”的口号被一些研究者重新喊出来了,而“基于知识的系统”、“专家系统”、“知识工程”等概念也流行起来。当时的普遍看法是:仅靠通用技术的问题求解方法只能解决简单问题,因此是“弱方法”,而依据专门知识的方法才能解决复杂问题,是“强方法”(见参考材料[1])。请注意,这与目前称专用智能系统为“弱人工智能”,通用智能系统为“强人工智能”的说法恰好相反。 我早年曾做过一年多“知识工程师”。每做一个新项目,我们就会到客户那里去仔细分析相关行业的决策过程(我去过电话公司、保险公司、银行、投资公司),然后把有关专业知识整理后存进一个“专家知识库”,以使得这个系统能根据这些知识对各个具体问题提出解决方案。在不同的应用领域中,此类专业知识是非常不同的,但我们开发的专家系统对这些知识的处理技术是不变的,基本上是基于数理逻辑的推理以及状态空间搜索。这种系统的成败的确主要取决于专家知识是否能被知识工程师们有效地表达成计算机所能利用的形式。 在互联网浪潮的推动下,出现了另一类相关的计算机技术,包括“语义网”(semantic web)、“本体论”(ontology)、“知识图谱”(knowledge graph)等等。尽管细节和重点不同,但这些工作都致力于把人类知识表示成计算机程序能直接使用的形式,其中的“知识”包括常识,也包括专业性知识。 目前这种对于领域知识的依赖也体现在很多机器学习算法对“大数据”的依赖之中。数据不够,再强的学习算法也是“难为无米之炊”的。在很多情况下,只要数据够了,用哪个算法差别都不大。这就是“数据为王”这个说法的根据,其实和“知识就是力量”异曲同工。 总而言之,智能系统需要知识来解决复杂的问题,这是大部分人工智能工作者的共识。以 Rodney Brooks 为代表的“行为主义学派”挑战过这个观点,试图用和外部环境的相互作用来代替基于知识的推理,但他们的成功仅限于扫地机器人等相对简单的系统。 人工智能和“常识” 人工智能对于“常识”(common sense)的需求主要是在对推理系统的研究中出现的,其中有两个不同的研究课题,“常识知识库”和“常识推理”。 在开发专家系统时,一个常见的问题就是专家所提供的知识不足以推出所需的结论,而中间所缺乏的是“常识”,就是平常人际交流时无需说出的那些人人知道的事情。在计算机不能自动获取这种知识的情况下,有必要把有关事实存进一个“常识知识库”里面。这个知识库和前述“专家知识库”相比有两个主要不同点:首先,这个库是通用的,不用为每个应用系统建一个;其次,这个库要比专家知识库大好几个数量级,因为“常识”实在是太多了。 挑战这个难题的最著名的努力当属 Douglas Lenat 所领导的 Cyc 项目(“Cyc”取自“encyclopedia”,即“百科全书”)。自1984年开始,他们一个几十人的团队致力于把百科知识表示成符号逻辑命题,并让计算机据此进行推理。比如说“树木是植物”在 Cyc 中表示成“(#$genls #$Tree-ThePlant #$Plant)”。三十多年后,这项工程仍远未完成,但已有的成果已开始被用于各种实际问题的解决。 (责任编辑:本港台直播) |