专家系统应用分析与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[文档标题]
2013年6月22日
人工智能专家系统应用设计分析
【摘要】人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法。
技术
及应用系统的一门新的技术科学。
该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
其中专家系统是一种模拟人类专家解决领域问题的计算机程序系统。
它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,求解需要专家才能解决的困难问题。
【关键词】计算机,人工智能,专家系统
引言
人工智能(Artificial Intelligence) ,英文缩写为AI。
它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
从基础理论的角度出发,其研究基本内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。
人工智能系统的开发和应用,已为人类创造出可观的经济效益,专家系统就是一个例子。
随着计算机系统价格的继续下降,人工智能技术必将得到更大的推广,产生更大的经济效益。
专家系统(expert system)是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的方法来处理该领域问题。
也就是说,专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题,简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。
专家系统属于人工智能的一个重要发展分支,并且应用于数学、物理、医疗、军事、地质勘探、气象、农业、法律、教学、化工、机械、艺术以及计算机科学本身,甚至渗透到政治、经济、军事等重大决策部门,产生了巨大的经济效益和社会效益。
现在,专家系统已成为人工智能领域中最活跃、最受重视的领域。
[1].[2]
一、专家系统
1.1 专家系统的特点
(1). 具有专家水平的专业知识:专家系统中的知识按其在问题求解中的作用可分为三个层次,既数据级、知识库级、控制级。
数据级知识是指具体问题所提供的初始事实及在问题求解过程中所产生的中间结论、最终结论。
数据级知识通常存放与数据库中。
知识库知识是指专家的知识。
这一类知识是构成专家系统的基础。
控制级知识也称为元知识,是关于如何应用前两种知识的知识,如在问题求解中的搜索策略、推理方法等。
具有专家专业水平是专家系统的最大特点。
专家系统具有的知识越丰富,质量越高,解决问题的能力就越强。
(2). 能进行有效的推理:专家系统要利用专家知识来求解领域内的具体问题,必须有一
个推理机构,能根据用户提供的已知事实,通过应用知识库中的知识,进行有效的推理,以实现问题的求解。
(3). 启发性:专家系统能利用经验的判断知识来对求解的问题作出多个假设。
依据某些条件选定一个假设,是推理继续进行。
(4). 透明性:专家系统能够解释推理过程和回答用户提出的问题。
(5). 灵活性:专家系统的知识库与推理机制既相互联系,又相互独立。
使系统易于扩充,具有较强的灵活性。
(6). 交互性:专家系统一般都是交互式系统,具有较好的人机界面。
一方面它需要与领域专家和知识工程师进行对话以获取知识,另一方面它也需要不断地从用户处获得所需的已知事实并回答用户的询问。
1.2 专家系统的一般结构
专家系统的结构是指专家系统各组成部分的构造方法和组织形式。
专家系统一般包括人机接口、推理机、知识库、动态数据库、知识获取机构和解释机构六部分。
各部分的关系如图1所示。
图1 专家系统的一般结构
1.3 专家系统的类型
若按专家系统的特性及功能分类,专家系统可分为10类,如下:
1、解释型专家系统:根据感知数据,经过分析、推理,从而给出相应解释。
2、诊断型专家系统:根据取得的现象、数据或事实推断出系统是否有故障,并能找出产生故障的原因,给出排除故障的方案。
3、预测型专家系统:根据过去和现在的信息推断可能发生和出现的情况。
如气象预报、人口预测、水文预报、经济形势预测等。
4、设计型专家系统:根据给定的产品要求设计产品的一类系统。
5、规划型专家系统:能按给定目标拟定总体规划、行动计划、运筹优化等,适用于机器人动作控制、工程规划、军事规划、城市规划、生产规划等。
6、控制型专家系统:能根据具体情况,控制整个系统的行为,适用于对各种大型设
及系统进行控制。
7、监督型专家系统:能完成实时的监控任务,并根据监测到的现象做出相应的分析和处理。
8、修理型专家系统:用于制定排除某类故障的规划并实施排除。
9、教学型专家系统:适用于辅助教学,并能根据学生在学习过程中所产生的问题进行分析、评价、找出错误原因,有针对性地确定教学内容或采取其他有效的教学手段。
10、调试型专家系统:能根据相应的标准检测被检测对象存在的错误,并能从多种纠错方案中选出适用于当前情况的最佳方案,排除错误。
1.4 专家系统的开发过程
1.4.1 项目管理
从大的方面来讲,专家系统的开发依赖于所提供的的资源。
和别的项目一样,开发业依赖于组织和管理。
项目管理包括下列部分——事实上,项目管理已成为专家系统方法的主题:
◆活动管理
计划
确定活动内容
规定活动的优先次序
资源需求
阶段目标
持续时间
责任
进度
规定开始和结束时间
解决同等优先权任务之间的冲突
记事
监督项目性能
分析
分析计划、进度和已记事的活动
◆产品配置管理
产品管理
管理产品不同版本
变更管理
管理变更建议及其影响评估
◆资源管理
预测资源需求
获取资源
规定合理使用资源的责任
提供紧要资源以减少瓶颈
对于专家系统的开发来讲,活动就是建造系统的工作,下图从系统所经步骤的角度给出了开发一个系统所需的高层活动。
1.4.2 详细生命周期模型
一个大型高质量专家系统,有很多因素都必须考虑。
对于那些不打算作为一般用途的小型研究原型来说,并非所有任务或每个阶段都是必须的。
不过,又有多少设计作为个人或研究用途开发的软件获得许可,进入了一般用途呢?
1.4.
2.1 计划
计划阶段的目的在于产生一个专家系统开发的正式工作计划(work plan),该工作计划是用来指导和评估开发的一套文档。
下图列出了该阶段的任务。
可行性研究快速原型
精炼系统(α-测试)
现场测试(β-测试)
商业化系统
维护和升级
说明项目可行的论证报告
快速建立专家系统模型来证明设想、激发热情和加强高层管理人员的印象 由知识工程师和专家通过现实问题在实验室验证系统 挑选一般的用户来测试系统 证实与测试 培训 用户文档 通过电话/电子邮件提供快捷用户支持 修补漏洞
可行性分析是生命周期中最重要的任务。
它必须回答这个项目是否值得做以及相应的选用专家系统是否合适。
这两个问题的答案决定了项目是否应用专家系统方法进行。
可行性分析设计许多因素,正如上图中讨论的那样,这些因素包括选择一个合适的专家系统问题领域、成不和收益问题等等。
1.4.
2.2 知识定义
知识定义阶段(Knowledge definition stage)的目的是定义专家系统的知识需求,包括下面的连个主要任务:
1.知识来源鉴别与选择
2.知识获取、分析与提炼
每个主要任务均由其他任务组成。
表中描述了知识来源鉴别与选择的任务。
知识获取任务(Knowledge acquisition task)、知识分析任务(Knowledge analysis task)和知识提取任务(Knowledge extraction task)的主要目的是产生和验证系统所需要的知识,从知识被确定基线开始,它应是正确的和合适的以便下阶段的知识设计。
除了常用的访问专家方法外,其他一些方法如搜集网(Repertory grid)或者自创理论(Personal construct theroy)也可用于实现知识的自动获取。
1.4.
2.3 知识设计
知识设计阶段(Knowledge design stage)的目的是产生专家系统的详细设计。
该阶段包括两个主要任务:
1.知识定义
2.详细设计
表中描述了知识定义的任务。
明确事实结构的基本思想便于优化设计。
例如,像“价格10”这样的事实本身意义并不明确。
“10”代表什么呢?如果在事实中含有附加信息,如“价格10”或者更进一步,“黄金价格10”,那么黄金价格就是有意义的。
注意事实的这种形式是传统的对象——属性——值形式,因此方便人们阅读与理解。
CLIPS通过规则的自定义模板结构以及对象机制支持这种形式。
1.4.
2.4 编码与校验
表中描述了编码与校验阶段(Code and checkout stage),它从实际的代码实现开始。
这个阶段结束于测试准备复查(Test readiness review),测试准备复查决定专家系统是否为下一阶段的知识验证做好了准备。
1.4.
2.5 知识验证
知识验证阶段(Knowledge verification stage)的目的是决定系统的正确性、完备性和一致
性。
该阶段分为两个主要任务:
1.正式测试
2.测试分析
表中描述了知识验证阶段的正式测试任务(Formal test task)。
测试分析任务(Test analysis task)如下表所示。
测试分析希望解决下面主要问题:
1.不正确答案
2.不完整答案
3.不一致答案
并决定问题是出自规则、推理链和不确定性,还是这三个因素的组合。
如果问题不是出在专家系统,那么就得分析专家系统工具软件的漏洞。
1.4.
2.6 系统评估
正如下表所描述的那样,系统开发生命周期的最后一个阶段是系统评估阶段(System evaluation stage)。
该阶段的目的是总结从改进和完善建议中学到了什么。
由于专家系统的建立是一个反复过程,因此随着新知识的增加,系统评估阶段所形成的报告,常常作为描述系统新功能的中期报告。
但是,系统新功能必须通过本身验证,而且是作为系统原有知识的一部分。
也就是说,必须在系统所有知识合取的情况下实施系统验证,而不仅仅是对新知识。
此外,每当这一阶段,专家系统都应进行实而不是等到最后一次反复。
目前,有关知识库的自动验证系统也正在研究中。
[3].[4].[5].[6]
二、实际应用
上边谈了很多关于专家系统的理论知识,未免有些抽象,下面通过介绍一个专家系统的
具体实例来对它达到更好的认识。
这个专家系统是图书馆参考服务专家系统,以下就它的建立进行说明。
2.1 图书馆参考服务专家系统的建构
参考服务专家系统的建构分为以下四个部分:
2.1.1 确立服务的范围、流程与相关知识
建立一个参考服务专家系统,首要的步骤即是确立服务的范围,列出清晰的作业步骤,并找出相关的知识与概念,如此才能建立出精确、完整的知识库与推论器。
图书馆必须确认图书馆中那些工作是可以由专家系统来负责进行的。
馆员必须要将问题分为数类,如必须花费大量时间的问题、令人厌烦的问题、经常重复的问题、馆员较喜欢处理的问题等。
图书馆参考服务专家系统应提供何程度的服务,并无一定的标准,端赖图书馆想要使专家系统发挥何种效益而定。
每个图书馆的服务宗旨不同,参考服务的表现不同,当然专家系统中所包含的数据及问题的类型均有差异,不过一般来说,大致可分为三种型态:启发式,中介式,深入式。
2.1.2 知识的萃取
知识的粹取可取材自不同的地方,除了人类专家的知识之外,如相关的教科书、手册、报告、数据库等都可以成为知识的来源。
此程序通常是由知识工程师来主导进行,与专家洽谈,询问相关的问题以及解决的方式。
因此,由于专家知识是专家系统的主要内涵,知识工程师必须尽可能不借持个人的知识作主观的判断解释,主动询问或导引专家,并在两者之间形成一个良好的沟通模式,才能使知识的粹取顺利进行。
2.1.3 知识的呈现
知识取得后,接着是如何将知识予以结构化。
下列有几种表示专家知识的方法:
法则:法则是最常用表示专家知识的方法,其标准的程序架构为「若-则」(If-then),即评估一个情况,若状况为真,则采取行动。
参考服务可以藉由拟订一些法则来解决一些推论性问题,举例如下:
专家系统内法则的数量与程度比传统程序多上许多,而传统程序大概仅有50条到100条法则,而专家系统常具备数百至数千条法则。
法则可以依据个别的需求将其作不同的的定义,因此提供相文件大的弹性,可以用来处理的不确定状况。
框架:知识框架是组织知识的一种数据结构,运用对象导向的方式涵盖特定对象的所有知识。
每一个特定对象都包含了一个以上的属性,称为Slots,而每个性又有一至多个属性值,或事些设定的合理的范围,称为Facets。
举例来说,我们可以将每个书给予一个框架。
语意网络:语意网络是由由多个代表概念的点(Nodes)及连接点与点之间的弧(Arcs)所组成的一个网络。
如图3所示,我们可以透过它将书藉与其它相关要素之间相互连结的关系图架构起来。
图3 语意网络架构范例
2.1.4 系统的发展要素
系统的发展要素不外乎发展工具与人员的运用二方面,兹分述如下:
1.发展工具
在发展参考服务专家系统时,最好先建立一个雏型化的系统,测试建立系统的不同方式,以发现最好的解决方案。
专家系统一般可利用程序语言或专家系建构工具来加以开发:
(1)程序语言
符号运算程序语言:此种程序语言是专门为人工智能与专家系统而开发的,其中以
LISP与PROLOG最广被应用。
一般高阶程序语言:如C、Pascal、Fortran等,通常适用于科学、数学及统计方面。
由于这些程序语言本来就不是为专家系统设计,所以利用它们来开发专家系统需花
费较多的时间与金钱成本。
一般来说,程序语言的设计较为费时,但能提供专家系统建构者较大的弹性,较能设计出符合解决问题的专家系统。
(2) 专家系统建构工具(Shell):专家系统建构工具又称为专家系统骨架,是一种亲和性相当高的发展环境,非常容易产制使用者接口,快速表示知识库以及控制管理搜寻数据的策略,可视为发展专家系统的软件包。
因此即使不是计算机专家,亦可以透过它来开发专家系统。
专家系统建构工具基于简单好用的考量,大多是采法则模式,发展起来较迅速,但可能无法完全适用于不同的图书馆情况与特定的作业,也无法开发出较复杂的知识库和推论器。
2. 人员的运用
图书馆在开发参考服务专家系统时,虽然大部分建构工作的技术部分主要是由知识工程师与程序设计师完成的,但馆员在整个过程中亦是举足轻重的,必须参与整个开发的作业,以使建构出来的系统确能符合所需。
馆员可以依其能力,及与其它专家合作的程度,适时地扮演以下角色:
1)作为信息资源的专家:馆员提供知识工程师图书馆的现况及需求等资料,或协助其
寻找、了解图书馆学领域中的相关信息。
2)作为协调者:计划群组常很大,相互之间的协调是有些困难的。
馆员可以作为一个
居中的领导者或沟通协调者。
3)作为信息中介者:馆员可以作为使用者与知织工程师间的中介者,例如将不相关的
信息过筛、区别相似的资源等。
4)作为知识的工程师:具有相关学科背景或能力的馆员,不妨可以加入技术开发的阵
容,作为负责发展专家系统团队的一部分。
5)进行使用研究:有大部分的专家系统不是无法适应真实世界就是不能使用,除了技
术上的问题之外,有许多原因是在于系统没有深入地考虑到使用者的行为模式、喜
好与习惯等层面,因此,馆员应在系统发展前进行使用研究的工作,以作为系统发
展中考量的基本要素。
6)进行与外部资源的连结:馆员可以负责规划进行专家系统与外部资源的连结工作,
如其它图书馆、光盘数据库、在线公用目录等,使专家系统成为一个整合性的透明
系统(Transparent System)。
[7].[8]
三、现状与发展前景
专家系统运用于医疗、军事、地质勘探、教学、化工等领域,产生了巨大的经济效益和社会效益。
但与此同时,专家系统在开发使用中也存在着一下缺点:
1.知识获取的“瓶颈”。
2.另一种知识获取的困难就是多个领域专家的知识之间相互矛盾的处理。
3.知识“窄台阶”。
4.推理能力弱。
5.智能水平低。
以上种种都是专家系统发展中存在着的一些限制,在未来的年代中,许多今日专家系统缺失将会被改善,相信未来专家系统应该继续研究的项目有:具有处理常识的能力;发展深层的推论系统;不同层次解释的能力;使专家系统具有学习的能力;分布式专家系统;轻易获取与更新知识的能力。
未来发展的专家系统,能经由感应器直接由外界接受资料,也可由系统外的知识库获得资料,在推理机中除推理外,上能拟定规划,仿真问题状况等。
知识库所存的不只是静态的推论规则与事实,更有规划、分类、结构模式及行为模式等动态知识。
参考文献
[1] 王永庆. 人工智能原理与方法[M]. 西安:西安交通大学出版社,1998.
[2] 敖志刚. 人工智能与专家系统导论[M]. 合肥:中国科技大学出版社,2002.
[3] 王万良. 人工智能及其应用[M]. 北京高等教育出版社,2008.6
[4] (美)Joseph Giarratano Gary Riley著. 陈忆群刘星成译. 专家系统原理与编程.北京:机械工业出版社,2006
[5] 杨学山. 专家系统及其在管理中的应用. 北京:清华大学出版社,1991
[6] 林晓瑞. 专家系统原理与实践北京:清华大学出版社
[7] 福西斯(英)著. 徐光佑周曼丽译. 专家系统原理和实例研究北京:中国铁道出版社
[8] 王万森. 人工智能原理及其应用北京:电子工业出版社。