《人工智能导论》 第7章 专家系统
专家系统
专家系统的产生与发展
- 第一阶段:初创期(20世纪60年代中期- 20世纪70年代初)
- DENDRAL系统(1968年,斯坦福大学费根鲍姆等人)——推断化学分子结构的专家系统
- MYCSYMA系统(1971年,麻省理工学院 )——用于数学运算的数学专家系统
- 特点
- 高度的专业化。
- 专门问题求解能力强。
- 结构、功能不完整。
- 移植性差。
- 缺乏解释功能。
- 第二阶段: 成熟期(20世纪70年代中期- 20世纪80年代初)
- MYCIN系统(斯坦福大学 )——血液感染病诊断专家系统
- PROSPECTOR系统(斯坦福研究所 )——探矿专家系统
- CASNET系统(拉特格尔大学):用于青光眼诊断与治疗。
- AM系统( 1981年,斯坦福大学):模拟人类进行概括、抽象和归纳推理,发现某些数论的概念和定理。
- HEARSAY系统(卡内基-梅隆大学)——语音识别专家系统
- 特点
- 单学科专业型专家系统。
- 系统结构完整,功能较全面,移植性好。
- 具有推理解释功能,透明性好。
- 采用启发式推理、不精确推理。
- 用产生式规则、框架、语义网络表达知识。
- 用限定性英语进行人-机交互。
- 第三阶段:发展期(20世纪80年代至今)
- 专家系统XCON(DEC公司、卡内基-梅隆大学 ):为 VAX计算机系统制订硬件配置方案。
- 专家系统开发工具:
- 骨架系统:EMYCIN、KAS、EXPERT 等。
- 通用型知识表达语言: OPS5 等。
- 专家系统开发环境:AGE 等。
- 我国研制开发的专家系统:
- 施肥专家系统(中国科学院合肥智能机械研究所)
- 新构造找水专家系统(南京大学)
- 勘探专家系统及油气资源评价专家系统(吉林大学)
- 服装剪裁专家系统及花布图案设计专家系统(浙江大学)
- 关幼波肝病诊断专家系统(北京中医学院)
专家系统的概念
专家系统的定义
专家系统是一种智能的计算机程序,它运用知识和推理来解决只有专家才能解决的复杂问题。是一类包含知识和推理的智能计算机程序。
专家系统的特点
- 具有专家水平的专业知识。
- 能进行有效的推理。
- 启发性。
- 灵活性。
- 透明性。
- 交互性。
专家系统与传统程序的比较:
-
编程思想:传统程序 = 数据结构+算法;专家系统 = 知识+推理。
-
传统程序:关于问题求解的知识隐含于程序中。
专家系统:知识单独组成知识库,与推理机分离。
-
处理对象: 传统程序:数值计算和数据处理;专家系统:符号处理。
-
传统程序:不具有解释功能。
专家系统:具有解释功能。
-
传统程序:产生正确的答案。
专家系统:通常产生正确的答案,有时产生错误的答案。
-
系统的体系结构不同。
专家系统的类型
- 解释:根据感知数据推理情况描述
- 诊断:根据观察结果推理系统是否有保障
- 预测:指导给定情况可能产生的后果
- 设计:根据给定的要求进行相应的设计
- 规划:设计动作
- 控制:控制整个系统的行为
- 监督:比较观察结果和期望结果
- 修理:执行计划来实现规定的补救措施
- 教学:诊断、调整、修改学生行为
- 调试:建议故障的补救措施
专家系统的工作原理
专家系统的一般结构
知识库
知识库(Knowledge Base)主要用来存放领域专家提供的有关问题求解的专门知识。知识库中的知识来源于知识获取机构,同时它又为推理机提供求解问题所需的知识。
- 知识表示方法的选择:要建立知识库,首先要选择合适的知识表达方法。常用一阶谓词逻辑、产生式、框架、模糊逻辑、状态空间、遗传编码、神经网络等知识表示方法。选择需要考虑四方面:
- 能充分表示领域知识
- 能充分有效地进行推理
- 便于对知识的组织维护和管理
- 便于理解与实现
- 知识库的管理:知识库管理系统负责对知识库中的知识进行组织、检索、维护等。专家系统中任何其他部分要与知识库发生联系,都必须通过该管理系统来完成。这样可实现对知识库的统一管理和使用。
推理机
推理机(Reasoning Machine)的功能是模拟领域专家的思维过程,控制并执行对问题的求解。它能根据当前已知的事实,利用知识库中的知识,按一定的推理方法和控制策略进行推理,直到得出相应的结论为止。推理机包括:
- 推理方法:确定性推理和不确定性推理
- 控制策略:主要指推理方法的控制及推理规则的选择策略,推理包括正向推理、反向推理和正反向混合推理。推理策略一般还与搜索策略有关。
推理机的性能与构造一般与知识的表示方法有关,但与知识的内容无关,这有利于保证推理机与知识库的独立性,提高专家系统的灵活性。
综合数据库
综合数据库(Global Database)又称动态数据库或黑板,主要用于存放初始事实、问题描述及系统运行过程中得到的中间结果、最终结果等信息。
- 记录了推理过程中的各种有关信息
- 为解释机构提供了回答用户咨询的依据。
综合数据库中还必须具有相应的数据库管理系统,负责对数据库中的知识进行检索、维护等。从计算机技术角度,知识库和综合数据库都是数据库。它们所不同的是:
- 知识库的内容在专家系统运行过程中是不改变的,只有知识工程师通过人机接口进行管理。
- 综合数据库在专家系统运行过程中是动态变化的,不仅可以由用户输入数据,推理的中间结果的存入也会改变其内容。
数据获取机构
知识获取(Knowledge Acquisition)是建造和设计专家系统的关键,也是目前建造专家系统的“瓶颈”。知识获取的基本任务是为专家系统获取知识,建立起健全、完善、有效的知识库,以满足求解领域问题的需要。
- 知识工程师负责从领域专家那里抽取知识,并用适合的方法把知识表达出来。
- 知识获取机构把知识转换为计算机可存储的内部形式,然后把它们存入知识库。在存储过程中,要对知识进行一致性、完整性的检测。
人机接口
人机接口(Interface)是专家系统与领域专家、知识工程师、一般用户之间进行交互的界面,由一组程序及相应的硬件组成,用于完成输入输出工作。
- 知识获取机构通过人机接口与领域专家及知识工程师进行交互,更新、完善、扩充知识库。
- 推理机通过人机接口与用户交互。
- 在推理过程中,专家系统根据需要不断向用户提问,以得到相应的事实数据。
- 在推理结束时会通过人机接口向用户显示结果。
- 解释机构通过人机接口与用户交互,向用户解释推理过程,回答用户问题。
解释机构
解释机构(Explanator)回答用户提出的问题,解释系统的推理过程。它跟踪并记录推理过程,当用户提出的询问需要给出解释时,它将根据问题的要求分别作相应的处理,最后把解答用约定的形式通过人机接口输出给用户。
知识获取的主要过程与模式
知识获取的过程
- 抽取知识:把蕴涵于知识源中的知识经识别、理解、筛选、归纳等抽取出来,以便用于建立知识库。
- 知识的转换:把知识由一种形式变换为另一种表示形式。
- 知识的输入:把某模式表示的知识经编辑、编译送入知识库
- 知识的检测:纠错
知识获取的模式
-
非自动知识获取:
-
自动知识获取:
-
半自动知识获取:自动知识获取是一种理想的知识获取方式,涉及人工智能的多个领域,尚处在研究阶段。例如模式识别、自然语言理解、机器学习等,对硬件亦有较高的要求。
知识发现与数据挖掘
知识发现与数据挖掘的概念
知识发现的全称是从数据库中发现知识(Knowledge Discovering from Database,KDD)。数据挖掘(Data Mining,DM)是从数据库中挖掘知识。KDD和DM的本质含义是一样的,只是知识发现的概念主要流行于人工智能和机器学习领域,而数据挖掘的概念则主要流行于统计、数据分析、数据库和管理信息系统领域。所以,现在有关文献中一般都把二者同时列出。知识发现和数据挖掘的目的就是从数据集中抽取和精化一般规律或模式。其涉及的数据形态包括数值、文字、符号、图形、图像、声音,甚至视频和Web网页等等。
知识发现的一般过程
- 数据准备
- 数据选取:确定目标数据,即操作对象,它是根据用户的需要从原始数据库中抽取的一组数据。
- 数据预处理:一般可能包括消除噪声、推导计算缺值数据、消除重复记录、完成数据类型转换等。
- 数据变换:消减数据维数,即从初始特征中找出真正有用的特征以减少数据开采时要考虑的特征或变量个数。
- 数据挖掘
- 确定挖掘的任务或目的是什么,如数据总结、分类、聚类、关联规则或序列模式等。
- 决定使用什么样的挖掘算法。同样的任务可以用不同的算法来实现,选择实现算法有两个考虑因素:
- 一是不同的数据有不同的特点,因此需要用与之相关的算法来挖掘;
- 二是用户或实际运行系统的要求,有的用户可能希望获取描述型的、容易理解的知识,而有的用户系统的目的是获取预测准确度尽可能高的预测型知识。
- 结果的解释评估
- 数据挖掘阶段发现的知识模式中可能存在冗余或无关的模式,所以还要经过用户或机器的评价。
- 若发现所得模式不满足用户要求,则需要退回到发现阶段之前,如重新选取数据,采用新的数据变换方法,设定新的数据挖掘参数值,甚至换一种挖掘算法。
- 由于KDD最终是面向人的,因此可能要对发现的模式进行可视化,或者把结果转换为用户易懂的另一种表示,如把分类决策树转换为“if—then”规则。
知识发现的任务
- 数据总结:对数据进行浓缩,给出它的紧凑描述。
- 概念描述:从学习任务相关的数据中提取总体特征。
- 分类:提出一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的一个。
- 聚类:根据数据的不同特征,将其划分为不同的类。包括统计方法、机器学习方法、神经网络方法和面向数据库的聚类方法等。
- 相关性分析:发现特征之间或数据之间的相互依赖关系。
- 偏差分析:寻找观察结果与参照量之间的有意义的差别。
- 建模:通过数据挖掘,构造出能描述一种活动、状态或现象的数学模型。
知识发现的方法
- 统计方法:从事物的外在数量上的表现去推断事物可能的规律性。常见的有回归分析、判别分析、聚类分析以及探索分析等。
- 粗糙集:粗糙集是具有三值隶属函数的模糊集,即是、不是、也许。常与规则归纳、分类和聚类方法结合起来使用。
- 可视化:把数据、信息和知识转化为图形等,使抽象的数据信息形象化。信息可视化也是知识发现的一个有用的手段。
- 传统机器学习方法:包括符号学习和连接学习。
知识发现的对象
-
数据库:当前研究比较多的是关系数据库的知识发现。
-
数据仓库:数据挖掘为数据仓库提供深层次数据分析的手段,数据仓库为数据挖掘提供经过良好预处理的数据源。数据仓库有四个基本特征:
- 数据仓库的数据是面向主题的。
- 数据仓库的数据是集成的。
- 数据仓库的数据是稳定的。
- 数据仓库的数据是随时间不断变化的。
-
Web信息:Web知识发现主要分内容发现和结构发现。内容发现是指从Web文档的内容中提取知识;结构发现是指从Web文档的结构信息中推导知识。
-
图像和视频数据:图像和视频数据中也存在有用的信息。比如,地球资源卫星每天都要拍摄大量的图像或录像。
专家系统的建立
-
问题识别阶段
在问题识别阶段,知识工程师和专家将确定问题的主要特点:
- 确定人员和任务,选定包括领域专家和知识工程师在内的参加人员,并明确各自的任务。
- 问题识别,描述问题的特征及相应的知识结构,明确问题的类型和范围。
- 确定资源,确定知识源、时间、计算设备以及经费等资源。
- 确定目标,确定问题求解的目标。
-
概念化阶段
概念化阶段的主要任务是揭示描述问题所需要的关键概念、关系和控制机制,子任务、策略和有关问题求解的约束。这个阶段需要考虑的问题有:
- 什么类型的数据有用,数据之间的关系如何?
- 问题求解时包括哪些过程,这些过程有哪些约束?③如何将问题划分为子问题?
- 信息流是什么?哪些信息是由用户提供的,哪些信息是需要导出的?
- 问题求解的策略是什么?
-
形式化阶段
在形式化过程中,三个主要的因素是假设空间、基本的过程模型和数据的特征。需要考虑以下问题:
-
把概念描述成结构化的对象,还是处理成基本的实体?
-
概念之间的因果关系或时空关系是否重要,是否应当显式地表示出来?
-
假设空间是否有限?
-
假设空间是由预先确定的类型组成的,还是由某种过程生成的?
-
是否应考虑假设的层次性?
-
是否有与最终假设相关的不确定性或其他的判定性因素?
-
是否考虑不同的抽象级别?
找到可以用于产生解答的基本过程模型是形式化知识的重要一步。过程模型包括行为和数学的模型。如果专家使用一个简单的行为模型,对它进行分析就能产生很多重要的概念和关系。数学模型可以提供附加的问题求解信息,或用于检查知识库中因果关系的一致性。在形式化知识中应当考虑下述问题:
- 数据是不足的、充足的还是冗余的?
- 数据是否有不定性?
- 对数据的解释是否依赖于出现的次序?
- 获取数据的代价是多少?
- 数据是如何得到的?
- 数据的可靠性和精确性如何?
- 数据是一致的和完整的吗?
-
-
实现阶段
在形式化阶段,已经确定了知识表示形式和问题的求解策略,也选定了构造工具或系统框架。在实现阶段,要把前一阶段的形式化知识变成计算机软件,即要实现知识库、推理机、人机接口和解释系统。
在建立专家系统的过程中,原型系统的开发是极其重要的步骤之一。对于选定的表达方式,任何有用的知识工程辅助手段(如编辑、智能编辑或获取程序)都可以用来完成原型系统知识库。另外,推理机应能模拟领域专家求解问题的思维过程和控制策略。
-
测试阶段
这一阶段的主要任务是通过运行实例评价原型系统以及用于实现它的表达形式,从而发现知识库和推理机的缺陷。通常导致性能不佳的因素有如下三种:
-
输入输出特性,即数据获取与结论表示方法存在缺陷。
-
推理规则有错误、不一致或不完备。
-
控制策略有问题,不是按专家采用的“自然顺序”解决问题。
专家系统必须先在实验室环境下进行精化和测试,然后才能够进行实地领域测试。在测试过程中,实例的选择应照顾到各个方面,要有较宽的覆盖面,即要涉及典型的情况,也要涉及边缘的情况。测试的主要内容有:
- 可靠性。
- 知识的一致性。
- 运行效率。
- 解释能力。对解释能力的检测主要从两个方面进行:
- 一是检测它能回答哪些问题,是否达到了要求;
- 二是检测回答问题的质量,即是否有说服力。
- 人机交互的便利性。
对人机接口的测试主要由最终用户来进行。根据测试的结果,应对原型系统进行修改。测试和修改过程应反复进行,直到系统达到满意的性能为止。
-