更新时间:2024-05-08 17:34
专家系统是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,它能够应用人工智能技术和计算机技术,根据系统中的知识与经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题,简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。
专家系统是人工智能中最重要的也是最活跃的一个应用领域,它实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大突破。专家系统是早期人工智能的一个重要分支,它可以看作是一类具有专门知识和经验的计算机智能程序系统,一般采用人工智能中的知识表示和知识推理技术来模拟通常由领域专家才能解决的复杂问题。
20世纪60年代初,出现了运用逻辑学和模拟心理活动的一些通用问题求解程序,它们可以证明定理和进行逻辑推理。但是这些通用方法无法解决大的实际问题,很难把实际问题改造成适合于计算机解决的形式,并且对于解题所需的巨大的搜索空间也难于处理。1965年,E.A.费根鲍姆等人在总结通用问题求解系统的成功与失败经验的基础上,结合化学领域的专门知识,研制了世界上第一个专家系统dendral ,可以推断化学分子结构。20多年来,知识工程的研究,专家系统的理论和技术不断发展,应用渗透到几乎各个领域,包括化学、数学、物理、生物、医学、农业、气象、地质勘探、军事、工程技术、法律、商业、空间技术、自动控制、计算机设计和制造等众多领域,开发了几千个的专家系统,其中不少在功能上已达到,甚至超过同领域中人类专家的水平,并在实际应用中产生了巨大的经济效益。
专家系统的发展已经历了3个阶段,正向第四代过渡和发展。第一代专家系统(dendral、macsyma等)以高度专业化、求解专门问题的能力强为特点。但在体系结构的完整性、可移植性、系统的透明性和灵活性等方面存在缺陷,求解问题的能力弱。第二代专家系统(mycin、casnet、prospector、hearsay等)属单学科专业型、应用型系统,其体系结构较完整,移植性方面也有所改善,而且在系统的人机接口、解释机制、知识获取技术、不确定推理技术、增强专家系统的知识表示和推理方法的启发性、通用性等方面都有所改进。第三代专家系统属多学科综合型系统,采用多种人工智能语言,综合采用各种知识表示方法和多种推理机制及控制策略,并开始运用各种知识工程语言、骨架系统及专家系统开发工具和环境来研制大型综合专家系统。在总结前三代专家系统的设计方法和实现技术的基础上,已开始采用大型多专家协作系统、多种知识表示、综合知识库、自组织解题机制、多学科协同解题与并行推理、专家系统工具与环境、人工神经网络知识获取及学习机制等最新人工智能技术来实现具有多知识库、多主体的第四代专家系统。
专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取等6个部分构成。其中尤以知识库与推理机相互分离而别具特色。专家系统的体系结构随专家系统的类型、功能和规模的不同,而有所差异。
为了使计算机能运用专家的领域知识,必须要采用一定的方式表示知识。目前常用的知识表示方式有产生式规则、语义网络、框架、状态空间、逻辑模式、脚本、过程、面向对象等。基于规则的产生式系统是目前实现知识运用最基本的方法。产生式系统由综合数据库、知识库和推理机3个主要部分组成,综合数据库包含求解问题的世界范围内的事实和断言。知识库包含所有用“如果:〈前提〉,于是:〈结果〉”形式表达的知识规则。推理机(又称规则解释器)的任务是运用控制策略找到可以应用的规则。
知识库用来存放专家提供的知识。专家系统的问题求解过程是通过知识库中的知识来模拟专家的思维方式的,因此,知识库是专家系统质量是否优越的关键所在,即知识库中知识的质量和数量决定着专家系统的质量水平。一般来说,专家系统中的知识库与专家系统程序是相互独立的,用户可以通过改变、完善知识库中的知识内容来提高专家系统的性能。
人工智能中的知识表示形式有产生式、框架、语义网络等,而在专家系统中运用得较为普遍的知识是产生式规则。产生式规则以IF…THEN…的形式出现,就像BASIC等编程语言里的条件语句一样,IF后面跟的是条件(前件),THEN后面的是结论(后件),条件与结论均可以通过逻辑运算AND、OR、NOT进行复合。在这里,产生式规则的理解非常简单:如果前提条件得到满足,就产生相应的动作或结论。
推理机针对当前问题的条件或已知信息,反复匹配知识库中的规则,获得新的结论,以得到问题求解结果。在这里,推理方式可以有正向和反向推理两种。
正向链的策略是寻找出前提可以同数据库中的事实或断言相匹配的那些规则,并运用冲突的消除策略,从这些都可满足的规则中挑选出一个执行,从而改变原来数据库的内容。这样反复地进行寻找,直到数据库的事实与目标一致即找到解答,或者到没有规则可以与之匹配时才停止。
逆向链的策略是从选定的目标出发,寻找执行后果可以达到目标的规则;如果这条规则的前提与数据库中的事实相匹配,问题就得到解决;否则把这条规则的前提作为新的子目标,并对新的子目标寻找可以运用的规则,执行逆向序列的前提,直到最后运用的规则的前提可以与数据库中的事实相匹配,或者直到没有规则再可以应用时,系统便以对话形式请求用户回答并输入必需的事实。
由此可见,推理机就如同专家解决问题的思维方式,知识库就是通过推理机来实现其价值的。
人机界面是系统与用户进行交流时的界面。通过该界面,用户输入基本信息、回答系统提出的相关问题,并输出推理结果及相关的解释等。
综合数据库专门用于存储推理过程中所需的原始数据、中间结果和最终结论,往往是作为暂时的存储区。解释器能够根据用户的提问,对结论、求解过程做出说明,因而使专家系统更具有人情味。
知识获取是专家系统知识库是否优越的关键,也是专家系统设计的“瓶颈”问题,通过知识获取,可以扩充和修改知识库中的内容,也可以实现自动学习功能。
早期的专家系统采用通用的程序设计语言(如fortran、pascal、basic等)和人工智能语言(如lisp、prolog、smalltalk等),通过人工智能专家与领域专家的合作,直接编程来实现的。其研制周期长,难度大,但灵活实用,至今尚为人工智能专家所使用。大部分专家系统研制工作已采用专家系统开发环境或专家系统开发工具来实现,领域专家可以选用合适的工具开发自己的专家系统,大大缩短了专家系统的研制周期,从而为专家系统在各领域的广泛应用提供条件。
专家系统的基本结构如图所示,其中箭头方向为数据流动的方向。
专家系统的基本工作流程是,用户通过人机界面回答系统的提问,推理机将用户输入的信息与知识库中各个规则的条件进行匹配,并把被匹配规则的结论存放到综合数据库中。最后,专家系统将得出最终结论呈现给用户。
在这里,专家系统还可以通过解释器向用户解释以下问题:系统为什么要向用户提出该问题(Why)?计算机是如何得出最终结论的(How)?
领域专家或知识工程师通过专门的软件工具,或编程实现专家系统中知识的获取,不断地充实和完善知识库中的知识。
主要开发工具:Gensym G2, CLIPS,Prolog,Jess,MQL 4。
根据定义,专家系统应具备以下几个功能:
⑴存储问题求解所需的知识。
⑵存储具体问题求解的初始数据和推理过程中涉及的各种信息,如中间结果、目标、字母表以及假设等。
⑶根据当前输入的数据,利用已有的知识,按照一定的推理策略,去解决当前问题,并能控制和协调整个系统。
⑷能够对推理过程、结论或系统自身行为作出必要的解释,如解题步骤、处理策略、选择处理方法的理由、系统求解某种问题的能力、系统如何组织和管理其自身知识等。这样既便于用户的理解和接受,同时也便于系统的维护。
⑸提供知识获取,机器学习以及知识库的修改、扩充和完善等维护手段。只有这样才能更有效地提高系统的问题求解能力及准确性。
⑹提供一种用户接口,既便于用户使用,又便于分析和理解用户的各种要求和请求。
这里强调指出,存放知识和运用知识进行问题求解是专家系统的两个最基本的功能。
专家系统是一个基于知识的系统,它利用人类专家提供的专门知识,模拟人类专家的思维过程,解决对人类专家都相当困难的问题。一般来说,一个高性能的专家系统应具备如下特征:
⑴启发性。不仅能使用逻辑知识,也能使用启发性知识,它运用规范的专门知识和直觉的评判知识进行判断、推理和联想,实现问题求解。
⑵透明性。它使用户在对专家系统结构不了解的情况下,可以进行相互交往,并了解知识的内容和推理思路,系统还能回答用户的一些有关系统自身行为的问题。
⑶灵活性。专家系统的知识与推理机构的分离,使系统不断接纳新的知识,从而确保系统内知识不断增长以满足商业和研究的需要。
⑴按知识表示技术可分为:基于逻辑的专家系统、基于规则的专家系统、基于语义网络的专家系统和基于框架的专家系统。
⑵按任务类型可分为:
解释型:可用于分析符号数据,进行阐述这些数据的实际意义。
预测型:根据对象的过去和现在情况来推断对象的未来演变结果。
诊断型:根据输入信息来找到对象的故障和缺陷。
调试型:给出自己确定的故障的排除方案。
维修型:指定并实施纠正某类故障的规划。
规划型:根据给定目标拟定行动计划。
设计型:根据给定要求形成所需方案和图样。
监护型:完成实时监测任务。
控制型:完成实施控制任务。
教育型:诊断型和调试型的组合,用于教学和培训。
最初的专家系统乃人工智能之一个应用,但由于其重要性及相关应用系统之迅速发展,它已是信息系统的一种特定类型。专家系统一词系由“以知识为基础的专家系统(knowledge-based expert system)”而来,此种系统应用计算机中储存的人类知识,解决一般需要用到专家才能处理的问题,它能模仿人类专家解决特定问题时的推理过程,因而可供非专家们用来增进问题解决的能力,同时专家们也可把它视为具备专业知识的助理。由于在人类社会中,专家资源实相当稀少,有了专家系统,则可使此珍贵的专家知识获得普遍的应用。
近年来专家系统技术逐渐成熟,广泛应用在工程、科学、医药、军事、商业等方面,而且成果相当丰硕,甚至在某些应用领域,还超过人类专家的智能与判断。其功能应用领域概括有:
解释(Interpretation)-如测试肺部测试(如PUFF)。
预测(Prediction)-如预测可能由黑蛾所造成的玉米损失(如PLAN)。
诊断(Diagnosis)-如诊断血液中细菌的感染(MYCIN)。又如诊断汽车柴油引擎故障原因之CATS系统。
故障排除(Fault Isolation)-如电话故障排除系统ACE。
设计(Design)-如专门设计小型马达弹簧与碳刷之专家系统MOTORBRUSHDESIGNER。
规划(Planning)-就出名的有辅助规划IBM计算机主架构之布置,重安装与重安排之专家系统CSS,以及辅助财物管理之PlanPower专家系统。
监督(Monitoring)-如监督IBM MVS操作系统之YES/MVS。
除错(Debugging)-如侦查学生减法算术错误原因之BUGGY。
修理(Repair)-如修理原油储油槽之专家系统SECOFOR。
行程安排(Scheduling)-如制造与运输行程安排之专家系统ISA。又如 工作站(work shop)制造步骤安排系统。
教学(Instruction)-如教导使用者学习操作系统之TVC专家系统。
控制(Control)-帮助Digital Corporation计算机制造及分配之控制系统PTRANS。
分析(Analysis)-如分析油井储存量之专家系统DIPMETER及分析有机分子可能结构之DENDRAL系统。它是最早的专家系统,也是最成功者之一。
维护(Maintenance)-如分析电话交换机故障原因之后,及能建议人类该如何维修之专家系统COMPASS。
架构设计(Configuration)-如设计VAX计算机架构之专家系统XCON以及设计新电梯架构之专家系统VT等。
校准(Targeting)-例如校准武器如何工作
这里,我们以一个简单的“动物识别专家系统”为例,初步认识专家系统的工作机制及系统特点。该系统的知识库是一个产生式规则的集合,图2显示了其中的2条规则。从原则上来讲,规则之间相互独立,任何两条规则的“前件”一般都不能重复,也不具有包含关系。小型专家系统的规则可以是几条几十条,大型专家系统的规则可达上千条,像这个动物专家系统知识库的规则就只有六条。
现阶段国内外专家系统应用停留在相对狭义的以规则推理为基础的阶段,应用也更多针对的是实验室研究以及一些轻量级应用,远不能满足大型商业应用的需求,实现对实时智能推理以及大数据处理的需求。
专家系统的发展下一步的将以模型推理为主,以规则推理为辅,并切合商业应用需求,满足对实时以及大数据量处理的需求。
同时专家系统将朝更为专业化方向发展,针对具体方向性的需求提供针对性模型与产品,如基于因果有向图CDG的故障诊断模型,流程处理模型等。