nlp学习--专家系统总结-专家系统基础

nlp学习–专家系统总结-专家系统基础
专家系统发展 :

人工智能系统的四个时代:第一个时代50年代人工智能的兴起和冷落;第二个时代60年代末到70年代初 专家系统的出现 人工智能出现了一次高潮;第三时代80年代末 ,计算机发明推动了人工智能的发展 第四个时代80年代末神经网络的兴起推动了发展 第五个时代90年代至今概率统计的方法机器学习把ai推向了一个新的高峰

专家系统又称符号主义 基于概率的又称是连接主义 ,专家系统目前价值很大 金融风控类应用目前还是比较典型的使用领域;专家系统核心是规则 而规则强依赖于领域内专家

专家系统定义:

专家系统是一种模型和相关程序,在特定领域显示出人类专家相关的解决问题的能力;利用知识和推理来解决决策问题;知识主要是定义规则,而推理是在已有规则基础上发现新知识 与传统计算机相比专家系统 = 推理引擎 + 知识, 计算机程序程序 = 数据结构+算法 ;推理方式依赖规则 技术源于专家系统;全球第一个专家系统叫做DENDRAL, 由斯坦福大学学者开发与70年代;目前主要应用:金融风控领域、知识图谱领域

专家系统的组成

专家系统的基本结构:专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取等6个部分构成.

知识库是问题求解所需要的领域知识的集合,包括基本事实、规则和其他有关信息。知识的表示形式可以是多种多样的,包括框架、规则、语义网络等等。知识库中的知识源于领域专家,是决定专家系统能力的关键,即知识库中知识的质量和数量决定着专家系统的质量水平。知识库是专家系统的核心组成部分。一般来说,专家系统中的知识库与专家,系统程序是相互独立的,用户可以通过改变、完善知识库中的知识内容来提高专家系统的性能。

推理机是实施问题求解的核心执行机构,它实际上是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中。推理机的程序与知识库的具体内容无关,即推理机和知识库是分离的,这是专家系统的重要特征。它的优点是对知识库的修改无须改动推理机,但是纯粹的形式推理会降低问题求解的效率。将推理机和知识库相结合也不失为一种可选方法。

知识获取负责建立、修改和扩充知识库,是专家系统中把问题求解的各种专门知识从人类专家的头脑中或其他知识源那里转换到知识库中的一个重要机构。知识获取可以是手工的,也可以采用半自动知识获取方法或自动知识获取方法。知识的获取包括知识的提取、收集、建模和严验证。获取、分析、建模技术有:协议生成技术、协议分析技术(充当基于协议技术和知识建模技术之间的桥梁作用)、层次生成技术(用于构建分类法或其他层次结构)、基于矩阵的技术、排序技术(用于捕获比较和排序的方式)、有限信息和约束处理任务、基于图的技术等

人机界面是系统与用户进行交流时的界面。通过该界面,用户输入基本信息、回答系统提出的相关问题。系统输出推理结果及相关的解释也是通过人机交互界面。

综合数据库也称为动态库或工作存储器,是反映当前问题求解状态的集合,用于存放系统运行过程中所产生的所有信息,以及所需要的原始数据,包括用户输入的信息、推理的中间结果、推理过程的记录等。综合数据库中由各种事实、命题和关系组成的状态,既是推理机选用知识的依据,也是解释机制获得推理路径的来源。

解释器用于对求解过程做出说明,并回答用户的提问。两个最基本的问题是“why”和“how”。解释机制涉及程序的透明性,它让用户理解程序正在做什么和为什么这样做,向用户提供了关于系统的一个认识窗口。在很多情况下,解释机制是非常重要的。为了回答“为什么”得到某个结论的询问,系统通常需要反向跟踪动态库中保存的推理路径,并把它翻译成用户能接受的自然语言表达方式。

专家系统流程:

通过对某个领域熟悉专家把领域内知识传递给工程师,由工程师把这些知识以能够存储到计算机的形态传递给系统并保存于知识库,由推理引擎通过给定的知识推理出新的知识,也就是所谓用户想要的形态,

专家系统有点:

处理不确定性能力

通常知识是不完善的,这导致了不确定性,要处理不确定性一种简单的办法就是讲数值和信息关联起来,专家系统可以处理不确定性的规则和数据可以进行推理,可以利用一种IF-THEN规则从初始数据推导出问题解决方案的能力;

知识的表示性

