基于案例的推理(Case-BasedReasoning,简称CBR)是人工智能发展较为成熟的一个分支,它是一种基于过去的实际经验或经历的推理。对基于案例的推理来说,求解一个问题的结论是从记忆里或案例库中找到与当前问题最相关的案例,然后对该案例做必要的改动以适合当前需解决的问题。
1、CBR简介
1.1 CBR的概念
简而言之,CBR基于这样一个观察事实:人们在解决问题时总是首先试图从以往经验中找到相似的案例,从中得到答案或启发。例如:当你早上坐进轿车中时,你不会去制定一个明确的行车计划,你只会走你过去每天早上都走的那条路;如果在路上遇到了塞车,你可能会想到从前是如何绕过一个类似的塞车的;如果你成功地绕过了一次塞车,你就会记住这条路并常常在类似的情况下使用它。
CBR正是对这样一种问题求解方法的抽象:把当前情况与以往曾成功解决的问题相匹配,从中获取答案或启发。在匹配的过程中,必要的话,可能需要对过去案例的解决方案进行修改,使之能更好地与当前问题的具体情况相适应。
CBR最早出现在耶鲁大学R.Schank教授(1982)的论文“Dynamic memory: a theory of reminding and learning in computers and people”中,该论文介绍了有关动态存储、历史环境以及环境模式回忆对问题求解的作用。Kolodner等人于1983年开始在计算机上实现。
1.2 CBR的过程
案例推理的过程可以看作是一个4R(Retrieve, Reuse, Revise,Retain)的循环过程,即相似案例检索、案例重用、案例的修改和调整、案例学习四个步骤的循环。
遇到新问题时,将新问题通过案例描述输入CBR系统;系统会检索出与目标案例最匹配的案例,若有与目标案例情况一致的源案例,则将其解决方案直接提交给用户;若没有则根据目标案例的情况对相似案例的解决方案进行调整和修改,若用户满意则将新的解决方案提交给用户,若不满意则需要继续对解决方案进行调整和修改;对用户满意的解决方案进行评价和学习,并将其保存到案例库中。
1.3 CBR系统的特点
典型的CBR处理过程包括如下4个主要步骤:
(1)根据输入案例检索最相似的过去案例,检索的结果为一个或多个案例;
(2)根据检索出的案例与输入案例的差别,对检索出的案例的解决方案进行修改,以适应当前问题的具体特点;
(3)尝试用检索出案例的问题解决方案解决当前问题;
(4)根据应用情况,修改上一步问题求解方案,得到最终的问题求解方案,将当前问题的描述及最终解决方案合并成为新案例放入案例库,以备后用。
基于案例的推理是一种类比推理方式:它具有两个特点:一是利用比较固定的结构表示过去的经验;二是欲求解的问题与案例库中的问题属于一个领域,且一般是同性质的,即两类同性质问题的类比。
基于案例做推理,其质量依赖于以下4个因素:
(1)系统具有的经验、即案例库的内容:案例库中案例越多,覆盖面越广,越有利于推理质量的提高。
(2)根据案例理解当前问题的能力:这取决于能否从案例库中找到最合适的案例,以及如何对检索出的案例和新问题进行差异分析。
(3)解答改编的灵活性:即能否有效地将案例提供的解答改编为符合新问题的解答。
(4)推理结果的评价能力:高质量的案例推理应善于从环境的反馈中评价推理结果,并依据不足之处对解答改编环节作出相应修补,使以后的推理能力更强。
2、CBR的关键技术研究
如同所有人工智能方法,不存在普遍使用的CBR方法,CBR是在特定领域内进行问题求解和自学习的方法。对于特定领域的应用,CBR系统均包括如下功能:案例表示、案例检索、案例的调整和修改和案例学习。
2.1 案例表示
CBR的案例表示问题实质上就是使用什么样的结构表示案例,将什么信息存入案例,以及如何组织、索引以提高检索和重用效率的问题。
案例一般由问题的描述、相应的解决方案以及方案实施效果三部分组成,其中问题的描述及相应的解决方案是案例描述时必须包含的信息,方案的实施效果则是根据案例库建立的需求而定的。因此,一般的案例表示应至少包括问题的描述及相应的解决方案,一般案例描述为二元组的形式,即为<问题;解决方案>;若要描述出解决方案的实施效果,则可表述为三元组的形式<问题;解决方案;实施效果>。
两个最具有影响力的存储模型:Schank的动态存储模型和Porter的分类—范例模型。
2.2 案例检索
相似案例的检索是CBR的一个关键环节,案例检索就是从案例库中搜索出与目标案例最为相似,对目标案例最有帮助的案例,案例检索的过程就是一个查找和匹配的过程。在CBR 中相似案例的检索要达到检索出的相似案例尽量的少和检索出的案例与目标案例尽可能的相似这两个目标。
目前比较常用的案例检索算法有知识引导法、神经网络法、归纳索引法和最近相邻法。
随着案例库中案例知识的增多,以上几种方法的检索效率就会降低,单独使用都会存在一定的不足,因此我们提出在案例检索时将归纳索引法与最近相邻法结合使用。首先根据目标案例中权值比较大的特征属性对案例库中的案例进行分类,初步检索出与目标案例较为匹配的案例候选集;然后使用最近相邻法对案例候选集中的案例逐个进行匹配,选出与目标案例最为匹配的案例。
2.2.1 最近邻检索
最近相邻法是比较常用的一种案例检索方法,是一种基于距离的相似性的度量方法。这种方法首先给出案例间距离的定义,将目标案例视为空间中的一个点,找出与这个点最近的点,即为相似案例,利用这种方法不仅要计算案例属性之间的距离,由距离得出相似度,同时还要给出属性的权值。即将目标案例的特征和候选集中的案例描述的特征指标进行相似度计算,然后根据特征指标的权值计算出两个案例之间的相似度,从而求得与目标案例最为相似的案例。
2.3 案例的调整和修改
为了更好地解决新问题,根据新问题的情况对检索到的相似案例进行调整和修改的过程称为案例的调整和修改。案例的调整和修改可以是对一个相似案例进行,也可以是对多个相似案例重组并修改。案例的调整和修改是CBR的一个难题,许多领域的CBR系统一般都还停留在检索阶段,且案例调整是针对特定的领域知识来进行的,因此不存在普遍的适用方法。
根据案例调整和修改的执行者可以将其分为系统修改和用户修改两类。系统修改是CBR 系统根据提前预定义的某种案例修改策略来对相似案例的解决方案进行调整和修改,并将调整和修改后的方案交给用户。用户修改是指用户根据问题的情况以及自身的要求对相似案例进行相应的调整和修改以得到新问题的解决方案。一般情况下,这两种案例调整和修改的方法是结合使用的,首先对案例进行系统修改,将系统修改和调整后的案例提交给用户,用户再根据需求和新情况对案例进行修改和调整,最终产生适用于新问题的解决方案。
2.4 案例学习
案例学习是保证案例库质量的一个重要手段,案例学习不仅包括案例库的维护,同时还包含了案例评价。案例评价是案例学习的一个前提条件,案例评价是对新案例的应用效果做一个评述,若新案例的解决方案应用效果极好,则要对新案例进行存储;若新案例的解决方案应用效果不佳,则不再将其添加到案例库,并考虑为其寻找新的解决方案。
案例的维护主要包括向案例库中添加新的案例即案例存储或删除一些不常用的案例,若案例库中不存在解决目标案例的方案,可以考虑将解决新问题的方案添加到案例库中,使得案例库更加完备,使得系统具有解决新问题的能力。将一个新的解决方案加入到案例库中,案例库中可用的成功案例将会增加,从而提高了案例复用的可能性以及案例推理的准确性。若案例库中的一些案例基本上没有与其他案例所匹配的时候,那么这些案例就没有必要存在了,可以考虑将这些案例删除,以便提高案例推理时案例检索的效率。案例的维护不仅仅包括案例存储或删除一些不常用的案例,它还包括调整和修改一些不成功的案例或有关参数的过程,将这些调整或修改的信息存储起来以便为以后解决类似的问题提供解决方案。案例的学习是对案例库不断更新与扩充的一种手段,同时也是确保所建案例库长期有效的一个重要条件。
3、CBR分类
基于案例的推理(CBR)分类法使用一个问题解的数据库来求解新问题。不像最近邻分类法将训练元组作为欧几里得空间的点存储,CBR将问题求解元组或“案例”作为复杂的符号描述存储。
3.1 CBR分类的原理
当给定一个待分类的新案例时,CBR首先检查是否存在一个同样的训练案例。(1)如果找到一个,则返回附在该案例上的解;(2)如果找不到同样的案例,则CBR将搜索具有类似于新案例成分的训练案例。概念上讲,这些训练案例可以视为新案例的近邻。如果案例用图表示,则涉及搜索类似于新案例的子图。
CBR试图组合近邻训练案例的解,提出新案例的解。如果各解之间出现不相容,则可能需要回溯搜索其他解。
3.2 CBR分类的挑战
①找到一个好的相似性度量和组合解的合适的方法。
②索引训练案例,选择显著的特征和开发有效的索引技术。
③准确性和有效性之间的折衷随着存储的案例数量增大而演变。
参考文献:
1、蒋艳凰、赵强利 的《机器学习方法》中的第5章:基于事例推理的学习
2、基于案例推理法研究综述
3、《数据挖掘概念与技术:第三版》