3.5 知识工程
1965年,费根鲍姆和1958年诺贝尔生理学或医学奖获得者莱德伯格(Joshua Lederberg)开始做后来被叫作DENDRAL[27]的启发式专家系统,那是一个用于有机化合物分析的程序,也是此后很多专家系统的模型,是在其建立的斯坦福大学的知识系统实验室中完成的。对于像生物化学之类的领域,不但有通用原则,还有许多在实际判断中需要考虑到的特例。DENDRAL可以说是世界上第一个真正的专家系统,被用在工业上和大学里。其动机有二:一是研究科学问题的如何解决和发现,尤其是科学家在从经验事实中就假设和理论进行推理时使用或将用的过程;二是希望他们的研究将来能为科学家所用,提供对于重要的和困难的问题的智能辅助。他们的工作体现了学术和商业的独特结合。1970年又推出了更为先进的METADENDRAL,它不仅能够应用已知的规则来推测化合物的结构,而且还能将已知的结构与数据库中的规则进行比较,从而得到全新的规则。
诊断血液感染和脑膜炎感染并推荐药物治疗的专家系统MYCIN[27]的研究开始于1972年。如果MYCIN被告知一个病人已经被刺得出血和痉挛,专家系统将试图诊断是否是细菌引起了病人的症状。它引入了依赖于专家经验的可信度因子和不确定性推理。MYCIN把医药世界当作是由连接症状与疾病的经验联系所构成的,[28]同时,搜索过程中还有一个规则获取过程。它有一个附属的知识获取的软件TEIRESIAS。多数鉴定者认为其结果与他们自己给出的相符合。
1977年第五届国际人工智能联合会议上,费根鲍姆最初阐述了专家系统的思想并提出“知识工程”[27]的概念,被誉为“专家系统之父”。至此,人工智能的研究又有了新转折,知识作为智能的基础开始受到重视,并促使人工智能从实验室研究走向实际应用。他指出,严肃的应用问题与以应用为名的儿戏问题是不同的,必须务实而不是教条主义。专家系统指具备专家能力的系统,或可以像专家那样思维的系统,与知识密切相关。这样的系统包括知识库、数据库、推理机、人机界面等,从知识库中获取有用的解决问题的知识是关键所在。知识工程的基本思想是,用人工智能的原理,对需要专家知识才能解决的应用问题提供手段。它应该包含三方面的基本含义:
●应用,即明确的任务或目标。
●工程,利用工程化的规范方式。
●专家知识,任何智能系统都需要各类知识。
本质上,知识工程代表了人工智能的首次广泛的工业化。其间,人工智能的领域开始转变,基础研究和应用开发两者均有大量投资。同时,技术的缺陷也很快被发现,不过还是有很多有用的系统被发布,有的沿用至今。1959年,费根鲍姆在其由西蒙指导的博士论文中开发了最初几个之一的人如何学习的模型。诸如初级知觉和存储器(elementary perceiver and memorizer)可以模拟人们通过辨别新单词中与旧单词的异同之处来进行单词记忆的过程。费根鲍姆曾是3家应用人工智能公司的共同创立者。他的一个主要兴趣是解决复杂的计算问题时使用启发式方法。费根鲍姆与雷迪一起,因其“设计与构建大规模人工智能系统的先驱性的贡献,和展现了人工智能技术的实际的重要性和潜在商业影响”而获得1994年度图灵奖。
1984年莱纳特开始了CYC[29]工程,目标是建立一个常识知识库为未来一代的专家系统提供基础,然后用类比推理解决问题,最后使计算机自己发现知识。知识录入者仔细查看报纸和杂志上的文章、百科全书条目、广告等的同时询问他们自己:什么知识是作者假设读者已经知道的。然后他们用手工编写数百万的断言,目的是捕捉任何(人或者机器)读者为了去理解百科全书所必须有的信息。这些断言按领域和上下文关系分为若干组,一个领域可以有多个组,因为同一个领域可以从不同的角度去观察。1991年莱纳特和费根鲍姆预言CYC将成为一个有人类水平的宽度和深度知识的系统。CYC包括的知识有关于日常生活中对象和事件推理的事实、经验规则(rules of thumb)及启发式规则。CYC包含数以千计的“微理论”,每一个本质上是一组共享、一组公共假设的断言。一度CYC包含50万个术语,其中有1.5万个关系类型,与术语相关的500万个事实(断言)。新的断言不断通过自动和人工的方式加入。另外,术语表示功能可以自动生成数以百万计的非原子术语。CYC自己增加了大量作为推理过程的产物的断言。莱纳特认为:就人工智能这样的领域而言,做一个经验主义的科学家是有非常大的价值的,那就是观察数据、进行试验、通过计算机验证研究假设的真伪。[30]关于CYC是否实现了它早先的承诺,这个问题还有不少疑问。
专家系统可以说是人工智能最经典的代表,是到目前为止最成功的人工智能应用之一,尽管典型领域为数不多。人工智能已有的研究与应用涉及谓词演算和搜索、知识表达、推理和问题求解、定理证明、自动程序设计、模式识别、数据挖掘与机器学习、博弈、机器人、自然语言理解、计算智能等。它们基本上要么本身被包含在专家系统研究中,如搜索;要么是一种特定的专家系统,如定理证明;要么是专家思维功能的一部分,如模式识别。计算智能没有直接地模拟专家解决问题的能力或能力的一部分,然而在实际的专家系统研究中,不少工作利用了人工神经网络、遗传算法等,它们之间也没有能决然分开。而专家系统、知识工程直至如今还影响着诸多领域的应用。[31]在医学领域,有经验的医生甚至能运用从资料到假设的思维过程,而从假设到数据的思维过程就难免出错。当前的专家系统,从经验中提取知识的能力差,表征的知识较为肤浅而缺乏灵活性,没有深入思考的逻辑。前者由人做,中者是我们重视的工作,后者有赖于前两者。迄今为止,一个有常识的专家系统仍然是一个目标。
有研究者在讨论“专家挖掘”时,也谈及“隐性知识”,但实际上所涉及的还是专家(比如中医专家)的处方或表达出的内容,这当然重要,但远不够,中医面对病症的思考方式、内心未表达出的经验、开处方时细微剂量的选择等是更为独特和值得挖掘的知识。他们甚至认为其“专家挖掘”与人工智能或专家系统有所不同,后者主要是对专家本人的共性知识进行总结。[32]这里有认识上的错误。人工智能同样关心经验、隐性知识,也不仅整理共性知识。问题在于是否有办法来挖掘出隐性知识,形成包括个性知识在内的知识库。计算机辅助医疗分析关乎人(医生)与计算机结合以及人(知识工程师)与人(医生)的交互,于是就不是传统意义上的专家系统了。比如测血压,可直接得到收缩压和舒张压,然而是否高(低)血压因人而异,是否有心血管系统疾病更是需要后续的分析。以下章节要介绍的计算机辅助心血管疾病分析为例的思维模拟方法论如图3-3所示。

