信息与控制
INFORMATION AND CONTROL
1999年 第28卷 第2期 Vol.28 No.2 1999



人工智能可信赖性与可信赖算法研究*
李应潭
　　摘要　不可信赖的算法和系统不是人工智能的初衷，准确率较高的不可信赖系统如果有相当水平的专家的协同作业，有可能提高工作效率；但在完全自动化的条件下或者在与其配合工作的人不是非常可信赖的情况下，不可信赖系统则将丧失使用与存在价值．相反，可信赖系统却能够出色地工作，达到并长期保持制作它的群体专家的水平．可信赖系统不仅在效率方面而且将在质量方面体现人工智能的优越性和不可替代性，因此将是推动知识经济的发动机．已经证明，一个不可信赖的算法，最终必然破坏系统中其他可信赖算法的可信赖性，应该予以扬弃．实现可信赖算法和系统的工作量和难度都大大增加．可信赖算法本质上只适用于可界定、可判定的类．实现基于类与OOP理论的若干可界定领域的可信赖算法与系统在实践上有确切的用途．已经证明，若干可信赖算法的集成仍然是可信赖的；因此通过不断地继承和集成能够逼近最终的目标．
　　关键词　可界定类,可信赖性,可信赖算法
RESEARCH ON TRUSTWORTHINESS AND TRUSTWORTHY
ALGORITHM OF AI
LI Yingtan
(Shenyang Institute of Automation,Chinese Academy of Sciences)
　　Abstract　This paper prensents the concept of Trustworthiness and Trustworthy algorithm in AI that means an AI system should give an answer before not having trustworthy knowledge about the question. The trustworthy knowledge may not give out any wrong answer.To check the trustworthiness of an algorithm may be easier than to prove a trustworthy one . And it is clear that an algorithm can only be proved a trustworthy one if and only if the classes are delimitible classes.
　　Key words　delimitible classes, trustworthiness, trustworthy algorithm
　　1　引言
　　从1956年算起，人工智能(AI)有42年的历史了．这些年来，人工智能在思想和理论上的进展和贡献是有目共赌的(文献太多从略）．但是作者认为人工智能至少面临两大问题：可信赖性和人工意识（即真正的智能模型）研究．本文所涉及的就是人工智能系统的可信赖性问题．
　　自从作者1996年提出而且开展了可信赖性与可信赖算法研究以来，我们开展了一些实例研究，理论上和实践上都取得了一些进展．本文就是两年来研究的总结．
　　我们认为可信赖性与可信赖算法研究是人工智能研究的新起点和突破点．这是因为可信赖研究开辟了新的研究领地，而且已经在我们面前展现出非常广阔的应用领域和应用前景．而我们也不难认定，可信赖性问题关系到人工智能理论与实践的前途．详细研究如下．
　　2　为什么要研究可信赖的算法
　　发展计算机和人工智能的主要目的是提高科学技术与生产力水平，其关键是要保证质量．从某种意义上讲，可信赖算法和可信赖性理论是涉及智能性软件根本质量问题的理论．
　　首先我们应该区分四个概念：可靠性、可调试性、可信赖性和可依赖性．可靠性是硬件在多长时间内会发生故障的问题，可调试性是是否便于排除人工编制中的错误问题．而可信赖性与可靠性和可调试性这两个概念没有关系．可信赖性是在没有硬件故障和没有人为的输入错误的前提下算法本身的质量方面的一个指标．软件的另一个质量指标是可依赖性（文献5）．
　　可信赖性要解决人工智能有关研究目标的根本质量问题．专家系统也好，机器翻译也好，模式识别也好，若没有可信赖性，就谈不上可依赖性，就没有人工智能的质量可谈．
　　在模式识别领域里，指纹识别和汉字识别是两个典型研究．对于人来讲，学会了一个字就会认一个字，自然能够很有把握地从报纸里挑出自己识别的那个汉字来．虽然只认得一个字，却是有把握的，是可信赖的．可是现在许多汉字识别软件硬是做不到这一点．由于算法的原因，不管其拒识率多么高，都不可能达到100%的准确率．如果我们能够实现一个可信赖的汉字识别算法，哪怕只能从报纸上 认出10个汉字，却保证不错，这将是最伟大的成功．因为在实现这个目标以后，我们就有可能组织若干小组，将出现频率高的2000个汉字分头解决，（另外4500个汉字暂时不管）．如果这2000个汉字都实现了可信赖的识别算法，那么，就可以将它们集成起来，实现一个解决98%文本的可信赖识别问题的实用系统．由于识别出来的占98%，而且这98%的文本不需要校对，就会大大节省校对工作量，实用性就很好了．
　　再以自然语言的机器翻译为例，自然语言非常复杂，翻译更加复杂．自然语言不是少数人可以解决的，甚至也不是短期可能彻底解决的，需要大批人长期而有效的积累和努力．那么，什么样做法适合于大批人协作、又适合于长期而有效的积累呢？只有可信赖的算法才适合于大批人协作和能够有效地加以积累，因为可信赖算法根本避免了错误的传递．因此需要我们来宣传和呼吁可信赖性，避免没有可信赖性的分散而短期的行为．
　　在一些缺乏可信赖性概念的人看来，似乎一个机器翻译系统只要能够达到比别人更高的总的准确率（百分比），就可以算做成功了．我们不认为是这样的．我们面临的事实是：一个以XX%的正确率自我安慰的机器翻译系统，虽然可以翻译许多常见的句子，却又会将许多句子翻译得一塌糊涂，给出莫名其妙的结果．事实上，多数机器翻译程序是小马拉着大车，其分析与处理水平离实际需要甚远．有的系统，开一个玩笑，如果告诉它“how do you do”应该翻译为“你好”的话，那么就有可能将“How do you do that work”翻译为“你好那个工作”，这虽然是一个玩笑，可是许多莫名其妙的结果就是这样产生的．这样下去，必将使许多人丧失对人工智能的信赖，损害人工智能这个美好概念的形象．
　　不可信赖的系统，无论使用了多少充满想象力和探索性的高级的算法，由于不知道自己何时会出错，因此本质上是一种不知道何时说“不”的“绞肉机型推理机器”［1］．通常由于有递归处理能力表现出很强的输入加工和输出能力，但是这种“很强的输入加工和输出能力”是肤浅和靠不住的．虽然所有进去的“肉”（加工对象）都能被绞出来，结果却是正误不分、好坏不分，有时简直一塌糊涂．这是难怪的．因为在机器翻译这样困难的领域里我们还缺乏完全可以机器化的解法或知识以及相应的知识描述手段．半盲的马拉大车，难免掉进沟里，自然靠不住．这样的“智能”，是不足取的．
　　象专家系统、机器翻译、模式识别这些问题，要找到可信赖的算法难度很大，但是确实需要．一旦我们找到了某个可界定类的可信赖的算法，使计算机在解决某一类问题上的可信赖性达到制作它的专家群体知识的最高水平，那么，实际上我们在解决那一类问题上已经达到人类当前的最高水平了，就可以加以认定． 
　　我们认为，可信赖的算法与可信赖人工智能的概念，把注意力集中在回答问题的把握性上，因此实行要么不回答，要么正确地回答的策略．这将使计算机的答案比一般人更可信赖．这个概念对于人工智能下一步的发展是十分重要的．如前所述将能够实现群体协作与有效积累．人工智能多集中在知识密集领域，理应属于知识经济的发动机．借助解决局部问题的可信赖的人工智能系统，一般人就能够以专家水平和工作质量解决某些问题．人的工作状态容易受到种种因素的干扰，包括身体状况、情绪、感情、观念、动机等，而计算机却没有这些人为因素．因此，在这种情况下，计算机应该比人更可信赖一些(如果计算机的算法是可信赖的话)．可见，可信赖性问题是多么的重要．因此，由可信赖算法的研究所引发的可界定、可信赖人工智能的系统的研究具有广阔的应用前景，应该认真研究．
　　3　什么是不可信赖的算法
　　定义1　不可信赖的算法 如果一个计算机系统，在没有硬件故障的情况下，对于自己给出的回答的对错心中无数，不知道有没有正确把握的话，那么，它所使用的算法本质上是不可信赖的．
　　定义2　不可信赖的系统 如果一个系统所使用的算法本质上是不可信赖的，那么它就是一个不可信赖的系统．
　　我们认为，凡是用所谓的总的准确率（识别率、译准率等）来度量其工作结果的系统，如果扣除掉其拒绝回答的部分之后仍不能保证100%地正确回答剩下的问题的话，就属于不可信赖的系统．因此，目前流行的全自动汉字识别、全自动指纹识别、全自动机器翻译等系统，扣除拒绝识别或拒绝翻译部分后准确率不能100%的，一般地均属于不可信赖的系统．
　　这些系统，由于在提供最终回答之前无力排除错误而只好将包含错误的答案（就是将对的与错的答案混合在一起）提供给用户．任何本质上不可信赖的系统，是没有搞懂的、实际上不明白的系统，也没有“自信心”和“信念”可谈．在这种情况下谈它们的智能，实在是太困难了．
　　这就好比一个学生的考试卷，除掉没有回答的题目之外如果仍存在错误的话，这个学生的回答就是不可信赖的．如果在其给出的回答中没有出现错误，那么这个学生作到了“知之为知之，不知为不知”，其回答就是可信赖的．
　　我们将没有回答的题目看作是系统承认不会或没有把握的部分，因此不作为计算其可信赖性的依据．就是说，不回答或者承认不会并不影响可信赖性（但是影响可依赖性［5］)，但是回答错了却不行．
　　是不是错了一次就不行了呢？是这样的，因为算法还需要修正．可信赖的系统是从纠正错误中发展起来的．错误也是逐步发现和纠正的．因此，一个比较现实的观点是：
　　定义3　实际可信赖系统 如果一个系统在回答问题之中很少出错，而且在发现有错之后通过修正或自我学习能够很快纠正，永不会再犯此类错误也不会引发其他错误从而其发生的错误逐步变少直至没有错误的话，这样的系统是实际可信赖的系统．
　　4　怎样判定一个算法的不可信赖性
　　我们不必去考查一种算法能给出多少正确的答案（总的准确率），而专门去考虑或分析它有没有办法避免、发现、排除或控制回答中的错误，着重考查其所回答问题的错误率是否为0或近乎0．如果它本身没有避免、发现、排除或控制错误的办法，如果其所回答的问题的准确率不能是100%或近乎100%，那么这种算法就是不可信赖的．
　　我们认为，历来评价一个系统的质量的“总的准确率”概念恰恰为各种不可信赖的系统和算法提供了一个合法的藏身之地．所谓的总的准确率与百分制评分法一样，没有回答与答错都是不给分，不予区别．对于一个面对老师的学生来讲，这或许还有道理可讲；而对于希望取得用户信赖的智能系统来讲，这就十分不合理了．事实上，这是在鼓励不负责任、把探讨与猜测当作答案，自然没有可信赖性可谈．在模式识别与机器翻译两个领域里流行着的总的准确率、识别率等概念，没有把注意力放在对所回答的问题的正确性上．事实上，这些系统，即使将“拒答率”提得很高，将“回答率”搞得很低，其所回答的问题的准确率也无法达到100%，就是说，这些系统本质上不能区分对错，是不可信赖的．原因很简单，在不加限制的和全自动的情况下，这两个领域的问题，本质上包含大量不可知、不确定的、必须猜测的成分．因此，不可信赖性问题在这两个领域表现得十分突出和尖锐．
　　在汉语文本的分词研究中，有一个长度优先的分词算法及其改进算法，效率较高，错误率也较低．可是若用可信赖的观点来考察，这个算法也是不可信赖的：比如，在分析下面句子的时候肯定会产生它自己认为正确（因此它自己不能够发现）而实际上是错误的切分结果：
　　例子　用更好的技术服务用户、报答用户．
　　分析结果：用|更好|的|技术服务|用户、报答|用户．
　　问题出来了：按照这种分词算法，上述的分词结果是唯一的（因所有词都得到认定），不存在其他分词的可能性，必然导致严重的后果．如果接下来有句法分析而句法分析失败的话，将怀疑其他方面的问题：如“技术服务”是不是有动词属性？文本是否有错或句法分析是否有错等．所以，或是停止工作，或是将错就错，或是重新句法分析，而决不会象人那样能够进行正确的分析．因为人一开始就不会那样来分词，人是联系上下文的综合性的分析．可见，长度优先的分词算法是不可信赖的．而这种算法目前却还在普遍加以使用［4］．
　　研究表明，纯句法分析算法和基于局部语意匹配的算法，也是不可信赖的．比如在“今天饭我来吃石头你来搬”这样的句子里，利用语意搭配（认为吃与石头不搭配，而搬与石头搭配）可以解决问题，可是，象“我不能吃石头”、“他表演吃玻璃”这些句子虽然罕见，人们却能接受．而由于吃与石头、吃与玻璃不搭配，计算机可能因这条语意搭配规则而不接受，产生了错误．
　　至于没有语意分析能力的纯句法分析算法，分析汉语这种缺乏切分标记的语言来说，实在痛苦万分，可以说是没有规律可循．比如，纯句法分析以下的句子将是无能为力的：

