Board logo

标题: 浅谈专家系统 [打印本页]

作者: wantcm     时间: 2008-1-18 21:05    标题: 浅谈专家系统

微点的宣传材料中重点注明了这么一句话:
首创动态仿真反病毒专家系统
很多人看了后觉得莫名其妙,这个“专家系统”到底是什么?在此,我为大家粗浅的描述解答一下。
1.什么是专家系统

(1)专家系统的概念
   所谓“专家”,一般都拥有某一特定领域的大量知识,以及丰富的经验。在解决问题时,专家们通常拥有一套独特的思维方式,能较圆满地解决一类困难问题,或向用户提出一些建设性的建议等。
  专家系统(Expert System)是人工智能最重要的应用之一,是一个具有智能特点的计算机程序,它的智能化主要表现为能够在特定的领域内模仿人类专家思维来求解复杂问题。因此,专家系统必须包含领域专家的大量知识,拥有类似人类专家思维的推理能力,并能用这些知识来解决实际问题。例如,一个医学专家系统就能够像真正的专家一样,诊断病人的疾病,判别出病情的严重性,并给出相应的处方和治疗建议等。

      专家系统应用(Expert System Application)是针对实际领域,建造专家系统,用来辅助或代替领域专家解决实际问题。专家系统是人工智能的重要分支,它是人工智能学者从探讨一般思维规律方法走向以专门知识信息处理为中心的转折点。目前,专家系统的应用几乎渗透到各行各业。


(2)专家系统的构造

      专家系统的基本结构如下图所示,其中箭头方向为数据流动的方向。专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取等6个部分构成。

知识库用来存放专家提供的知识。专家系统的问题求解过程是通过知识库中的知识来模拟专家的思维方式的,因此,知识库是专家系统质量是否优越的关键所在,即知识库中知识的质量和数量决定着专家系统的质量水平。一般来说,专家系统中的知识库与专家系统程序是相互独立的,用户可以通过改变、完善知识库中的知识内容来提高专家系统的性能。

      人工智能中的知识表示形式有产生式、框架、语义网络等,而在专家系统中运用得较为普遍的知识是产生式规则。产生式规则以IF…THEN…的形式出现,就像BASIC等编程语言里的条件语句一样, IF后面跟的是条件(前件),THEN后面的是结论(后件),条件与结论均可以通过逻辑运算AND、OR、NOT进行复合。在这里,产生式规则的理解非常简单:如果前提条件得到满足,就产生相应的动作或结论。

     
例如,在“动物识别”专家系统中有这样一条规则:
IF 能做单腿跳吗 = 否 AND

         在苏格兰吗 = 是 AND

         高度 = 大

THEN 动物 = 马

      在这条规则当中,IF后面的前件中包含三个条件,只有三个条件都得到了满足,才能得出该动物是“马”。反之就得不出这个结论。产生式专家系统的知识库中包含了大量的规则,换言之,这里的知识库就是一个规则集。

      推理机针对当前问题的条件或已知信息,反复匹配知识库中的规则,获得新的结论,以得到问题求解结果。在这里,推理方式可以有正向和反向推理两种。正向推理是从前件匹配到结论,反向推理则先假设一个结论成立,看它的条件有没有得到满足。由此可见,推理机就如同专家解决问题的思维方式,知识库就是通过推理机来实现其价值的。

      人机界面是系统与用户进行交流时的界面。通过该界面,用户输入基本信息、回答系统提出的相关问题,并输出推理结果及相关的解释等。
      也许对于用户来说某些解释是多余的,不过对于开发人员来说这是十分重要的。这和通常的语言中的跟踪调试有些类似。当系统没有按照预期的效果执行的时候,开发人员可以根据解释研究错误的产生原因。知识工程师也可以根据解释从而设计出更加贴近用户的知识库。

      综合数据库专门用于存储推理过程中所需的原始数据、中间结果和最终结论,往往是作为暂时的存储区。解释器能够根据用户的提问,对结论、求解过程做出说明,因而使专家系统更具有人情味。

      知识获取是专家系统知识库是否优越的关键,也是专家系统设计的“瓶颈”问题,通过知识获取,可以扩充和修改知识库中的内容,也可以实现自动学习功能。

[ Last edited by wantcm on 2008-1-18 at 21:47 ]
作者: wantcm     时间: 2008-1-18 21:06
2、专家系统的特点

      (1)为解决特定领域的具体问题,除需要一些公共的常识,还需要大量与所研究领域问题密切相关的知识;
      (2)一般采用启发式的解题方法;
      (3)在解题过程中除了用演绎方法外,有时还要求助于归纳方法和抽象方法;
      (4)需处理问题的模糊性、不确定性和不完全性;
      (5)能对自身的工作过程进行推理(自推理或解释);
      (6)采用基于知识的问题求解方法;
      (7)知识库与推理机分离。