图3-3 重视经验的思维模拟方法论。钱学森先生指出思维模拟的瓶颈在于形象思维模拟,潘云鹤院士就此提出综合推理方法,笔者认为,就具体问题而言,其中关键问题是隐性知识的挖掘。以计算机辅助心血管疾病分析为例,医生诊断思维过程所涉及的形态特征十分重要但往往被忽视;在此基础上,通过分析错误的分类结果、与医生交流对现有的诊断规则做精化以涵盖细节、完善全貌;而隐性知识的挖掘仅此还不够,要与机器学习,特别是深度学习相融合。最后的分类器,实际上是包含诸多针对特定任务的子分类器的集合。符合临床要求的分类结果数据可供后续学习。图中实线表示深化或递进过程,虚线表示对应关系或可能的影响
王阳明在其《传习录》中云:“知者行之始,行者知之成。圣学只一个功夫,知行不可分作两事。”“知行合一”说无疑是重功夫、重经验、要实践、要体验的。其主要发明来自直觉,即禅式的“明心见性”,不过也有推理的地方。[33]
波尔(Niels Henrik David Bohr)在谈到知识统一性问题的重要性时指出:“力求做到和谐地概括我们处境越来越广泛的一些方面,承认任何经验都不能不用一种逻辑架构来加以定义,并承认任何外观上的不和谐都只能通过概念架构的适当扩充来加以消除。”[34]
霍金说:“如果我们确实发现了宇宙的终极理论,这意味着什么?……我们将永远不能肯定我们是否确实找到了正确的理论,因为理论不能被证明。但是如果理论是数学上协调的并且总是给出与观测一致的预言,我们便可以适度地有信心认为它是正确的。”[35]
拙著所述经验,是科学实践性的,而非哲学思辨性的,[36-37]尽管两者不是互相孤立的。它与普通百姓的生活和科学家的工作,不仅有千丝万缕的联系,而且是不可或缺的依托。
王蒙先生说:“书是教人学问、教人聪敏、教人高尚的,为什么书会使某些人愚蠢呢?因为书与实践、与现实、与生活之间并非没有距离。人一辈子许多知识是从书本上学的,还有许多知识和本领是无法或基本无法从书本上学到手的,例如游泳、打球、太极拳、诊病把脉、开刀动手术、锄地……”[38]就以锄地为例,有经验的农民用起来得心应手,没经验者用不好,于是就会想到“创新”,比如用制造坦克的钢材做锄头,用花梨木做锄头把子,成本极高,又很笨重,于事无补甚至越发难以使唤。当然,也许一定范围内那是认识发展过程中的一个阶段……
陆游有《冬夜读书示子聿》诗:
古人学问无遗力,少壮工夫老始成。
纸上得来终觉浅,绝知此事要躬行。
这里强调积累,也出于经验之谈,某种意义上是一种约束,没有这个过程,就没有相应的认识和智能。同样的受教育者,是否“读万卷书、行万里路”可大异其趣,也是一样的道理。比如,我没读过王蒙先生的小说,但他的小说那么多,又拥有如此多的读者,我推断其非同一般。