专家系统学习

Posted hellobigorange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了专家系统学习相关的知识,希望对你有一定的参考价值。

一、专家系统基础知识

知识概述

知识是对于一个主题或者一个领域在理论或实践上的理解,也是所有已知的总和。
拥有某一部分知识的人称为专家,他们是所在组织中重要的人物。

知识表达技术-规则

任何规则都包括两个部分:IF部分和ELSE部分。IF部分是前项(前提或者条件),THEN部分是后项(结论或者行为)。
一般来说,前提之间可以使用关键词AND(合取)、OR(析取)或者两者混合使用。不过,最好在同一规则中避免使用合取和析取。
同时,结论也可以由多个从句组成。也就是说,从一个条件中可以得出多条结论。

基于规则的专家系统的结构

基于规则的专家系统由5个部分组成:知识库、数据库、推理引擎、解释设备和用户界面。
知识库包含解决问题相关的领域知识。在基于规则的专家系统中,知识用一组规则来表达。其具有IF(条件)THEN(行为)结构,当规则的条件被满足时,触发规则,继而执行行为。
数据库包含一组事实,用于匹配知识库中的IF(条件)。
推理引擎执行推理,专家系统由此找到解决方案。推理引擎链接知识库中的规则和数据库中的事实。
用户使用解释设备查看专家系统怎样得出解决方案的过程。
用户界面是实现用户(查询问题解决方案)和专家系统之间交流的途径。
其基本原理图如下:
在这里插入图片描述
衍生出来的模型如图所示:
在这里插入图片描述

前项链接和后项链接推理技术

前项链接,简单来说,就是已知条件,来推理结论。
比如:Y&D->Z
X&B&E->Y
A->X
可以看到由A可以得到X,由X和B、E可以得到Y,最后Y 和D可以得到Z;

后项链接,就是已知结论,来推出条件。
还是上面那个例子,我们已知结论Z,可以得到两个因子Y和D,然后又把Y 当做结论,找到因子X、B和E,最后又把X当做结论,得到条件A。

冲突消解

知识规则中,有可能多个规则之间是矛盾的,那么我们再匹配时应该如何选择呢?其实这里有很多方法可以遵循,比如:触发优先权最高的规则(每条规则都设置相应权重)、激发最具体的规则(依据是具体规则比一般规则处理更多的信息)。

元知识

在学习的而过程中,我们通过已有知识,再产生相应的知识,我们把再次产生的知识称为元知识。

总结

这就是基于规则的专家系统的一些简单理论知识,接下来就是要把这些过程应用到实践中,写相关代码,深入理解其中的原理以及执行过程。

二、基于python的动物识别专家系统

系统主要逻辑:

逻辑:
(1)用户输入已知事实—>点击推理
(2)获取输入的已知事实 加入 综合数据库DB
(3)获取规则库,将前提和结论分别存储在两个列表中命名为P和q,存在对应关系
(4)将前提和已知事实库进行匹配:
如果存在一条前提,全部都出现在已知事实中,那么至少可以得出一个结论。将此结论加入综合数据库,将推理过程进行标记。存在一个推理列表中,其中存的数字为推理出来的前提和结论下标。用于显示。
如果不存在这样的前提,就说明一条中间结论也推不出来,跳转(6)
(5)等循环完了,因为至少存在一个中间结论,所以直接输出推理过程和(中间或者最终)结论。
(6)提示用户什么也不能推出来,询问是否进行补充,如果选择是就回到主页面,如果选择否就关闭程序,跟用户拜拜。
界面设置:
框:输入事实的框,显示推理过程的框,显示结论的框,自动显示当前规则库的框,用来添加规则库的框。
按钮:点击进行推理的按钮,点击添加规则库并更新当前窗口的按钮
对话提示框:询问是否进行补充的框,跟用户拜拜的框。

界面:
在这里插入图片描述
在这里插入图片描述
知识库
R1: 如果 某动物有毛发(F1)则 该动物是哺乳动物(M1)
R2: 如果 某动物有奶(F2)则 该动物是哺乳动物(M1)
R3: 如果 某动物有羽毛(F3)则 该动物是鸟(M4)
R4: 如果 某动物会飞(F4),且下蛋(F5)则 该动物是鸟(M4)
R5: 如果 某动物吃肉(F6)则 该动物是食肉动物(M2)
R6: 如果 某动物有锋利的牙齿(F7),且有爪(F8),且眼睛盯着前方(F9)则 该动物是食肉动物(M2)第 10 页
R7: 如果 某动物是哺乳动物(M1),且有蹄(F10)则 该动物是有蹄类哺乳动物(M3)
R8: 如果 某动物是哺乳动物(M1),且反刍(F11)则 该动物是有蹄类哺乳动物(M3),且偶蹄类
R9: 如果 某动物是哺乳动物(M1),且是食肉动物(M2) ,且黄褐色(F12),且有暗班(F13)则 该动物是豹(H1)
R10:如果 某动物是哺乳动物(M1),且是食肉动物(M2),且黄褐色(F12),且有黑色条纹(F14)则 该动物是虎(H2)
R11:如果 某动物是有蹄类哺乳动物(M3),且有长脖(F15),且有长腿(F16),且有暗斑(F13)则 该动物是长颈鹿(H3)
R12:如果 某动物是有蹄类哺乳动物(M3),且有黑条纹(F14)
则 该动物是斑马(H4)
R13:如果 某动物是鸟(M4), 且不会飞(F17),且有长脖子(F15),且有长腿(F16),且是黑白色(F18)则 该动物是鸵鸟(H5)
R14:如果 某动物是鸟(M4),且不会飞(F17),且会游泳(F19), 且是黑白色(F18)则 该动物是企鹅(H6)
R15:如果 某动物是鸟(M4),且善飞(F20)则 该动物是信天翁(H7)

在这里插入图片描述

以上是关于专家系统学习的主要内容,如果未能解决你的问题,请参考以下文章

系统学习消息队列分享 怎样系统学习消息队列?

机器学习系统构建

Python 系统学习梳理_All

正确学习Linux系统的5个建议

机器学习基础---推荐系统

机器学习基础---推荐系统