知识的表示以特定的方式和存储表示特定的问题,成功依赖于微系统所基于的知识类型选择最佳的知识编码方案,IF-THEN规则(通常以if-then是知识编码的主要形式) 语义网络(知识用是用对象和对象之间的关系来表示,如果对象被表示为图的节点,两个对象之间关系表示为对应两个节点之间的链接,最常用的语义网络形式是使用节点之间的链接来表示,并具有对象之间的关系)和框架(基于框架的表示非常适应于基于对象的编程)都是最常用的方案,应用于知识图谱;

可解释性强

可解释性该系统有推理过程的能力,可以用它来达到行业内部的建议等,主要运用金融领域、医疗领域需要可解释性;可以做知识的推理。

专家系统的缺点:

设计大量的规则(design lots of rules)需要大量的人力成本;需要领域专家来主导(heavily reply on domain expert);可移植性差(limited transferability to other domain);学习能力差(inability to learn)人能考虑的范围是有限的(human capacity is limited)目前需要把专家系统和深度学习的融合,也就是专家系统经验添加到深度学习里边,主要原因是深度学习需要很多data,而专家系统不需要很多的data

专家系统的规则错误实际上就是概率选择,可以利用类似于LRU算法进行解决

LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。

实现LRU

1.用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入新数据项的时候,先把数组中存在的数据项的时间戳自增,并将新数据项的时间戳置为0并插入到数组中。每次访问数组中的数据项的时候,将被访问的数据项的时间戳置为0。当数组空间已满时,将时间戳最大的数据项淘汰。2.利用一个链表来实现,每次新插入数据的时候将新数据插到链表的头部;每次缓存命中(即数据被访问),则将数据移到链表头部;那么当链表满的时候,就将链表尾部的数据丢弃。3.利用链表和hashmap。当需要插入新的数据项的时候,如果新数据项在链表中存在(一般称为命中),则把该节点移到链表头部,如果不存在,则新建一个节点,放到链表头部,若缓存满了,则把链表最后一个节点删除即可。在访问数据的时候,如果数据项在链表中存在,则把该节点移到链表头部,否则返回-1。这样一来在链表尾部的节点就是最近最久未访问的数据项。

对于第一种方法,需要不停地维护数据项的访问时间戳,另外,在插入数据、删除数据以及访问数据时,时间复杂度都是O(n)。对于第二种方法,链表在定位数据的时候时间复杂度为O(n)。所以在一般使用第三种方式来是实现LRU算法。实现方案,使用LinkedHashMap实现

目前专家系统存在的两大问题:

  1. 冲突问题(互斥关系出现)

可以通过逻辑推理的两种算法解决,第一种算法是:Forward Chaining Algorithm 整个过程是从前到后的推理方式,具体推理过程是通过给定条件对规则进行过滤,出现结果后增加到已知条件进行下次过滤,直至推理出所有结果为止

第二种算法算是:Backward Chaining Algorithm从后往前推导方式,具体推理过程是以结果为导向的推理过程,要想得到最终结构需要什么条件,然后根据条件继续判断需要的条件,最终找出推理最终结果所需要的所有条件结束循环判断,系统跟踪问题解决方案的当前状态,并寻找该状态更接近最终解决方案的规则,该方法给定的情况发展到期望目标 添加新发现的断言

  1. 选择最小规则的子集(Minimum Size of Rules)规则在不影响系统性能前提下尽量缩小规则子集,第一种方法是只考虑当前的贪心算法提取规则

选择最小子集问题由此引出ai问题的思路:

1.去找跟这个问题场景类似的问题 并具有代表性的问题 可以是多个领域

2.想gap 当前搜索到的问题到我需求解决的问题的距离路径,选择路径最短的

3.观看看材料基于问题1最短路径的几种论文集解决方案集案例,从思路慢慢移动到自己需要解决的问题上

4.找最近接的进行套用测试

经过上述步骤我们发现这个问题和 set carter purple问题非常相似,下面先简单介绍下说下set carter purple

例如:有一个权集u={1,2,3,4,5} 一个集合s={{1,2,3},{2,4},{3.4},{4,5}} 问题:选择最小集合 使条件st 包含u所有数字

解决方法:

S1 s2 =【1,2,3,4】 不等于u s1 s2 s3=[1,2,3,4] 不等于u s1 s2 s3 s4 =[1,2,3,4,5] 等于u s1 s4 =[1,2,3,4,5]=u

满足条件的只有s1 s4 为两个最小集合并满足包含u所有数字

主要采用尝试所有组合进行判断,但是时间复杂度太高时间复杂度是2^n( NP head 问题,目前二进制计算机无解)

原文来自本人知乎:https://zhuanlan.zhihu.com/p/53153165

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值