[ Last edited by wantcm on 2008-1-18 at 21:12 ]
作者: wantcm     时间: 2008-1-18 21:06
3、专家系统应用的领域  

      最初的专家系统乃人工智能之一个应用,但由于其重要性及相关应用系统之迅速发展,它已是信息系统的一种特定类型。专家系统一词系由’’以知识为基础的专家系统(knowledge-based expert system)’’而来,此种系统应用计算机中储存的人类知识,解决一般需要用到专家才能处理的问题,它能模仿人类专家解决特定问题时的推理过程,因而可供非专家们用来增进问题解决的能力,同时专家们也可把它视为具备专业知识的助理。由于在人类社会中,专家资源实相当稀少,有了专家系统,则可使此珍贵的专家知识获得普遍的应用。

      近年来专家系统技术逐渐成熟,广泛应用在工程、科学、医药、军事、商业等方面,而且成果相当丰硕,甚至在某些应用领域,还超过人类专家的智能与判断。其功能应用领域概括有:

      解释(Interpretation)-如测试肺部测试(如PUFF)。
      预测(Prediction)-如预测可能由黑蛾所造成的玉米损失(如PLAN)。
      诊断(Diagnosis)-如诊断血液中细菌的感染(MYCIN)。又如诊断汽车柴油引擎故障原因之CATS系统。
      故障排除(Fault Isolation)-如电话故障排除系统ACE。
      设计(Design)-如专门设计小型马达弹簧与碳刷之专家系统MOTOR  BRUSH  DESIGNER。
      规划(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)-例如校准武器准心之专家系统BATTLE。

[ Last edited by wantcm on 2008-1-18 at 21:13 ]
作者: wantcm     时间: 2008-1-18 21:08
专家系统的工作过程

      专家系统的基本工作流程是:
获得问题,可以是用户通过人机界面提交给系统的提问,也可以是测量仪器测得的数据,
分析处理问题,推理机将用户输入的信息或者探测设备获得的数据与知识库中各个规则的条件进行匹配,并把被匹配规则的结论存放到综合数据库中。
解决问题,最后,专家系统将得出最终结论呈现给用户。

[ Last edited by wantcm on 2008-1-18 at 21:18 ]
作者: wantcm     时间: 2008-1-18 21:09
5、未来的专家系统  

      受制于技术水平,目前的专家系统发展存在着一些限制,在未来的年代中,许多今日专家系统缺失将会被改善,相信未来专家系统应该继续研究的项目有:

      具有处理常识的能力;
      发展深层的推论系统;
      不同层次解释的能力;
      使专家系统具有学习的能力;
      分布式专家系统;
      轻易获取与更新知识的能力。

      未来发展的专家系统,能经由感应器直接由外界接受资料,也可由系统外的知识库获得资料,在推理机中除推理外,上能拟定规划,仿真问题状况等。知识库所存的不只是静态的推论规则与事实,更有规划、分类、结构模式及行为模式等动态知识。

[ Last edited by wantcm on 2008-1-18 at 21:20 ]
作者: wantcm     时间: 2008-1-18 21:21
了解了“专家系统”的一般概念后,对比分析下微点的动态仿真反病毒专家系统。
1.获得问题:微点把获得问题的人机交互部分省略了,“获得问题”由微点自带的系统检测程序执行。微点的系统检测程序对系统的变化,对软件的行为进行监测并把获得的具体参数反馈给解释器。
2.分析问题:解释器获得监控程序反馈的系统参数后和内置的病毒行为规则库对比分析,举个例子:
IF 能注入系统进程么 = 否 AND
   生成衍生文件么= 是 AND
         试图连接网络下载文件么 = 是 AND
   修改注册表么 = 是 AND
   接受外部指令么= 是 AND
THEN 程序 = downloader类木马
3.解决问题:解释器分析后如果认为某个程序可疑,则拦截该程序,并弹出报警提示框。如果解释器分析后发现无问题,则不拦截也不提示。

参考资料:
http://www.itisedu.com/phrase/200604230850085.html
http://www.chinaai.org/Article_Show.asp?ArticleID=335
http://www.chinaai.org/Article_Show.asp?ArticleID=322

[ Last edited by wantcm on 2008-1-18 at 22:09 ]
作者: Tips     时间: 2008-1-26 20:33
这么好的帖竟然没人顶= =....
实在太谢谢斑竹的解释了!
作者: lanjiebin87     时间: 2008-1-26 20:36
顶了




欢迎光临 微点交流论坛 (http://bbs.micropoint.com.cn/) bbs.micropoint.com.cn