　　与

　　这两个短语都是合理的，但是从纯句法的角度来看，简直是没法下手．
　　5　产生不可信赖的算法的原因及其系统的出路问题
　　出现不可信赖的算法与作出不可信赖的系统原不是我们的本意，是因为我们对面对的问题的复杂性估计不足或者操之过急；对可信赖性问题缺乏认识而对系统应该处理的问题没有明确的限制，而将目标设得太高；对有关问题的知识太粗或不足；施行了绞肉机型的“强推理”、“过度推理”和“想当然推理”的做法，将局部正确的的知识假定为一般正确的知识，使有关知识运用过当等等．下面的故事是人人皆知的：有人告诉一个小孩：一是一划，二是两划，三是三划，那个聪明的小孩就想当然地推出四该是四划，五该是五划了．小孩虽然聪明却犯了“想当然推理”的错误．汉语里，在人的姓前加一个“老”或“小”或“大”就可以构成对人的简称．但是这个规则只适合于能够出现<N人>类这一局部语境里，不能一看到“大陈”两个字就断言是人．因为，“大陈”除了能指人外，在<N地>类里还是一个岛的名字．不加这样的局部语境限制自然就判断错了；同样，“老帅”一般是对有“元帅”头衔人的简称，但“帅”还是姓，指姓帅的人也未尚不可，这完全要依当时语境而定．我们人类之所以不会搞错，就是因为懂得语言里的种种说法都是依附于特定的上下文和语言环境的．如果我们构造计算机系统时忽略这个语意环境前提，就会犯“想当然推理”的错误．
　　不可信赖的算法和系统只有依靠比它有更高水平的专家，做这些专家的助手，才可能取得有效的应用，比如用来提高工作效率．
　　由于离不开比它水平更高的专家的合作，因此全自动的不可信赖的算法与系统，永远不可能成为知识经济的发动机．从这一点来说，是没有应用前景的．我们认为应着重发展可信赖算法和系统，有效地推动知识经济的发展．
　　6　什么是可信赖的算法
　　定义4　可信赖系统 如果一个计算机系统在没有硬件故障的情况下，对于向它提出的一批问题能够做到：没有把握或无力回答的就不回答，有把握的才回答、回答的则保证正确的话，那么，它就是一个可信赖的系统．
　　可信赖系统从本质上来讲，是有人工的“智能”的，因为它有人工的“数”、“自信心”和“信念”；其所使用的算法本质上也是可信赖的算法，因为能够排除错误，保证正确．要注意：能够将自己没有把握的问题排除掉，采取不回答或拒绝回答的方法，正是可信赖系统保证自己对所回答问题正确性的唯一好办法；一个系统如果能够通过拒绝回答而避免答错，保证回答正确性，也将能够实现可信赖．
　　其实，人类制造的任何一台机器都有专用的目的，只要求它做专门的事．过去的机器，由于是机械的，只有硬件而没有软件，只要不出故障，就不可能出错．因此，没有可信赖性的概念，只有可靠性的概念．计算机也是机器，可是计算机既有硬件，也有软件．由于编程的灵活性和普遍适用性，有些人开始构造出一些让我们自己也信不过的（不可信赖的）程序，才出现了可信赖性的问题，因此可信赖性是针对软件的概念．
　　注意：可信赖系统允许答不上来，却不允许提供错误的答案，这个要求表面上不很高，实际上是很高的．事实上，有些系统，比如基于不太完备的统计模式识别系统，即使其拒绝回答的问题总数达到了99%，那剩下的1%问题它仍然不可能保证100%的正确．
　　7　怎样判定一个算法的可信赖性
　　一个算法是不是可信赖，关键要看能不能有效地排除掉它不应该回答或不能有把握地回答的问题，而不是首先去看它能不能更多地回答问题．我们认为这几乎是最重要的原则了，我们叫做有效排除原则．
　　判定一个系统是不是不可信赖的方法比较简单，因为只要给出一个实例，如果能够证明它会产生错误，立即就可以宣布它是不可信赖的．这叫实例判定法．但是实例判定法仅仅对于判定不可信赖性比较有效，因为只要找到一个实例就足够了，却对判定可信赖性显得非常无力．因为如果可能的实例的数目无限，我们将永远无法证明可信赖性．因此对于不可枚举的问题，用实例判定法将永远无法证明一个算法的可信赖性．
　　由上述讨论可以发现，一个可信赖的算法，必须要能在有限的步骤之内认定或者排除所要处理的实例，就是能够对所要处理的实例进行界定．这就是处理对象的可界定性．
　　定义5　可界定类 一个类是可界定的，如果对于到来的任何一个实例，能够在有限的计算步骤之内判定它是不是此类的一个对象．如果不能在有限计算步骤之内加以判定，那么这个类就是不可界定的，反之反是．
　　原理1　可信赖算法所针对的类的可界定原理　对一个类施行的一个算法要想能够证明是可信赖的，那么该类必须是可界定的，就是说任何一个可信赖算法所针对的类，必须是可界定类．
　　“可信赖人工智能”把传统的“知之为知之，不知为不知，是知也”原则奉为基本原则．并且认为：人类的智能是多方面的．有记忆力和能熟练地按规定办事也是智能的重要的方面；
　　定义6　弱推理　使用基于可界定类的继承、“检索”与“查询”得到的原则进行的推理为“弱推理”，这些推理是在可界定类的范围之内的、已经得到验证的推理，因此，是可信赖的．
　　作为弱推理的一个例子，就是计算器的运算，这是仅仅适用于数类的弱推理．
　　在类是不可界定的条件下依靠“想当然的规则”进行的“想当然”的推理，常常越出了类的边界．这并不是智能，恰好是要十分留意的“智能陷阱”．我们常常又把这一类利用不可信赖的规则进行的“想当然推理”叫做“绞肉机型推理”，属于所谓的“强推理”或“越界推理”；可信赖人工智能不主张这种“绞肉机型”的“越界推理”，它的推理结果虽然有时正确，却常常有错，所以是不可信赖的．
　　可信赖系统必须要用主要精力来排除错误，使自己不犯错误．其原则是：在没有把握的时候，要拒绝回答，以保证回答的100%的准确率．因为，无论人还是机器，他或它不知道的东西总是要多于他或它知道的东西．一个人或者机器若能做到这一点，才达到了“知之为知之，不知为不知，是知也”的可信赖的境界．
　　原理2　可信赖性的充分性原理　如果一个算法能够对于一个可界定类的每一个实例（就是成员）在经过有限步骤运算加以界定之后（就是首先排除不属于本类范围之内的实例），都有一个针对实例的具体的类属性与个性的统一的、为本领域专家认可的可信赖的处理方法，从而使得其处理结果达到当代此领域的专家水平的话，那么，这个算法就可以证明是可信赖的．这是可信赖性的充分性原理．
　　原理3　可信赖算法的集成原理　基于可界定类与OOP理论的若干可界定领域的可信赖算法是可以集成的，这些可信赖算法由于各自不会去干预不属于自己的可界定类的事务，也不提供错误的答案，因此集成后的系统仍然是可信赖的；因此通过不断的继承和集成，将能够逼近最终实现可依赖系统的目标．
　　8　如何实现可信赖的算法
　　可信赖算法和可信赖系统不是从天上掉下来的，是在不断扬弃不可信赖算法的基础上发展出来的．我们认为，如果能够按照下列步骤去做，就可以实现可信赖算法：
　　(1) 首先要定义一个可界定类．如果原来的算法出现错误，那么，可以加强类的限定条件，将算法限制在足够小的范围之内，直到能够证明算法是可信赖的为止．因此，这个定义过程，实际上就是建立一个算法所针对的可界定类的过程．按照定义，界定算法必须在有限步骤内完成；事实上，只有类的描述属于可界定的描述，那么，这个类就是一个可界定的类．
　　(2) 寻找解决此类问题的专家，由专家制订此类问题的基于类属性与对象个性的、详细的求解原则．
　　(3) 将这些基于类属性与对象个性的、详细的求解原则输入计算机，并编制相应的处理程序，执行这些原则．该算法首先要判定所到来的实例是不是本类能够和应该处理的对象，排除不属于本类的一切实例，拒绝回答，从而排除将导致不可信赖性的因素，然后按照详细原则办理，就可以实现本问题的可信赖的求解．
　　基于上述的理论，我们已经实现了包括门牌号、单位名与信箱三个子类的通信地址类的判定、分析与翻译的可信赖算法与实用系统，它能够接受诸如此类的各种通信地址的中文写法：
　　　　辽宁沈阳三好街90号沈阳自动化所
　　　　中国济南市中区大名湖路16号
　　　　上海市100号信箱
　　能将他们100%正确地翻译为英文．为了保证自己分析与翻译的可信赖性，这个系统包含了一个数万条数据库记录和基于地名、单位名和信箱分析、翻译知识库的可信赖推理系统．如果到来的通信地址有误或者为本系统缺乏知识的新型的通信地址，这个系统将采取拒绝翻译的做法，而且提示设计者补充有关知识条目．研究表明，在可信赖理论的指导下，很快就会发现，泛泛的通信地址的分析知识是不足以有效地解决问题的，而人类之所以能够不出现错误，是因为使用这些通信地址的人包括了各级邮政分选投递人员，他们利用自己具有相应的知识处理了通信地址中的不同部分，这些部分对于每一个人来讲，都是他们非常熟悉的缘故．因此，计算机只有将分散在各级邮政分选投递人员头脑中的这些知识全部集成到自己的数据库里才有可能解决正确的分析问题，然后才有可能翻译为正确的英文［2］．
　　9　后记
　　我们已经建立了可信赖性理论的全部框架而且实现了一个可信赖通信地址汉英翻译系统实例，证明了这个目标的可行性与艰巨性．作者感谢中国科学院机器人学开放实验室谈大龙、王越超等同志大力支持，他们对本文分别提出了宝贵意见．也感谢辽宁科技情报所曹猛同志、沈阳建工学院计算机系的李彦军、孟庆江、胡葆华等同学的工作．辽宁科技情报所丁明安同志也对本文提出宝贵意见．
*本研究得到中国科学院机器人学开放实验室基金课题“可界定，可信赖人工智能模型研究”的支持。
作者简介：李应潭，58岁，教授．研究领域为人工智能自然语言理解的理论与方法研究．
作者单位：中国科学院沈阳自动化所　沈阳　110015
参考文献
　1　李应潭．可信赖人工智能的概念.中国科学院沈阳自动化所研究报告，1998
　2　李应潭，李彦军，孟庆江．面向可信赖机器翻译的通信地址类模型的提取、界定和分析 .中国科学院沈阳自动化所研究报告，1998
　3　李应潭，丁明安．地名、单位名和通信地址英汉汉英翻译手册（将出版）,1998
　4　刘东立． 基于继承的汉英直译系统的研究与实践.东北大学博士学位论文,1997
　5　李应潭．可信赖性和可依赖性.中国科学院沈阳自动化所研究报告人工智能可信赖性与可信赖算法研究,1997
1998-05-26收稿
