写在前面
【补充】 2018年1月发布的人工智能标准化白皮书上关于“人工智能的概念”有如下一段详尽描述(仅供参考):
2.1.2 人工智能的概念
人工智能作为一门前沿交叉学科,其定义一直存有不同的观点:**《人工智能——一种现代方法》**中将已有的一些人工智能定义分为四类:像人一样思考的系统、像人一样行动的系统、理性地思考的系统、理性地行动的系统。维基百科上定义“人工智能就是机器展现出的智能”,即只要是某种机器,具有某种或某些“智能”的特征或表现,都应该算作“人工智能”。大英百科全书则限定人工智能是数字计算机或者数字计算机控制的机器人在执行智能生物体才有的一些任务上的能力。百度百科定义人工智能是“研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学”,将其视为计算机科学的一个分支,指出其研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
本白皮书认为,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能的定义对人工智能学科的基本思想和内容作出了解释,即围绕智能活动而构造的人工系统。人工智能是知识的工程,是机器模仿人类利用知识完成一定行为的过程。根据人工智能是否能真正实现推理、思考和解决问题,可以将人工智能分为弱人工智能和强人工智能。
弱人工智能是指不能真正实现推理和解决问题的智能机器,这些机器表面看像是智能的,但是并不真正拥有智能,也不会有自主意识。迄今为止的人工智能系统都还是实现特定功能的专用智能,而不是像人类智能那样能够不断适应复杂的新环境并不断涌现出新的功能,因此都还是弱人工智能。目前的主流研究仍然集中于弱人工智能,并取得了显著进步,如语音识别、图像处理和物体分割、机器翻译等方面取得了重大突破,甚至可以接近或超越人类水平。
强人工智能是指真正能思维的智能机器,并且认为这样的机器是有知觉的和自我意识的,这类机器可分为类人(机器的思考和推理类似人的思维)与非类人(机器产生了和人完全不一样的知觉和意识,使用和人完全不一样的推理方式)两大类。从一般意义来说,达到人类水平的、能够自适应地应对外界环境挑战的、具有自我意识的人工智能称为“通用人工智能”、“强人工智能”或“类人智能”。强人工智能不仅在哲学上存在巨大争论(涉及到思维与意识等根本问题的讨论),在技术上的研究也具有极大的挑战性。强人工智能当前鲜有进展,美国私营部门的专家及国家科技委员会比较支持的观点是,至少在未来几十年内难以实现。
靠符号主义、连接主义、行为主义和统计主义这四个流派的经典路线就能设计制造出强人工智能吗?其中一个主流看法是:即使有更高性能的计算平台和更大规模的大数据助力,也还只是量变,不是质变,人类对自身智能的认识还处在初级阶段,在人类真正理解智能机理之前,不可能制造出强人工智能。理解大脑产生智能的机理是脑科学的终极性问题,绝大多数脑科学专家都认为这是一个数百年乃至数千年甚至永远都解决不了的问题。
通向强人工智能还有一条“新”路线,这里称为“仿真主义”。这条新路线通过制造先进的大脑探测工具从结构上解析大脑,再利用工程技术手段构造出模仿大脑神经网络基元及结构的仿脑装置,最后通过环境刺激和交互训练仿真大脑实现类人智能,简言之,“先结构,后功能”。虽然这项工程也十分困难,但都是有可能在数十年内解决的工程技术问题,而不像“理解大脑”这个科学问题那样遥不可及。
仿真主义可以说是符号主义、连接主义、行为主义和统计主义之后的第五个流派,和前四个流派有着千丝万缕的联系,也是前四个流派通向强人工智能的关键一环。经典计算机是数理逻辑的开关电路实现,采用冯•诺依曼体系结构,可以作为逻辑推理等专用智能的实现载体。但要靠经典计算机不可能实现强人工智能。要按仿真主义的路线“仿脑”,就必须设计制造全新的软硬件系统,这就是“类脑计算机”,或者更准确地称为“仿脑机”。“仿脑机”是“仿真工程”的标志性成果,也是“仿脑工程”通向强人工智能之路的重要里程碑。
人工智能始于20世纪50年代,50多年来,人工智能走过了一条起伏和曲折的发展道路。回顾历史,可以按照不同时期的主要特征,将其产生与发展过程分为5个阶段。
1、孕育期(1956年前)
2、形成期(1956-1970年)
1956年夏,麦卡锡 (J.McCarthy,数学家、计算机专家)、明斯基(M.L.Minsky,哈佛大学数学家、神经学家)、洛切斯特(N.Lochester,IBM公司信息中心负责人)、香农(C.E.Shannon,贝尔实验室信息部数学家和信息学家)
邀请莫尔(T.more)、塞缪尔(A.L.Samuel) 、塞尔夫里奇(O.Selfridge)、索罗蒙夫(R.Solomonff)、纽厄尔(A.Newell)、西蒙(H.A.Simon)在 美国达特茅斯(Dartmouth)大学举办了长达历时两个月的研讨会。会上,麦卡锡正式使用“人工智能AI”这一术语。这是人类历史上首次第一次人工智能研讨会,标志着人工智能学科的诞生。
3、暗淡期(1966-1974年)
失败的预言给人工智能的声誉造成重大伤害
60年代初,西蒙预言:10年内计算机将成为世界冠军、将证明一个未发现的数学定理、将能谱写出具有优秀作曲家水平的乐曲、大多数心理学理论将在计算机上形成。
挫折和困境
Minsky的批评
1969年 M. Minsky 和 S.Papert 在《感知机》一书中指出了感知机无法解决异或(XOR)问题的缺陷,并表示出对这方面研究的悲观态度,使得神经网络的研究从兴起期进入了停滞期。
该批评对人工智能的发展造成了重要的影响
当时的人工智能存在三个方面的局限性
4、知识应用期( 1970-1988年)
5、集成发展期(1986年至今)
人工智能具体的发展历程图示如下:
这两年人工智能得到了突飞猛进的发展,实现这种发展的基本条件有三个:
符号主义观点认为:智能的基础是知识,其核心是知识表示和知识推理;知识可用符号表示,也可用符号进行推理,因而可以建立基于知识的人类智能和机器智能的统一的理论体系。
连接主义观点认为:思维的基元是神经元,而不是符号;思维过程是神经元的联结活动过程,而不是符号运算过程;反对符号主义关于物理符号系统的假设。
行为主义观点认为:智能取决于感知和行动,提出了智能行为的“感知—动作”模型;智能不需要知识、不需要表示、不需要推理;人工智能可以像人类智能那样逐步进化。
此外,还有一种由钟义信院士提出的一种认知学派:
符号主义的不足(功能模拟法/认知学观点)
连接主义的不足(结构模拟法/生物学观点)
行为主义的不足
远期目标:构造出可以实现人类思维活动和智力功能的智能系统。
近期目标:使现有的计算机更聪明更有用,使它不仅能够进行一般的数值计算和非数值信息的处理,而且能够运用知识去处理问题,能够模拟人类的智能行为。
1、认知建模
认知:可一般地认为是和情感、动机、意志相对应的理智或认识过程,或者是为了一定的目的,在一定的心理结构中进行的信息加工过程。
2、知识表示:基础
3、知识推理:实现问题求解
4、知识应用:目的
知识表示、知识推理、知识应用是传统人工智能的三大核心研究内容。
5、机器感知:就是要让计算机具有类似于人的感知能力,如视觉、听觉、触觉、嗅觉、味觉……,是机器获取外部信息的基本途径
6、机器思维:
机器思维是让计算机能够对感知到的外界信息和自己产生的内部信息进行思维性加工,包括逻辑思维、形象思维和灵感思维,涉及信息的表示,组织,积累,管理,搜索,推理等过程。
7、机器学习:
8、机器行为:
9、智能系统构建
问题求解、机器学习、自然语言理解、专家系统、模式识别、计算机视觉、机器人学、博弈、计算智能、人工生命、自动定理证明、自动程序设计、智能控制、智能检索、智能调度与指挥、智能决策支持系统、人工神经网络、数据挖掘与知识发现…
1-1 什么是人工智能?是从科学与能力两方面加以说明。
1-3 在人工智能的发展过程中,有哪些思想和思潮起到了重要作用?
1-5 人工智能有哪些学派?他们的认知观是什么?现在这些学派的关系如何?
1-9 人工智能的基本研究方法有哪些类?
1-10 人工智能的主要研究和应用领域是什么?其中,哪些是新的研究热点?
知识的一般概念
知识是人们在改造客观世界的实践中积累起来的 认识和 经验。
其中,认识与 经验可以这样定义:
人工智能系统中的知识
一个智能程序高水平的运行需要有关的 事实知识、 规则知识、 控制知识和 元知识。
元知识与控制知识是有重迭的,对一个大的程序来说,以元知识或说元规则形式体现控制知识更为方便,因为元知识存于知识库中,而控制知识常与程序结合在一起出现,从而不容易修改。
知识表示
研究用机器表示知识的可行性、有效性的一般方法,是一种数据结构与控制结构的统一体,既考虑知识的存储又考虑知识的使用。
知识表示的要求:
状态空间法是一种 基于解答空间的问题表示和求解方法,它是以“状态(state)”和“算符(operator)”为基础的,它是人工智能中最基本的 形式化方法。
由于状态空间法需要扩展过多的节点,容易出现“组合爆炸”,因而 只适用于表示比较简单的问题。
状态空间法的三要素:
q0,q1,…,qn
的有序集合,是表示问题解法中每一步问题状况的数据结构。有序集合中每个元素qi(i= 0,1,…,n)为集合的分量,称为状态变量。给定每个分量的一组值就得到一个具体的状态。(S,F,G)
。【例子】
猴子和香蕉问题:在一个房间内有一只猴子、一个箱子和一束香蕉。香蕉挂在天花板下方,但猴子的高度不足以碰到它。那么这只猴子怎样才能摘到香蕉呢?
解题过程
用一个四元表列(W,x,Y,z)
来表示这个问题状态空间
其中W:猴子的水平位置;x:当猴子在箱子顶上时取1;否则取0;Y:箱子的水平位置;z:当猴子摘到香蕉时取1;否则取0。
则可见初始状态为(a,0,b,0)
,目标状态为(c,1,c,1)
这个问题的算符如下:
goto(U)
表示猴子走到水平位置U;pushbox(V)
表示猴子把箱子推到水平位置V;climbbox
表示猴子爬上箱顶;grasp
表示猴子摘到香蕉。
由初始状态变换为目标状态的操作序列为:
Step1: goto(b)
Step2: pushbox(c)
Step3: climbbox
Step4: grasp
问题规约(Problem Reduction):
问题归约的组成部分:
问题归约的 实质:
问题归约法举例:
【例子】
汉诺塔问题(Hanoi):规定每次移动一个盘子、且总个过程中大盘在下小盘在上、目标是将盘子从柱子1移到柱子3。
解题过程
原始问题可以归约为下列3个子问题:
规约过程:
归约图示:
与或图表示
用一个类似于图的结构来表示,把问题归约为后继问题的替换集合。
与图:把一个复杂问题分解为若干个较为简单的子问题,形成“与”树。
或图:把原问题变换为若干个较为容易求解的新问题,形成“或”树。
谓词逻辑法采用谓词合式公式和一阶谓词演算将要解决的问题变成一个有待证明的问题,然后利用消解定理和消解反演来证明一个新语句是从已知的正确语句中导出的,从而证明这个新语句也是正确的。
谓词逻辑是一种 形式语言,能够将数学中的逻辑论证符号化,谓词逻辑经常与其他表示方法混合使用,可以表示比较复杂的问题。
语法和语义
连词和量词
连词
合取、析取、蕴涵、非、双条件
量词
全称量词、存在量词
谓词公式
原子谓词公式
由谓词符号和若干项组成的谓词演算
分子谓词公式
可以用 连词把原子谓词公式组成复合谓词公式,并把它叫做分子谓词公式
通常把合式公式叫做谓词公式。在谓词演算中合式公式的递归定义如下:
合式公式的性质
置换
置换是用变元、常量、函数来替换变元,使该变元不在公式中出现,形如{t1/x1, t2/x2,...,tn/xn}
的有限集合,其中:
t1,t2,...,tn
是项;x1,x2,...,xn
是互不相同的变元;ti/xi
表示用ti项替换变元xi
,不允许ti
和xi
相同,也不允许变元xi
循环地出现在另一个tj中。推理规则:用合式公式的集合产生新的合式公式
置换是 可结合的;
用s1s2
表示两个置换s1和s2的合成,L表示一个表达式,则有(Ls1)s2 = L(s1s2)
以及(s1s2)s3 = s1(s2s3)
,即用s1和s2相继作用于表达式L是与用s1s2
作用于L一样的。
一般说来,置换是 不可交换的,即s1s2 ≠ s2s1
。
合一
寻找项对变量的置换,以使两表达式一致,叫做合一。
如果一个置换s作用于表达式集合{Ei}
的每个元素,则用{Ei}s
来表示置换的集。称表达式{Ei}是可合一的,如果存在一个置换s使得:E1s = E2s = E3s =……
,那么,称此s为{Ei}
的合一者,因为s的作用是使集合{Ei}
成为单一形式。
例如:设有公式集E={ P( x, y, f(y)), P( a, g(x), z) }
,则s={a/x, g(a)/y, f(g(a))/z}
是它的一个合一。
语义网络是通过概念及其语义关系来表达知识一种网络图,是一种 结构化表示方法。
从图论的观点看,语义网络是一个“带标识的有向图”,它由 节点和 弧线或链线组成。节点代表实体、概念、情况等,弧线代表节点间的关系,必须带标识。
语义网络的解答是一个经过推理和匹配而得到的具有明确结果的新的语义网路,扩展后可以表示更复杂的问题。
语义网络中最基本的语义单元称为语义基元,可用三元组表示为:(结点1,弧,结点2)。
二元语义网络的表示
例如:用语义网络表示:李新的汽车的款式是“捷达”、银灰色;王红的汽车的款式是“凯越”、红色;李新和王红的汽车均属于具体概念,可增加“汽车” 这个抽象概念。
多元语义网络的表示
框架网络:
框架结构:
每个框架都有框架名,代表某一类对象
一个框架由若干个槽(项目)组成,用于表示对象的某个方面的属性
有时一个槽(属性)还要从不同的侧面来描述,每个侧面可具有一个或多个值。
注意:框架中的槽与侧面可任意定义,也可以是另一框架,形成框架网络系统。
剧本表示法(ppt-6)
过程表示法(ppt-6)
…
推理方法及其分类
推理的控制策略及其分类
推理的控制策略是指如何使用领域知识使推理过程尽快达到目标的策略。
*各种搜索策略的主要区别在于对OPEN表中节点的排列顺序不同。*例如,广度优先搜索把先生成的子节点排在前面,而深度优先搜索则把后生成的子节点排在前面。
广度优先搜索算法流程:
以八数码问题为例,得到下面这个广度优先搜索树:
在上述广度优先算法中需要注意两个问题:
广度优先搜索的优缺点:
深度优先搜索算法流程:
在深度优先搜索中,搜索一旦进入某个分支,就将沿着该分支一直向下搜索。如果目标节点恰好在此分支上,则可较快地得到解。但是,如果目标节点不在此分支上,而该分支又是一个无穷分支,则就不可能得到解。所以深度优先搜索是不完备的,即使问题有解,它也不一定能求得解。
因此,为了防止搜索过程沿着无益的路径扩展下去,往往给出一个节点扩展的最大深度,即 深度界限。当搜索深度达到了深度界限而仍未出现目标节点时,就换一个分支进行搜索。
有界深度优先搜索的特点:
代价树搜索
考虑边的代价的搜索方法,代价树搜索的目的是为了找到一条代价最小的解路径。代价树搜索方法包括:
启发式信息与代价函数
采用问题自身的特性信息,以指导搜索朝着最有希望的方向前进。
启发性信息是指那种与具体问题求解过程有关的,并可指导搜索过程朝着最有希望方向前进的控制信息。启发信息的启发能力越强,扩展的无用结点越少。
启发性信息的种类
估价函数的一般形式为:f(x) = g(x)+h(x)
,其中g(x)
表示从初始节点S0到节点x的代价;h(x)
是从节点x到目标节点Sg的最优路径的代价的估计,它体现了问题的启发性信息,h(x)
称为启发函数。
A算法与A*算法
A算法:在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)
对OPEN表中的节点进行排序,则该搜索算法为A算法。
A算法的类型
可根据搜索过程中选择扩展节点的范围,将启发式搜索算法分为:
A*算法是对A算法的估价函数f(n)=g(n)+h(n)
加上某些限制后得到的一种启发式搜索算法。
假设f*(n)
是从初始节点出发经过节点n达到目标节点的最小代价,估价函数f(n)
是对f*(n)
的 估计值。且f*(n)=g*(n)+h*(n)
,g*(n)
是从初始节点S0到节点n的最小代价。h*(n)
是从节点n到目标节点的最小代价,若有多个目标节点,则为其中最小的一个。
A*算法对A算法(全局择优的启发式搜索算法)中的g(n)
和h(n)
分别提出如下限制:
g(n)
是对最小代价g*(n)
的估计,且g(n)>0
;h(n)
是最小代价h*(n)
的下界,即对任意节点n均有h(n)≤h*(n)
。即:满足上述两条限制的A算法称为A*算法。
1、 与/或树的一般搜索过程
(1) 把原始问题作为初始节点S0,并把它作为当前节点;
(2) 应用分解或等价变换操作对当前节点进行扩展;
(3) 为每个子节点设置指向父节点的指针;
(4) 选择合适的子节点作为当前节点,反复执行第(2)步和第(3)步,在此期间需要多次调用可解标记过程或不可解标记过程,直到初始节点被标记为可解节点或不可解节点为止。
2、 与/或树的广度优先搜索
(1)把初始节点S0放入OPEN表中;
(2)把OPEN表的第一个节点取出放入CLOSED表,并记该节点为n;
(3)如果节点n可扩展,则做下列工作:
① 扩展节点n,将其子节点放入OPEN表的尾部,并为每一个子节点设置指向父节点的指针;
② 考察这些子节点中有否终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功,退出搜索过程;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。
③ 转第(2)步。
(4) 如果节点n不可扩展,则作下列工作:
① 标记节点n为不可解节点;
② 应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。
③ 转第(2)步。
【例子】 设有下图所示的与/或树,节点按标注顺序进行扩展,其中标有t1、t2、t3的节点是终止节点,A、B、C为不可解的端节点。
本例中与/或树的广度优先搜索过程:
(1) 先扩展1号节点,生成2号节点和3号节点。
(2) 扩展2号节点,生成A节点和4号节点。
(3) 扩展3号节点,生成t1节点和5号节点。由于t1为终止节点,则标记它为可解节点,并应用可解标记过程,不能确定3号节点是否可节。
(4) 扩展节点A,由于A是端节点,因此不可扩展。调用不可解标记过程。
(5) 扩展4号节点,生成t2节点和B节点。由于t2为终止节点,标记为可解节点,应用可解标记过程,可标记2号节点为可解,但不能标记1号节点为可解。
(6) 扩展5号节点,生成t3节点和C节点。由于t3为终止节点,标记它为可解节点,应用可解标记过程,可标记1号节点为可解节点。
(7) 搜索成功,得到由1、2、3、4、5号节点和t1、t2、t3节点构成的解树。
3、 与/或树的深度优先搜索
(1)把初始节点S0放入OPEN表中;
(2)把OPEN表第一个节点取出放入CLOSED表,并记该节点为n;
与/或树的深度优先搜索算法如下:
(3)如果节点n的深度等于dm,则转第(5)步的第①点;
(4)如果节点n可扩展,则做下列工作:
① 扩展节点n,将其子节点放入OPEN表的首部,并为每一个子节点设置指向父节点的指针;
② 考察这些子节点中是否有终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。
③ 转第(2)步。
(5)如果节点n不可扩展,则作下列工作:
① 标记节点n为不可解节点;
② 应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。
③ 转第(2)步。
4、 与/或树的启发式搜索
(1) 把初始节点S0放入OPEN表中;
(2) 求出希望树T,即根据当前搜索树中节点的代价h求出以S0为根的希望树T;
(3) 依次在OPEN表中取出T的端节点放入CLOSED表,并记该节点为n;节点n有三种不同情况:
①n为终止节点,
②n不是终止节点,但可扩展,
③n不是终止节点,且不可扩展,
对三种情况分别进行步骤(4) (5) (6)的操作过程;
(4)如果节点n为终止节点,则:
① 标记节点n为可解节点;
② 在T上应用可解标记过程,对n的先辈节点中的所有可解解节点进行标记;
③ 如果初始解节点S0能够被标记为可解节点,则T就是最优解树,成功退出;
④ 否则,从OPEN表中删去具有可解先辈的所有节点。
⑤ 转第(2)步。
(5) 如果节点n不是终止节点,但可扩展,则:
① 扩展节点n,生成n的所有子节点;
② 把这些子节点都放入OPEN表中,并为每一个子节点设置指向父节点n的指针;
③ 计算这些子节点及其先辈节点的h值;
④ 转第(2)步。
(6) 如果节点n不是终止节点,且不可扩展,则:
① 标记节点n为不可解节点;
② 在T上应用不可解标记过程,对n的先辈节点中的所有不可解解节点进行标记;
③ 如果初始解节点S0能够被标记为不可解节点,则问题无解,失败退出;
④ 否则,从OPEN表中删去具有不可解先辈的所有节点。
⑤ 转第(2)步。
5、 博弈树的启发式搜索
6、 α-β剪枝技术
搜索的完备性与效率
完备性
搜索效率
其中,外显率定义为:P=L/T
;L为从初始节点到目标节点的路径长度;T为整个搜索过程中所生成的节点总数。
外显率反映了搜索过程中从初始节点向目标节点前进时 搜索区域的宽度。当T=L
时,P=1
,表示搜索过程中每次只生成一个节点,它恰好是解路径上的节点,搜索效率最高。P越小表示搜索时产生的无用节点愈多,搜索效率愈低。
有效分枝因数B定义为:B+B^2+…+B^L=T
;B是有效分枝因数,它表示在整个搜索过程中 每个节点平均生成的子节点数目;L为从初始节点到目标节点的路径长度;T为整个搜索过程中所生成的节点总数。当B=1
时,L=T
,此时所生成的节点数最少,搜索效率最高。
从一组已知为真的事实出发,直接运用经典逻辑中的推理规则推出结论的过程称为自然演绎推理。
自然演绎推理最基本的推理规则是三段论推理,它包括:
【例子】 设已知如下事实:
(1) 只要是需要编程序的课,王程都喜欢。
(2) 所有的程序设计语言课都是需要编程序的课。
(3) C是一门程序设计语言课。
求证:王程喜欢C这门课。
证明:
第一步,首先定义谓词
Prog(x)
:x是需要编程序的课。
Like(x, y)
: x喜欢y。
Lang(x)
: x是一门程序设计语言课
第二步,把已知事实及待求解问题用谓词公式表示如下:
Prog(x)→Like(Wang , x)
(∀x)( Lang(x)→Prog(x))
Lang(C)
第三步,应用推理规则进行推理:
Lang(y)→Prog(y)
全称固化
Lang(C),Lang(y)→Prog(y) ⇒ Prog(C)
假言推理 {C/y}
Prog(C), Prog(x)→Like(Wang , x) ⇒ Like(Wang , C)
假言推理 {C/x}
因此,王程喜欢C这门课。
P→Q
为真时,希望通过肯定后件Q为真来推出前件P为真,这是不允许的。P→Q
为真时,希望通过否定前件P来推出后件Q为假,这也是不允许的。一种基于 鲁滨逊(Robinson)消解原理的机器推理技术。鲁滨逊消解原理亦称为消解原理,是鲁滨逊于1965年在海伯伦(Herbrand)理论的基础上提出的一种基于逻辑的“反证法”。
在人工智能中,几乎所有的问题都可以转化为一个定理证明问题。定理证明的实质,就是要对前提P和结论Q,证明
P→Q
永真。
而要证明P→Q
永真,就是要证明P→Q
在任何一个非空的个体域上都是永真的。这将是非常困难的,甚至是不可实现的。
鲁滨逊消解原理把永真性的证明转化为关于 不可满足性的证明。即:要证明P→Q
永真,只需证明P∧¬Q
不可满足。(¬(P→Q) ⇔ ¬(¬P∨Q) ⇔ P∧¬Q
)
鲁滨逊消解原理是在子句集的基础上讨论问题的。因此,讨论消解演绎推理之前,需要先讨论子句集的有关概念。
把谓词公式化成子句集的步骤
子句集的意义
在上述化简过程中,由于在消去存在量词时所用的Skolem函数可以不同,因此化简后的标准子句集是不唯一的。因此,当原谓词公式为非永假时,它与其标准子句集并不等价。但当原谓词公式为永假(或不可满足)时,其标准子句集则一定是永假的,即Skolem化并不影响原谓词公式的永假性。
不可满足性
对于任意论域中的任意一个解释,S中的子句不能同时取得真值T。
定理:设有谓词公式F,其子句集为S,则F不可满足的充要条件是S不可满足。
鲁滨逊消解原理的基本思想
鲁滨逊消解原理包括
命题逻辑的消解
消解推理的核心是求两个子句的 消解式。
【例子】
S1的不可满足性⇔S的不可满足性
S2的不可满足性⇔S的不可满足性
上述两个推论说明,为证明子句集S的不可满足性,只要对其中可进行消解得子句进行消解,并把消解式加入到子句集S中,或者用消解式代替他的亲本子句,然后对新的子句集证明其不可满足性就可以了。
如果经消解能得到空子句,根据空子句的不可满足性,即可得到原子句集S是不可满足的结论。
在命题逻辑中,对不可满足的子句集S,其消解原理是完备的。即:子句集S是不可满足的,当且仅当存在一个从S到空子句的消解过程。
应用消解原理证明定理的过程称为 消解反演。
命题逻辑的消解反演:
在命题逻辑中,已知F,证明G为真的消解反演过程如下:
【例子】 设已知的公式集为{P,(P∧Q)→R,(S∨T)→Q,T}
,求证:R为真。
解:假设结论R为假, 将¬R加入公式集,并化为子句集:
S={P,¬P∨¬Q∨R,¬S∨Q,¬T∨Q,T,¬R}
其消解过程如下图的消解演绎树所示。
该树根为空子句NIL,则子句集S不可满足,即假设有误,于是证得R为真。
谓词逻辑的消解
设C1和C2是两个没有公共变元的子句,L1和L2分别是C1和C2中的文字。如果 σ 是L1和¬ L2存在的最一般合一
,则称:
C12=({C1σ}-{ L1σ})∪({ C2σ}-{ L2σ})
为C1和C2的二元消解式,L1和L2为消解式上的文字。
注意:在谓词逻辑的消解过程中,要注意以下几个问题:
【例子】
例1、设C1=P(a)∨R(x)
,C2=¬P(y)∨Q(b)
,求 C12。
解:取L1= P(a)
, L2=¬P(y)
,则L1和¬L2的最一般合一是σ={a/y}
。因此:
C12 = ( {C1σ}-{L1σ}) ∪ ({C2σ}-{L2σ})
= ({P(a), R(x)}-{P(a)})∪({¬P(a), Q(b)}-{¬P(a)})
= ({R(x)})∪({Q(b)})
= { R(x), Q(b) }
= R(x)∨Q(b)
例2、设C1=P(x)∨Q(a)
,C2=¬P(b)∨R(x)
,求 C12。
解:由于C1和C2有相同的变元x,不符合定义的要求。为了进行消解,需要修改C2中变元的名字。令C2=¬P(b)∨R(y)
,此时L1= P(x)
, L2 =¬P(b)
,L1和¬L2的最一般合一是 σ={b/x}
。则有:
C12 = ({C1σ}-{L1σ})∪ ({C2σ}-{L2σ})
= ({P(b), Q(a)}-{P(b)}) ∪ ({¬P(b), R(y)}-{¬P(b)})
= ({Q(a)}) ∪ ({R(y)})
= {Q(a), R(y)}
= Q(a)∨R(y)
例3、设 C1=P(a)∨¬Q(x)
,C2=¬P(y)∨Q(b)
,求C12。
解:对C1和C2通过最一般合一(σ={b/x, a/y}
)的作用,便得到空子句NIL的结论,从而得出C1、C2互相矛盾的结论,而事实上C1、C2并无矛盾。
例4、设 C1=P(x)∨P(f(a))∨Q(x)
,C2=¬P(y)∨R(b)
,求C12。
解:本例的C1中有可合一的文字P(x)与P(f(a)),用它们的最一般合一σ={f(a)/x}
进行代换,可得到 :
C1σ=P(f(a))∨Q(f(a))
此时对C1σ与C2进行消解。选L1= P(f(a))
, L2 =¬P(y)
,L1和L2的最一般合一是σ={f(a)/y}
,则可得到C1和C2的二元消解式为:
C12=R(b)∨Q(f(a))
例5、设 C1=P(y)∨P(f(x))∨Q(g(x))
、C2=¬P(f(g(a)))∨Q(b)
,求C12。
解:对C1,取最一般合一σ={f(x)/y}
,得C1的因子C1σ=P(f(x))∨Q(g(x))
,对C1的因子和C2消解(σ={g(a)/x }
),可得:C12=Q(g(g(a)))∨Q(b)
谓词逻辑的消解反演:
在谓词逻辑中,已知F,证明G是F的结论的消解反演过程如下:
与命题逻辑的消解反演过程比较一下
【例子】
例1、已知F:(∀x)((∃y)(A(x, y)∧B(y))→(∃y)(C(y)∧D(x, y)))
、G:¬(∃x)C(x)→(∀x)(∀y)(A(x, y)→¬B(y))
,求证G是F的逻辑结论。
证明:
第一步,先把G否定,并放入F中,得到的{F,¬G}
:
{(∀ x)((∃ y)(A(x,y)∧B(y))→(∃ y)(C(y)∧D(x,y)))
,¬(¬(∃ x)C(x)→(∀ x)(∀ y)(A(x,y)→¬ B(y)))}
第二步,把{F,¬G}化成子句集,得到
(1) ¬A(x,y)∨¬B(y)∨C(f(x))
(2) ¬A(u,v)∨¬B(v)∨D(u,f(u))
(3) ¬C(z)
(4) A(m,n)
(5) B(k)
第三步,应用谓词逻辑的消解原理对上述子句集进行消解,其过程为:
(6) ¬ A(x,y)∨¬ B(y)
(1)和(3)消解,取σ={f(x)/z}
(7) ¬ B(n)
(4)和(6)消解,取σ={m/x,n/y}
(8) NIL
(5)和(7)消解,取σ={n/k}
最后,“G是F的逻辑结论”得证。
上述消解过程可用如下消解树来表示
例2、“快乐学生”问题
假设:任何通过计算机考试并获奖的人都是快乐的,任何肯学习或幸运的人都可以通过所有考试,张不肯学习但他是幸运的,任何幸运的人都能获奖。
求证:张是快乐的。
证明:(完整的解题过程)
第一步,先定义谓词:
Pass(x, y):x可以通过y考试
Win(x, prize):x能获得奖励
Study(x) :x肯学习
Happy(x):x是快乐的
Lucky(x) :x是幸运的
第二步,将已知条件以及结论的否定用谓词表示如下:
“任何通过计算机考试并奖的人都是快乐的”
(∀x)(Pass(x, computer)∧Win(x, prize)→Happy(x))
“任何肯学习或幸运的人都可以通过所有考试”
(∀x)(∀y)(Study(x)∨Lucky(x)→Pass(x, y))
“张不肯学习但他是幸运的”
¬Study(zhang)∧Lucky(zhang)
“任何幸运的人都能获奖”
(∀x)(Lucky(x)→Win(x, prize))
结论“张是快乐的”的否定
¬Happy(zhang)
第三步,将上述谓词公式转化为子句集如下:
1. ¬Pass(x, computer)∨¬Win(x, prize)∨Happy(x)
2. ¬Study(y)∨Pass(y, z)
3. ¬Lucky(u)∨Pass(u, v)
4. ¬Study(zhang)
5. Lucky(zhang)
6. ¬Lucky(w)∨Win(w, prize)
7. ¬ Happy(zhang)
(结论的否定)
第四步,按消解原理进行消解,消解树如下:
最后,“张是快乐的”得证。
在消解演绎推理中,由于事先并不知道哪些子句对可进行消解,更不知道通过对哪些子句对的消解能尽快得到空子句,因此就需要对子句集中的所有子句逐对进行比较,直到得出空子句为止。这种盲目的全面进行消解的方法,不仅会产生许多无用的消解式,更严重的是会产生组核爆炸问题。因此,需要研究有效的消解策略来解决这些问题。
常用的消解策略可分为两大类:
消解原理除了可用于 定理证明外,还可用来 求取问题答案,其思想与定理证明相似。
其一般步骤为:
【例子】
例1、已知:“张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。”
问:“现在李在哪个教室上课?”
解:第一步,首先定义谓词
C(x, y)
:x和y是同班同学
At(x, u)
:x在u教室上课。
第二步,把已知前提用谓词公式表示如下:
C(zhang, li)
(∀x)(∀y)(∀u)(C(x, y)∧At(x, u)→At(y,u))
At(zhang, 302)
把目标的否定用谓词公式表示如下:
¬(∃v)At(li, v)
第三步,把上述表示前提的谓词公式化为子句集:
C(zhang, li)
¬C(x, y)∨¬At(x, u)∨At(y, u)
At(zhang, 302)
把目标的否定化成子句式,并用下面的 重言式代替:
¬At(li,v) ∨At(li,v)
第四步,把此 重言式加入前提子句集中,得到一个新的子句集,对这个新的子句集,应用消解原理求出其证明树。
求解过程如下图所示。该证明树的根子句就是所求的答案,即“李明在302教室”。
例2、已知:A,B,C三人中有人从不说真话,也有人从不说假话。某人向这三人分别提出同一个问题:谁是说谎者?
A答:“B和C都是说谎者”;
B答:“A和C都是说谎者”;
C答:“A和B中至少有一个是说谎者”。
问:求谁是老实人,谁是说谎者?
解:第一步,首先定义谓词
T(x)
:表示x说真话
第二步,把已知前提用谓词公式表示如下:
有人从不说真话:¬T(C)∨¬T(A)∨¬T(B)
有人从不说假话:T(C)∨T(A)∨T(B)
根据“A答:B和C都是说谎者”,则
若A说真话:T(A)→¬T(B)∧¬T(C)
若A说假话: ¬T(A)→T(B)∨T(C)
同理,根据“B答:A和C都是说谎者”,则
T(B)→¬T(A)∧¬T(C)
¬T(B)→T(A)∨T(C)
根据“C答:A和B中至少有一个是说谎者”,则
T(C)→¬T(A)∨¬T(B)
¬T(C)→T(A)∧T(B)
第三步,把上述公式化成子句集,得到前提子句集S:
¬T(A)∨¬T(B)
¬T(A)∨¬T(C)
T(C)∨T(A)∨T(B)
¬T(B)∨¬T(C)
¬T(C)∨¬T(A)∨¬T(B)
T(A)∨T(C)
T(B)∨T(C)
第四步,先求谁是老实人,结论的否定为:¬(∃x)T(x)
,把目标的否定化成子句式,并用下面的重言式代替:
¬T(x)∨T(x)
把此重言式加入前提子句集S,得到一个新子句集。
第五步,对这个新的子句集,应用消解原理求出其证明树。
第六步,同理证明A不是老实人,结论的否定为: ¬T(A),将结论的否定¬(¬T(A)) 加入并入前提子句集S中,应用消解原理对新的子句集进行消解:
(¬A∧¬B)→C ¬A→(B∨C)
(¬A∧¬C)→B ¬B→(A∨C)
(¬C∧¬B)→A ¬C→(B∨A)
在消解演绎推理中,需要把谓词公式化为子句形,这使得原来蕴含在谓词公式中的一些重要信息却会在求取子句形的过程中被丢失。
在不少情况下人们多希望使用接近于问题原始描述的形式来进行求解,而不希望把问题描述化为子句集。
基于规则的演绎推理又称为与/或形演绎推理,不再把有关知识转化为子句集,而是把领域知识及已知事实分别用蕴含式及与/或形表示出来,然后通过运用蕴含式进行演绎推理,从而证明某个目标公式。
规则是一种比较接近于人们习惯的问题描述方式,按照 蕴含式(“If →Then”规则)这种问题描述方式进行求解的系统称为基于规则的系统,或者叫做 规则演绎系统。
规则演绎系统按照推理方式可分为:
首先说明一下,在规则正向演绎系统中,对已知事实和规则都有一定的要求,如果不是所要求的形式,需要进行变换。
事实表达式的与或形变换
详细来说,把事实表达式化为非蕴含形式的与/或形的步骤如下:
【例子】
有如下表达式
(∃x) (∀y)(Q(y, x)∧﹁((R(y)∨P(y))∧S(x, y)))
可把它转化为:
Q(z, a)∧( ( ﹁R(y)∧﹁P(y) )∨﹁S(a, y) )
这就是 与/或形表示,也可用一棵与/或图表示出来。
关于 与/或图说明以下几点:
E1∨E2∨…∨Ek
,其中每个子表达式Ei均被表示为E1∨E2∨…∨Ek
的后继节点,并由一个k线连接符(即图中的半圆弧)将这些后继节点都连接到其父节点,即表示成与的关系。E1∧E2∧…∧Ek
,其中的每个子表达式Ei均被表示为E1∧E2∧…∧Ek
的一个单一的后继节点,无需用连接符连接,即表示成或的关系。有了与/或图的表示,就可以求出其解树(结束于文字节点上的子树)集。可以发现,事实表达式的子句集与解树集之间存在着一一对应关系,即 解树集中的每个解树都对应着子句集中的一个子句。
解树集中每个解树的端节点上的文字的析取就是子句集中的一个子句。
上面那个与/或图有3个解树,分别对应这以下3个子句:
Q(z, a)
、﹁R(y)∨ ﹁ S(a, y)
、﹁P(y)∨ ﹁ S(a, y)
还需要注意以下两点:
规则的表示
为简化演绎过程,通常要求规则具有如下形式:L→W
,其中,L为单文字,W为与/或形公式。
(之所以限制前件L为单文字,是因为在进行正向演绎推理时要用规则作用于表示事实的与/或树,而该与/或树的叶节点都是单文字,这样就可用规则的前件与叶节点进行简单匹配。对非单文字情况,若形式为L1∨L2→W,则可将其转换成与之等价的两个规则L1→W与 L2→W进行处理。)
将规则转换为要求形式的步骤:
1、 暂时消去蕴含符号“→”。设有如下公式:
(∀x)(((∃y) (∀ z)P(x, y,z))→(∀u)Q(x, u))
运用等价关系“P→Q⇔﹁P∨Q”,可将上式变为:
(∀x)(﹁((∃ y) (∀z)P(x, y,z))∨(∀u)Q(x, u))
2、 把否定符号“﹁”移到紧靠谓词的位置上,使其作用域仅限于单个谓词。通过使用狄.摩根定律及量词转换律可把上式转换为:
(∀ x)( (∀y) (∃z)﹁P(x, y,z))∨ (∀u)Q(x, u))
3、 引入Skolem函数,消去存在量词。消去存在量词后,上式可变为:
(∀ x)( (∀y) (﹁P(x, y,f(x,y)))∨(∀u)Q(x, u))
4、 把所有全称量词移至前面化成前束式,消去全部全称量词。消去全称量词后,上式变为:
﹁P(x, y,f(x,y))∨Q(x, u)
此公式中的变元都被视为受全称量词约束的变元。
5、 恢复蕴含式表示。利用等价关系“﹁P∨Q⇔P→Q
”将上式变为:
P(x, y,f(x,y))→Q(x, u)
目标公式的表示形式
推理过程
规则正向演绎推理过程是从已知事实出发,不断运用规则,推出欲证明目标公式的过程。
先用与/或树把已知事实表示出来,然后再用规则的前件和与/或树的叶节点进行匹配,并通过一个匹配弧把匹配成功的规则加入到与/或树中,依此使用规则,直到产生一个含有以目标节点为终止节点的解树为止。
下面分命题逻辑和谓词逻辑两种情况来讨论规则正向演绎过程。
命题逻辑的规则正向演绎过程
已知事实:A∨B
规则:r1: A→C∧D
,r2: B→E∧G
目标公式:C∨G
证明:
1)先将已知事实用与/或树表示出来;
2)然后再用匹配弧把r1和r2分别连接到事实与/或树中与r1和r2 的前件匹配的两个不同端节点;
3) 由于出现了以目标节点为终节点的解树,故推理过程结束。这一证明过程可用下图表示。
谓词逻辑的规则正向演绎过程
已知事实的与/或形表示:P(x, y)∨(Q(x)∧R(v, y))
规则:P(u, v)→(S(u)∨N(v))
目标公式:S(a)∨N(b)∨Q©
证明:
在谓词逻辑情况下,由于事实、规则及目标中均含有变元,因此,其规则演绎过程还需要用最一般合一对变进行置换。证明过程可用下图表示。
产生式系统的 基本结构由 数据库、产生式规则和 控制策略三部分构成。
产生式系统的推理分为 正向推理、逆向推理和 双向推理三种形式。
产生式系统的主要 优缺点
现实世界中的大多数问题存在随机性、模糊性、不完全性和不精确性。对于这些问题,若采用前面所讨论的精确性推理方法显然是无法解决的。
为此,出现了一些新的逻辑学派,称为非经典逻辑,相应的推理方法称为 非经典推理。包括非单调性推理、不确定性推理、概率推理和贝叶斯推理等。
T(E1 AND E2)=min{T(E1),T(E2)}
T(E1 OR E2)=max{T(E1),T(E2)}
T(E1 AND E2)=T(E1)T(E2)
T(E1 OR E2)=T(E1)+T(E2)-T(E1)T(E2)
T(E1 AND E2)=max{0,T(E1)+T(E2)-1}
T(E1 OR E2)=min{1,T(E1)+T(E2)}
T(E)
和规则的强度F(E,H)
,则结论H的不确定性:T(H) = g1[T(E),F(E,H)]
T(E1 AND E2) = g2[T(E1), T (E2)]
T(E1 OR E2) = g3[T(E1), T (E2)]
T1(H)
和T2(H)
,则证据E1和E2的组合导致结论H的不确定性:T(H)=g[T1(H), T2(H)]
【例子】
设H1,H2,H3分别是三个结论,E是支持这些结论的证据。已知:
P(H1)=0.3
P(H2)=0.4
P(H3)=0.5
P(E|H1)=0.5
P(E|H2)=0.3
P(E|H3)=0.4
求P(H1|E),P(H2|E)及P(H3|E)的值各是多少?
解:
同理可得:
P(H2|E)=0.26
P(H3|E)=0.43
观察:( 注:P(E)=0.47 )
P(H1)=0.3 , P(E|H1)=0.5 P(H1|E)=0.32
P(H2)=0.4 , P(E|H2)=0.3 P(H2|E)=0.26
P(H3)=0.5 , P(E|H3)=0.4 P(H3|E)=0.43
结论:由于E的出现,H1成立的可能性增加,H2和H3成立的可能性不同程度的下降。
使用概率推理方法求结论Hi在存在证据E时的条件概率P(Hi|E) ,需要给出结论Hi的先验概率P(Hi)及证据E的条件概率 P(E|Hi)。这对于实际应用是不容易做到的。
Duda 和 Hart 等人在贝叶斯公式的基础上,于1976年提出主观贝叶斯方法,建立了不精确推理的模型,并把它成功地应用于PROSPECTOR专家系统(PROSPECTOR是国际上著名的一个用于勘察固体矿的专家系统)。
知识不确定性的表示
在主观Bayes方法中,知识是用产生式表示的,其形式为:
IF E THEN (LS, LN) H
E表示规则前提条件,它既可以是一个简单条件,也可以是用AND或OR把多个简单条件连接起来的复合条件。
H是结论,用P(H)表示H的先验概率,它指出没有任何专门证据的情况下结论H为真的概率,其值由领域专家根据以往的实践经验给出。
LS是规则的充分性度量。用于指出E对H的支持程度,取值范围为[0,+∞),其定义为:
LN是规则的必要性度量。用于指出E对H为真的必要程度,即﹁E对对H的支持程度。取值范围为[0,+∞),其定义为:
证据不确定性的表示
组合证据不确定性的计算
不确定性的更新
主观贝叶斯方法的推理过程
什么是可信度
该方法 直观、简单而且 效果好,在专家系统等领域获得了较为广泛的应用。
C-F模型
C-F模型:基于可信度表示的不确定性推理的基本方法,其他可信度方法都是基于此发展而来。
知识的不确定性表示
知识的不确定性表示:在C-F模型中,知识是用产生式规则表示的,其一般形式为:
IF E THEN H (CF(H, E))
E
:知识的前提条件,可以是单一或复合条件;
H
:知识的结论,可以是单一结论或多个结论;
CF(H, E)
:知识的可信度,称为 可信度因子(Certainty Factor)或规则强度。
一般情况下,CF(H, E)的取值为[-1, 1],表示当证据E为真时,对结论H的支持程度。其值越大,表示支持程度越大。
例如:IF 发烧 AND 流鼻涕 THEN 感冒(0.7)
,表示当某人确实有“发烧”及“流鼻涕”症状时,则有七成的把握是患了感冒。
CF(H,E)的定义:
CF(H,E) = MB(H,E) - MD(H,E)
MB和MD的关系:
P(H|E)>P(H)
时: E的出现增加了H的概率MB(H,E)>0,MD(H,E)=0
P(H|E)时: E的出现降低了H的概率
MB(H,E) =0,MD(H,E)>0
因此,CF(H, E)的计算公式:
可信度的性质(ppt-25)
CF(H,E)+CF(﹁H,E)=0
CF(H1, E)=0.7, CF(H2, E)=0.4
证据不确定性的表示
否定证据的不确定性计算
CF(¬E)=-CF(E)
组合证据的不确定性计算
CF(E1), …, CF(En)
,则:CF(E)=min{CF(E1), CF(E2), … ,CF(En)}
CF(E1), …, CF(En)
,则:CF(E)=max{CF(E1), CF(E2), … ,CF(En)}
不确定性的更新
IF E THEN H (CF(H, E))
结论H的可信度由下式计算:
CF(H)=CF(H,E)×max{0,CF(E)}
结论不确定性的合成
IF E1 THEN H (CF(H, E1))
IF E2 THEN H (CF(H, E2))
CF1(H)=CF(H, E1) ×max{0, CF(E1)}
CF2(H)=CF(H, E2) ×max{0, CF(E2)}
(2)、用如下公式求E1与E2对H的综合可信度
【例子】
设有如下一组知识:
r1:IF E1 THEN H (0.9)
r2:IF E2 THEN H (0.6)
r3:IF E3 THEN H (-0.5)
r4:IF E4 AND ( E5 OR E6) THEN E1 (0.8)
已知:CF(E2)=0.8
,CF(E3)=0.6
,CF(E4)=0.5
,CF(E5)=0.6
,CF(E6)=0.8
,求:CF(H)
。
解:由r4得到:
CF(E1) = 0.8×max{0, CF(E4 AND (E5 OR E6))}
= 0.8×max{0, min{CF(E4), CF(E5 OR E6)}}
= 0.8×max{0, min{CF(E4), max{CF(E5), CF(E6)}}}
= 0.8×max{0, min{CF(E4), max{0.6, 0.8}}}
= 0.8×max{0, min{0.5, 0.8}}
= 0.8×max{0, 0.5}
= 0.4
由r1得到:
CF1(H) = CF(H, E1)×max{0, CF(E1)}
= 0.9×max{0, 0.4}
= 0.36
由r2得到:
CF2(H) = CF(H, E2)×max{ 0, CF(E2) }
= 0.6×max{ 0, 0.8 }
= 0.48
由r3得到:
CF3(H) = CF(H, E3)×max{ 0, CF(E3) }
= -0.5×max{ 0, 0.6 }
= -0.3
根据结论不精确性的合成算法,CF1(H)和CF2(H)同号,有:
CF12(H)和CF3(H)异号,有:
综合可信度为CF(H)=0.53。
专家系统的先行者费根鲍姆(Feigenbaum)曾把专家系统定义为一个应用知识和推理过程来求解那些需要大量的人类专家解决难题经验的智能计算机程序。
专家系统主要指的是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的经验方法来处理该领域的高水平难题。
一个基于规则的专家系统采用下列模块来建立产生式系统的模型:
以上部分专家系统就不详叙了。
模糊逻辑的发展,是由理论准备到理论提出再到理论应用的过程
f : A → {0,1}
μA : U → [0,1]
【例子】表示“20岁左右”
μA : U→[0,1] 或 u→μA(u)
【例子】
论域U={1,2,3,4,5},用模糊集表示“大”和“小”。
解:设A、B分别表示“大”与“小”的模糊集,μA ,μB分别为相应的隶属函数。
A = {0, 0, 0.1, 0.6, 1}
B = {1, 0.5, 0.01, 0, 0}
其中:
μA(1)=0, μA(2)=0 , μA(3)=0.1 , μA(4)=0.6 , μA(5)=1
μB(1)=1, μB(2)=0.5 , μB(3)=0.01 , μB(4)=0, μB(5)=0
(1)、论域离散且为有限
若论域 U={u1, … , un}为离散论域,模糊集A表示为:
A= {μA(u1), μA(u2), … , μA(un)}
也可写为:
A= μA(u1)/u1 + μA(u2)/u2 + … + μA(un)/un
其中,隶属度为0的元素可以不写。
例如:
A = 1/u1+0.7/u2+0/u3+0.4/u4
= 1/u1+0.7/u2+0.4/u4
(2)、论域连续
若论域是连续的,则模糊集可用实函数表示。
例如:以年龄为论域U=[0,100], “年轻”和“年老”这两个概念可表示为:
(3)、一般表示方法
不管论域 U 是有限的还是无限的,是连续的亦或是离散的,扎德( L. A. Zadeh )又给出了一种类似于积分的一般表示形式:
这里的记号不是数学中的积分符号,也不是求和,只是表示论域中各元素与其隶属度对应关系的总括。
【例子】
设U={u1,u2,u3},
A=0.3/u1+0.8/u2+0.6/u3; B=0.6/u1+0.4/u2+0.7/u3
求A∩B,A∪B和¬A。
A∩B = (0.3∧0.6)/u1+(0.8∧0.4)/u2+(0.6∧0.7)/u3
= 0.3/u1+0.4/u2+0.6/u3
A∪B = (0.3∨0.6)/u1+(0.8∨0.4)/u2+(0.6∨0.7)/u3
= 0.6/u1+0.8/u2+0.7/u3
¬A = (1-0.3)/u1+(1-0.8)/u2+(1-0.6)/u3
= 0.7/u1+0.2/u2+0.4/u3
设 Ai 是 Ui (i=1,2,…,n) 上的模糊集,则称为A1, A2, …, An的笛卡尔乘积,它是U1×U2×…×Un上的一个模糊集。
在U1×…×Un上一个n元模糊关系R是指以U1×…×Un为论域的一个模糊集,记为:
一般地说,当U和V都是有限论域时,U={u1,u2,…,um}
,V={v1,v2,…,vn}
,则U×V上的模糊关系R可用一个模糊矩阵表示
R1°R2
【例子】
设有两个模糊关系
则R1与R2的合成是
设A={μA(u1),μA(u2),…,μA(un)}
是论域U上的模糊集,R是U×V
上的模糊关系,则A°R = B
称为模糊变换。
例如:设A={0.2,0.5,0.3}
例如:设对某厨师做的一道菜进行评判
评判标准是:色(u1)、香(u2) 、味(u3),它们构成论域:U= { u1, u2 , u3}。
评判时由评委对每一个评判因素分别进行打分,评判等级是好(v1)、较好(v2) 、一般(v3)、差(v4),它们构成论域:V= {v1, v2 , v3 , v4}。
仅就色而言,有60%的评委认为这道菜“好”, 20%的评委认为 “较好”,20%的评委认为 “一般”,没有评委认为 “差”,则对“色”的评价为:{0.6 , 0.2, 0.2, 0}
对“香”的评价为:{0.8 , 0.1, 0.1, 0}
对“味”的评价为:{0.3 , 0.3, 0.3, 0.1}
这样就可以写出矩阵R:
假设三个评判因素在评判中所占的权重分别是:“色”为0.3,“香”为0.3,“味”为0.4。这三个权重组成了U上的一个模糊向量:A={0.3 , 0.3, 0.4}
由此可得到评委对这道菜的综合评判为:
在此例中,评判结果的各项和刚好为1,所以它就是最终评判结果。
如果不是这样,还需要对其进行归一化处理,将归一化后的结果作为最终评判结果。
知识中只含有简单条件,且不带可信度因子的模糊推理称为简单模糊推理。
关于如何由已知的模糊知识和证据具体地推出模糊结论,目前已经提出了多种推理方法。其中包括扎德( L. A. Zadeh )等人提出的合成推理规则。
扎德:基于模糊关系合成推理的基本思想
IF x is A THEN y is B
”,首先构造出A与B之间的模糊关系R;合成推理规则:
对于知识IF x is A THEN y is B
x is A’
,且A与A’可以模糊匹配,则通过下述合成运算求取B’:B'= A’ ◦R
y is B'
,且B与B’可以模糊匹配,则通过下述合成运算求出A’:A’ =R◦B'
至于如何构造模糊关系R:
条件命题的极大极小规则:记获得的模糊关系为Rm
设A∈F(U)
, B∈F(V)
,其表示分别为
扎德把Rm定义为:
【例子】
设U=V={1,2,3,4,5}
, A=1/1+0.5/2
, B=0.4/3+0.6/4+1/5
并设模糊知识为:IF x is A THEN y is B
模糊证据为:x is A’
其中, A’的模糊集为: A’ =1/1+0.4/2+0.2/3
则:由模糊知识可得到 Rm
求B’:B’= A’ ◦R
若已知证据为: y is B’
B'=0.2/1+0.4/2+0.6/3+0.5/4 +0.3/5
则:
人工智能的各种学说
对比这几种模拟方法:
神经网络:是一种对人类智能的结构模拟方法,它是通过对大量人工神经元的广泛并行互联,构造人工神经网络系统去模拟生物神经系统的智能机理的。
进化计算:是一种对人类智能的演化模拟方法,它是通过对生物遗传和演化过程的认识,用进化算法去模拟人类智能的进化规律的。
模糊计算:是一种对人类智能的逻辑模拟方法,它是通过对人类处理模糊现象的认知能力的认识,用模糊逻辑去模拟人类的智能行为的。
MP模型是美国心理学家麦克洛奇(W.McM ulloch)和数理逻辑学家皮茨(W.Pitts) 根据生物神经元的功能和结构,于1943年提出的一种将神经元看作二进制阈值元件的简单模型。MP模型是大多数神经网络模型的基础。
MP模型示意图:
x1,x2,x3,...,xN
w1,w2,w3,...,wN
输出函数的作用
控制输入对输出的激活作用
对输入、输出进行函数转换
将可能无限域的输入变换成指定的有限范围内的输出
神经元的模型确定之后,一个神经网络的特性及能力主要取决于网络的拓扑结构及学习方法
人工神经网络(ANN)可以看成是以人工神经元为结点,用有向加权弧连接起来的有向图
人工神经网络模型是指对网络结构、联结权值和学习能力的总括。常用的网络模型已有数十种。例如:
传统的感知机模型;具有误差反向传播功能的反向传播网络模型;采用多变量插值的径向基函数网络模型;建立在统计学习理论基础上的支撑向量机网络模型;采用反馈联接方式的反馈网络模型;基于模拟退火算法的随机网络模型。
前馈网络
单层前馈网络是指那种只拥有单层计算节点的前向网络。它仅含有输入层和输出层,且只有输出层的神经元是可计算节点。
其中,输入向量为X=(x1,x2,…,xn);输出向量为Y=(y1,y2,…,ym);输入层各个输入到相应神经元的连接权值分别是wij,i=1,2,…,n,j=1,2,…, m。
若假设各神经元的阈值分别是θj,j=1,2,…,m,则各神经元的输出yj, j=1,2,…,m分别为:
其中,由所有连接权值wij构成的连接权值矩阵W为:
在实际应用中,该矩阵是通过大量的训练示例学习而形成的。
多层前馈网络是指那种除拥有输入、输出层外,还至少含有一个、或更多个隐含层的前馈网络。典型代表:BP网络。
隐含层作用:通过对输入层信号的加权处理,将其转移成更能被输出层接受的形式。
反馈网络
反馈网络是指允许采用反馈联结方式所形成的神经网络。反馈联结方式:是指一个神经元的输出可以被反馈至同层或前层的神经元。典型代表:Hopfield网络。
感知器是美国学者罗森勃拉特(Rosenblatt)于1957年为研究大脑的存储、学习和认知过程而提出的一类具有自学习能力的神经网络模型,其拓扑结构是一种分层前向网络。包括:单层感知器和多层感知器。
使用感知器的主要目的是 为了对外部输入进行分类。
罗森勃拉特已经证明,如果外部输入是线性可分的(指存在一个超平面可以将它们分开),则单层感知器一定能够把它划分为两类。其判别超平面由如下判别式确定:
作为例子,下面讨论用单个感知器实现逻辑运算的问题。
单层感知器是一种只具有单层可调节连接权值神经元的前向网络,这些神经元构成了单层感知器的输出层,是感知器的可计算节点。
多层感知器是通过在单层感知器的输入、输出层之间加入一层或多层处理单元所构成的。
误差反向传播(Error Back Propagation)网络简称为BP网络,是由美国加州大学的鲁梅尔哈特和麦克莱兰于1985年提出的一种网络模型。
在BP网络中,同层节点之间不存在相互连接,层与层之间多采用全互连方式,且各层的连接权值可调。BP网络实现了明斯基的多层网络的设想,是当今神经网络模型中使用最广泛的一种。
如上图所示,BP网络的网络拓扑结构是多层前向网络。
对BP网络需说明以下两点:
第一,BP网络的每个处理单元均为非线性输入/输出关系,其作用函数通常采用的是可微的Sigmoid函数,如:
!
第二,BP网络的学习过程是由工作信号的正向传播和误差信号的反向传播组成的。所谓正向传播,是指输入模式经隐层到输出层,最后形成输出模式;所谓误差反向传播,是指从输出层开始逐层将误差传到输入层,并修改各层联接权值,使误差信号为最小的过程。
Hopfield网络是由美国加州工学院物理学家霍普菲尔特1982年提出来的一种单层全互连的对称反馈网络模型。分为离散Hopfield网络和连续Hopfield网络。
离散Hopfield网络是在非线性动力学的基础上由若干基本神经元构成的一种单层全互连网络,其任意神经元之间均有连接,并且是一种对称连接结构。
离散Hopfield网络模型是一个离散时间系统,每个神经元只有0和1(或-1和1)两种状态,任意神经元i和j之间的连接权值为Wij。由于神经元之间为对称连接,且神经元自身无连接,因此有
由该连接权值所构成的连接矩阵是一个零对角的对称矩阵。
在 Hopfield网络中,虽然神经元自身无连接,但由于每个神经元都与其他神经元相连,即每个神经元的输出都将通过突触连接权值传递给别的神经元,同时每个神经元又都接受其他神经元传来的信息,这样对每个神经元来说,其输出经过其他神经元后又有可能反馈给自己,因此Hopfidld网络是一种反馈神经网络 。
【例子】
已知网络结构如图所示,网络输入输出路标所示。其中,f(x)为x的符号函数,bias取常数1,设初始值随机取成(0.75,0.5,-0.6)。利用误差传播学习算法调整神经网络权值。
解题过程:
机器学习的定义:
西蒙(Simon,1983):学习就是系统中的适应性变化,这种变化使系统在重复同样工作或类似工作时,能够做得更好。明斯基(Minsky,1985):学习是在人们头脑里(心理内部)有用的变化。
学习是一个有特定目的知识获取和能力增长过程,其内在行为是获得知识、积累经验、发现规律等,其外部表现是改进性能、适应环境、实现自我完善等。
机器学习是研究如何使用机器来模拟人类学习活动的一门学科。
进入21世纪,机器学习的阶段研究热点:
2000-2006年的流形学习、2006-2011年的稀疏学习、2012年-至今的深度学习、未来:迁移学习?
提一下,深度学习目前存在以下问题
归纳学习是应用归纳推理进行学习的一种方法。
归纳学习的模式:
实验规划过程通过对实例空间的搜索完成实例选择,并将这些选中拿到的活跃实例提交给解释过程。解释过程对实例加以适当转换,把活跃实例变换为规则空间中的特定概念,以引导规则空间的搜索。
归纳学习是目前研究得最多的学习方法,其学习目的是为了获得新概念、构造新规则或发现新理论。
根据归纳学习有无教师指导,可把它分为
类比学习(learning by analogy)就是通过类比,即通过对相似事物加以比较所进行的一种学习 。
类比学习是利用二个不同领域(源域、目标域)中的知识相似性,可以通过类比,从源域的知识(包括相似的特征和其它性质)推导出目标域的相应知识,从而实现学习。例如:
类比学习系统可以使一个已有的计算机应用系统转变为适应于新的领域,来完成原先没有设计的相类似的功能。
类比推理过程:
类比学习研究类型
S1:A->B
,如果有A'≌A
,则可能有B’满足A'->B'
解释学习(Explanation-based learning, EBL)兴起于20世纪80年代中期,根据任务所在领域知识和正在学习的概念知识,对当前实例进行分析和求解,得出一个表征求解过程的因果解释树,以获取新的知识。
例如:学生根据教师提供的目标概念、该概念的一个例子、领域理论及可操作准则,首先构造一个解释来说明为什么该例子满足目标概念,然后将解释推广为目标概念的一个满足可操作准则的充分条件。
解释学习过程和算法
米切尔提出了一个解释学习的统一算法EBG,建立了基于解释的概括过程,并用知识的逻辑表示和演绎推理进行问题求解。其一般性描述为:
EBG算法可概括为两步:
单层感知器学习算法可描述如下:
(1)、设t=0,初始化连接权和阈值。即给wi(0)(i=1, 2, … ,n)及θ(0)分别赋予一个较小的非零随机数,作为初值。其中,wi(0)是第0次迭代时输入向量中第i个输入的连接权值;θ(0)是第0次迭代时输出节点的阈值;
(2)、提供新的样本输入xi(t)(i=1, 2, … , n)和期望输出d(t);
(3)、计算网络的实际输出:
(4)、若y(t)=d(t),不需要调整连接权值,转(6)。否则,需要调整权值;
(5)、调整连接权值;
其中,η是一个增益因子,用于控制修改速度,其值如果太大,会影响wi(t)的收敛性;如果太小,又会使wi(t)的收敛速度太慢;
(6)、判断是否满足结束条件,若满足,算法结束;否则,将t值加1,转(2)重新执行。这里的结束条件一般是指wi(t)对一切样本均稳定不变。
若输入的两类样本是线性可分的,则该算法就一定会收敛。否则,不收敛。
【例子】用单层感知器实现逻辑“与”运算。
解:根据“与”运算的逻辑关系,可将问题转换为:
输入向量:
X1=[0, 0, 1, 1]
X2=[0, 1, 0, 1]
输出向量:
Y=[0, 0, 0, 1]
为减少算法的迭代次数,设初始连接权值和阈值取值如下:
w1(0)=0.5
, w2(0)=0.7
, θ(0)=0.6
并取增益因子η=0.4
。
算法的学习过程如下:
设两个输入为x1(0)=0
和x2(0)=0
,其期望输出为d(0)=0
,实际输出为:
y(0)=f(w1(0)x1(0)+ w2(0)x2(0)-θ(0))
=f(0.5*0+0.7*0-0.6)
=f(-0.6)
=0
实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(0)=0
和x2(0)=1
,期望输出d(0)=0
,实际输出:
y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0))
=f(0.5*0+0.7*1-0.6)
=f(0.1)
=1
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(1)=θ(0)+η(d(0)- y(0))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(1)=w1(0)+η(d(0)- y(0))x1(0)=0.5+0.4*(0-1)*0=0.5
w2(1)=w2(0)+η(d(0)- y(0))x2(0)=0.7+0.4*(0-1)*1=0.3
取下一组输入:x1(1)=1
和x2(1)=0
,其期望输出为d(1)=0
,实际输出为:
y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
=f(0.5*1+0.3*0-1)
=f(-0.51)
=0
实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(1)=1和x2(1)=1
,其期望输出为d(1)=1
,实际输出为:
y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
=f(0.5*1+0.3*1-1)
=f(-0.2)
=0
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(2)=θ(1)+η(d(1)- y(1))*(-1)=1+0.4*(1-0)*(-1)=0.6
w1(2)=w1(1)+η(d(1)- y(1))x1(1)=0.5+0.4*(1-0)*1=0.9
w2(2)=w2(1)+η(d(1)- y(1))x2(1)=0.3+0.4*(1-0)*1=0.7
取下一组输入:x1(2)=0
和x2(2)=0
,其期望输出为d(2)=0
,实际输出为:
y(2)=f(0.9*0+0.7*0-0.6)=f(-0.6)=0
实际输出与期望输出相同,不需要调节权值.
再取下一组输入:x1(2)=0
和x2(2)=1
,期望输出为d(2)=0
,实际输出为:
y(2)=f(0.9*0+0.7*1-0.6)=f(0.1)=1
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(3)=θ(2)+η(d(2)- y(2))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(3)=w1(2)+η(d(2)- y(2))x1(2)=0.9+0.4*(0-1)*0=0.9
w2(3)=w2(2)+η(d(2)- y(2))x2(2)=0.7+0.4*(0-1)*1=0.3
实际上,由与运算的阈值条件可知,此时的阈值和连接权值以满足结束条件,算法可以结束。
对此,可检验如下:
对输入:“0 0”有y=f(0.9*0+0.3*0-1)=f(-1)=0
对输入:“0 1”有y=f(0.9*0+0.3*0.1-1)=f(-0.7)=0
对输入:“1 0”有y=f(0.9*1+0.3*0-1)=f(-0.1)=0
对输入:“1 1”有y=f(0.9*1+0.3*1-1)=f(0.2)=1
多层感知器可以解决非线性可分问题,但其隐层神经元的期望输出却不易给出。
而单层感知器学习是一种有导师指导的学习过程,因此其学习算法无法直接用于多层感知器。
由于多层感知器和BP网络都属于前向网络,并能较好解决多层前馈网络的学习问题.
因此,可用BP学习来解决多层感知器学习问题。
相关的一些概念:决策树、 随机森林、逻辑回归、朴素贝叶斯、K最近临算法、马尔可夫……
遗传算法最早由美国密西根大学的J. Holland 教授提出,起源于20世纪60年代对自然和人工自适应系统的研究。70年代,De Jong 基于遗传算法的思想在计算机上进行了大量的纯数值函数优化计算实验。在一系列研究工作的基础上,80年代由Goldberg进行归纳总结,形成了遗传算法的基本框架
遗传算法(Genetic Algorithm, GA)是模拟生物在自然环境种的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。
是从初始种群出发,采用优胜劣汰、适者生存的自然法则选择个体,并通过杂交、变异来产生新一代种群,如此逐代进化,直到满足目标为止。
算法主要内容和基本步骤
(1) 选择编码策略,将问题搜索空间中每个可能的点用相应的编码策略表示出来,即形成染色体;
(2) 定义遗传策略,包括种群规模N,交叉、变异方法,以及选择概率Pr、交叉概率Pc、变异概率Pm等遗传参数;
(3) 令t=0,随机选择N个染色体初始化种群P(0);
(4) 定义适应度函数f(f>0);
(5) 计算P(t)中每个染色体的适应值;
(6) t=t+1;
(7) 运用选择算子,从P(t-1)中得到P(t);
(8) 对P(t)中的每个染色体,按概率Pc参与交叉;
(9) 对染色体中的基因,以概率Pm参与变异运算;
(10) 判断群体性能是否满足预先设定的终止标准,若不满足则返回(5)。
常用的遗传编码算法
适应度函数
适应度函数是一个用于对个体的适应性进行度量的函数。通常,一个个体的适应度值越大,它被遗传到下一代种群中的概率也就越大。
(1) 常用的适应度函数
原始适应度函数:直接将待求解问题的目标函数f(x)定义为遗传算法的适应度函数。
标准适应度函数
在某些情况下,需要对适应度函数进行加速速度。
适应度函数的加速变换有两种基本方法,即线性加速与非线性加速。
线性加速
f'(x)=αf(x)+β
xi(i=1,…,n)
为当前代中的染色体。xi(i=1,…,n)
为当前代中的染色体,M是指将当前的最大适应度放大为平均值的M倍。目的是通过M拉开不同染色体适应度值的差距。非线性加速
f'(x)=f(x)k
f'(x)=exp(-βf(x))
基本遗传操作
(1)、选择操作
选择(Selection)操作是指根据选择概率按某种策略从当前种群中挑选出一定数目的个体,使它们能够有更多的机会被遗传到下一代中。
常用的选择策略:
轮盘赌选择算法的基本思想是:根据每个个体的选择概率P(xi)将一个圆盘分成N个扇区,其中第i个扇区的中心角为:
再设立一个移动指针,将圆盘的转动等价为指针的移动。选择时,假想转动圆盘,若静止时指针指向第i个扇区,则选择个体i。
从统计角度看,个体的适应度值越大,其对应的扇区的面积越大,被选中的可能性也越大。这种方法有点类似于发放奖品使用的轮盘,并带有某种赌博的意思,因此亦被称为轮盘赌选择。
(2)、交叉操作
X=x1 x2 … xk xk+1 … xn
Y=y1 y2 … yk yk+1 … yn
X'= x1 x2 … xk yk+1 … yn
Y'= y1 y2 … yk xk+1 … xn
X=x1 x2 … xi … xj … xn
Y=y1 y2 … yi … yj …,yn
i< j < n
),两点交叉是将X中的xi+1到xj部分与Y中的yi+1到yj部分进行交换,交叉后生成的两个新的个体是:X'= x1 x2 … xi yi+1 … yj xj+1 … xn
Y'= y1 y2 … yi xi+1 … xj yj+1 … yn
X=x1x2… xi…xk…xn
和Y=y1y2…yi…yk…yn
,若随机选择对第k个分量以后的所有分量进行交换,则生成的两个新的个体向量是:
X'= x1 x2 … xk yk+1 … yn
Y'= y1 y2 … yk xk+1 … xn
(3)、变异操作
变异(Mutation)是指对选中个体的染色体中的某些基因进行变动,以形成新的个体。变异也是生物遗传和自然进化中的一种基本现象,它可增强种群的多样性。遗传算法中的变异操作增加了算法的局部随机搜索能力,从而可以维持种群的多样性。根据个体编码方式的不同,变异操作可分为二进制变异和实值变异两种类型。
由James Kenney(社会心理学博士)和Russ Eberhart(电子工程学博士)于1995年提出粒子群算法(Particle Swarm Optimization, PSO)。
通过遗留在来往路径上的信息素(Pheromone)的挥发性化学物质来进行通信和协调。
η(i, j)
是一个启发式信息,通常由η (i, j)=1/dij
直接计算。τ (i, j)
表示边(i, j)
上的信息素量。α =0
时,算法演变成传统的随机贪心算法,最邻近城市被选中的概率最大。当β =0
时,蚂蚁完全只根据信息素浓度确定路径,算法将快速收敛,这样构建出的最优路径与实际目标差异较大,算法性能较差。m
:蚂蚁个数;ρ
:信息素的蒸发率,规定0。
Δτ (i, j)
:第k只蚂蚁在它经过的边上释放的信息素量,它等于蚂蚁k本轮构建路径长度的倒数。Ck
:路径长度,它是Rk中所有边的长度和。模拟退火、工免疫系统、粗集理论、EDA算法、文化进化计算、量子计算、DNA计算、智能Agent、……
Agent的定义
Agent的译法
建议把agent译为“(艾)真体”的理由:
真体的要素
真体必须利用知识修改其内部状态(心理状态),以适应环境变化和协作求解的需要。真体的行动受其心理状态驱动。人类心理状态的要素有认知(信念、知识、学习等)、情感(愿望、兴趣、爱好等)和意向(意图、目标、规划和承诺等)三种。着重研究信念(belief)、愿望(desire)和意图(intention)的关系及其形式化描述,力图建立真体的BDI(信念、愿望和意图)模型,已成为真体理论模型研究的主要方向。
真体的特性
Natural Language Understanding 俗称人机对话。研究用电子计算机模拟人的语言交际过程,使计算机能理解和运用人类社会的自然语言如汉语、英语等,实现人机之间的自然语言通信,以代替人的部分脑力劳动,包括查询资料、解答问题、摘录文献、汇编资料以及一切有关自然语言信息的加工处理。
这一领域的研究涉及自然语言,即人们日常使用的语言,包括中文、英文、俄文、日文、德文、法文等等,所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。
实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义(即自然语言理解),也能以自然语言文本来表达给定的意图、思想等(即自然语言生成)。
无论实现自然语言理解,还是自然语言生成,都远不如人们原来想象的那么简单,而是十分困难的。从目前的理论和技术现状看,通用的、高质量的自然语言处理系统,仍然是较长期的努力目标,但是针对一定应用,具有相当自然语言处理能力的实用系统已经出现,有些已商品化,甚至开始产业化。典型的例子有:各种数据库和专家系统的自然语言接口、各种机器翻译系统、全文信息检索系统、自动文摘系统等。
自然语言处理,即实现人机间自然语言通信,或实现 自然语言理解和 自然语言生成是十分困难的。
造成困难的 根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性(ambiguity)。
一般情况下,它们中的大多数都是可以根据相应的语境和场景的规定而得到解决的。也就是说,从总体上说,并不存在歧义。这也就是我们平时并不感到自然语言歧义,和能用自然语言进行正确交流的原因。但是一方面,我们也看到,为了消解歧义,是需要极其大量的知识和进行推理的。如何将这些知识较完整地加以收集和整理出来;又如何找到合适的形式,将它们存入计算机系统中去;以及如何有效地利用它们来消除歧义,都是工作量极大且十分困难的工作。这不是少数人短时期内可以完成的,还有待长期的、系统的工作。
文字识别、语音识别、机器翻译、自动文摘、句法分析、文本分类、信息检索、信息获取、信息过滤、自然语言生成、中文自动分词、语音合成、问答系统
用自然语言与计算机进行通信,这是人们长期以来所追求的。因为它既有明显的实际意义,同时也有重要的理论意义:人们可以用自己最习惯的语言来使用计算机,而无需再花大量的时间和精力去学习不很自然和习惯的各种计算机语言;人们也可通过它进一步了解人类的语言能力和智能的机制。
解题过程
原始问题可以归约为下列3个子问题:
规约过程:
归约图示:
与或图表示
用一个类似于图的结构来表示,把问题归约为后继问题的替换集合。
与图:把一个复杂问题分解为若干个较为简单的子问题,形成“与”树。
或图:把原问题变换为若干个较为容易求解的新问题,形成“或”树。
谓词逻辑法采用谓词合式公式和一阶谓词演算将要解决的问题变成一个有待证明的问题,然后利用消解定理和消解反演来证明一个新语句是从已知的正确语句中导出的,从而证明这个新语句也是正确的。
谓词逻辑是一种 形式语言,能够将数学中的逻辑论证符号化,谓词逻辑经常与其他表示方法混合使用,可以表示比较复杂的问题。
语法和语义
连词和量词
连词
合取、析取、蕴涵、非、双条件
量词
全称量词、存在量词
谓词公式
原子谓词公式
由谓词符号和若干项组成的谓词演算
分子谓词公式
可以用 连词把原子谓词公式组成复合谓词公式,并把它叫做分子谓词公式
通常把合式公式叫做谓词公式。在谓词演算中合式公式的递归定义如下:
合式公式的性质
置换
置换是用变元、常量、函数来替换变元,使该变元不在公式中出现,形如{t1/x1, t2/x2,...,tn/xn}
的有限集合,其中:
t1,t2,...,tn
是项;x1,x2,...,xn
是互不相同的变元;ti/xi
表示用ti项替换变元xi
,不允许ti
和xi
相同,也不允许变元xi
循环地出现在另一个tj中。推理规则:用合式公式的集合产生新的合式公式
置换是 可结合的;
用s1s2
表示两个置换s1和s2的合成,L表示一个表达式,则有(Ls1)s2 = L(s1s2)
以及(s1s2)s3 = s1(s2s3)
,即用s1和s2相继作用于表达式L是与用s1s2
作用于L一样的。
一般说来,置换是 不可交换的,即s1s2 ≠ s2s1
。
合一
寻找项对变量的置换,以使两表达式一致,叫做合一。
如果一个置换s作用于表达式集合{Ei}
的每个元素,则用{Ei}s
来表示置换的集。称表达式{Ei}是可合一的,如果存在一个置换s使得:E1s = E2s = E3s =……
,那么,称此s为{Ei}
的合一者,因为s的作用是使集合{Ei}
成为单一形式。
例如:设有公式集E={ P( x, y, f(y)), P( a, g(x), z) }
,则s={a/x, g(a)/y, f(g(a))/z}
是它的一个合一。
语义网络是通过概念及其语义关系来表达知识一种网络图,是一种 结构化表示方法。
从图论的观点看,语义网络是一个“带标识的有向图”,它由 节点和 弧线或链线组成。节点代表实体、概念、情况等,弧线代表节点间的关系,必须带标识。
语义网络的解答是一个经过推理和匹配而得到的具有明确结果的新的语义网路,扩展后可以表示更复杂的问题。
语义网络中最基本的语义单元称为语义基元,可用三元组表示为:(结点1,弧,结点2)。
二元语义网络的表示
例如:用语义网络表示:李新的汽车的款式是“捷达”、银灰色;王红的汽车的款式是“凯越”、红色;李新和王红的汽车均属于具体概念,可增加“汽车” 这个抽象概念。
多元语义网络的表示
框架网络:
框架结构:
每个框架都有框架名,代表某一类对象
一个框架由若干个槽(项目)组成,用于表示对象的某个方面的属性
有时一个槽(属性)还要从不同的侧面来描述,每个侧面可具有一个或多个值。
注意:框架中的槽与侧面可任意定义,也可以是另一框架,形成框架网络系统。
剧本表示法(ppt-6)
过程表示法(ppt-6)
…
推理方法及其分类
推理的控制策略及其分类
推理的控制策略是指如何使用领域知识使推理过程尽快达到目标的策略。
*各种搜索策略的主要区别在于对OPEN表中节点的排列顺序不同。*例如,广度优先搜索把先生成的子节点排在前面,而深度优先搜索则把后生成的子节点排在前面。
广度优先搜索算法流程:
以八数码问题为例,得到下面这个广度优先搜索树:
在上述广度优先算法中需要注意两个问题:
广度优先搜索的优缺点:
深度优先搜索算法流程:
在深度优先搜索中,搜索一旦进入某个分支,就将沿着该分支一直向下搜索。如果目标节点恰好在此分支上,则可较快地得到解。但是,如果目标节点不在此分支上,而该分支又是一个无穷分支,则就不可能得到解。所以深度优先搜索是不完备的,即使问题有解,它也不一定能求得解。
因此,为了防止搜索过程沿着无益的路径扩展下去,往往给出一个节点扩展的最大深度,即 深度界限。当搜索深度达到了深度界限而仍未出现目标节点时,就换一个分支进行搜索。
有界深度优先搜索的特点:
代价树搜索
考虑边的代价的搜索方法,代价树搜索的目的是为了找到一条代价最小的解路径。代价树搜索方法包括:
启发式信息与代价函数
采用问题自身的特性信息,以指导搜索朝着最有希望的方向前进。
启发性信息是指那种与具体问题求解过程有关的,并可指导搜索过程朝着最有希望方向前进的控制信息。启发信息的启发能力越强,扩展的无用结点越少。
启发性信息的种类
估价函数的一般形式为:f(x) = g(x)+h(x)
,其中g(x)
表示从初始节点S0到节点x的代价;h(x)
是从节点x到目标节点Sg的最优路径的代价的估计,它体现了问题的启发性信息,h(x)
称为启发函数。
A算法与A*算法
A算法:在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)
对OPEN表中的节点进行排序,则该搜索算法为A算法。
A算法的类型
可根据搜索过程中选择扩展节点的范围,将启发式搜索算法分为:
A*算法是对A算法的估价函数f(n)=g(n)+h(n)
加上某些限制后得到的一种启发式搜索算法。
假设f*(n)
是从初始节点出发经过节点n达到目标节点的最小代价,估价函数f(n)
是对f*(n)
的 估计值。且f*(n)=g*(n)+h*(n)
,g*(n)
是从初始节点S0到节点n的最小代价。h*(n)
是从节点n到目标节点的最小代价,若有多个目标节点,则为其中最小的一个。
A*算法对A算法(全局择优的启发式搜索算法)中的g(n)
和h(n)
分别提出如下限制:
g(n)
是对最小代价g*(n)
的估计,且g(n)>0
;h(n)
是最小代价h*(n)
的下界,即对任意节点n均有h(n)≤h*(n)
。即:满足上述两条限制的A算法称为A*算法。
1、 与/或树的一般搜索过程
(1) 把原始问题作为初始节点S0,并把它作为当前节点;
(2) 应用分解或等价变换操作对当前节点进行扩展;
(3) 为每个子节点设置指向父节点的指针;
(4) 选择合适的子节点作为当前节点,反复执行第(2)步和第(3)步,在此期间需要多次调用可解标记过程或不可解标记过程,直到初始节点被标记为可解节点或不可解节点为止。
2、 与/或树的广度优先搜索
(1)把初始节点S0放入OPEN表中;
(2)把OPEN表的第一个节点取出放入CLOSED表,并记该节点为n;
(3)如果节点n可扩展,则做下列工作:
① 扩展节点n,将其子节点放入OPEN表的尾部,并为每一个子节点设置指向父节点的指针;
② 考察这些子节点中有否终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功,退出搜索过程;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。
③ 转第(2)步。
(4) 如果节点n不可扩展,则作下列工作:
① 标记节点n为不可解节点;
② 应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。
③ 转第(2)步。
【例子】 设有下图所示的与/或树,节点按标注顺序进行扩展,其中标有t1、t2、t3的节点是终止节点,A、B、C为不可解的端节点。
本例中与/或树的广度优先搜索过程:
(1) 先扩展1号节点,生成2号节点和3号节点。
(2) 扩展2号节点,生成A节点和4号节点。
(3) 扩展3号节点,生成t1节点和5号节点。由于t1为终止节点,则标记它为可解节点,并应用可解标记过程,不能确定3号节点是否可节。
(4) 扩展节点A,由于A是端节点,因此不可扩展。调用不可解标记过程。
(5) 扩展4号节点,生成t2节点和B节点。由于t2为终止节点,标记为可解节点,应用可解标记过程,可标记2号节点为可解,但不能标记1号节点为可解。
(6) 扩展5号节点,生成t3节点和C节点。由于t3为终止节点,标记它为可解节点,应用可解标记过程,可标记1号节点为可解节点。
(7) 搜索成功,得到由1、2、3、4、5号节点和t1、t2、t3节点构成的解树。
3、 与/或树的深度优先搜索
(1)把初始节点S0放入OPEN表中;
(2)把OPEN表第一个节点取出放入CLOSED表,并记该节点为n;
与/或树的深度优先搜索算法如下:
(3)如果节点n的深度等于dm,则转第(5)步的第①点;
(4)如果节点n可扩展,则做下列工作:
① 扩展节点n,将其子节点放入OPEN表的首部,并为每一个子节点设置指向父节点的指针;
② 考察这些子节点中是否有终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。
③ 转第(2)步。
(5)如果节点n不可扩展,则作下列工作:
① 标记节点n为不可解节点;
② 应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。
③ 转第(2)步。
4、 与/或树的启发式搜索
(1) 把初始节点S0放入OPEN表中;
(2) 求出希望树T,即根据当前搜索树中节点的代价h求出以S0为根的希望树T;
(3) 依次在OPEN表中取出T的端节点放入CLOSED表,并记该节点为n;节点n有三种不同情况:
①n为终止节点,
②n不是终止节点,但可扩展,
③n不是终止节点,且不可扩展,
对三种情况分别进行步骤(4) (5) (6)的操作过程;
(4)如果节点n为终止节点,则:
① 标记节点n为可解节点;
② 在T上应用可解标记过程,对n的先辈节点中的所有可解解节点进行标记;
③ 如果初始解节点S0能够被标记为可解节点,则T就是最优解树,成功退出;
④ 否则,从OPEN表中删去具有可解先辈的所有节点。
⑤ 转第(2)步。
(5) 如果节点n不是终止节点,但可扩展,则:
① 扩展节点n,生成n的所有子节点;
② 把这些子节点都放入OPEN表中,并为每一个子节点设置指向父节点n的指针;
③ 计算这些子节点及其先辈节点的h值;
④ 转第(2)步。
(6) 如果节点n不是终止节点,且不可扩展,则:
① 标记节点n为不可解节点;
② 在T上应用不可解标记过程,对n的先辈节点中的所有不可解解节点进行标记;
③ 如果初始解节点S0能够被标记为不可解节点,则问题无解,失败退出;
④ 否则,从OPEN表中删去具有不可解先辈的所有节点。
⑤ 转第(2)步。
5、 博弈树的启发式搜索
6、 α-β剪枝技术
搜索的完备性与效率
完备性
搜索效率
其中,外显率定义为:P=L/T
;L为从初始节点到目标节点的路径长度;T为整个搜索过程中所生成的节点总数。
外显率反映了搜索过程中从初始节点向目标节点前进时 搜索区域的宽度。当T=L
时,P=1
,表示搜索过程中每次只生成一个节点,它恰好是解路径上的节点,搜索效率最高。P越小表示搜索时产生的无用节点愈多,搜索效率愈低。
有效分枝因数B定义为:B+B^2+…+B^L=T
;B是有效分枝因数,它表示在整个搜索过程中 每个节点平均生成的子节点数目;L为从初始节点到目标节点的路径长度;T为整个搜索过程中所生成的节点总数。当B=1
时,L=T
,此时所生成的节点数最少,搜索效率最高。
从一组已知为真的事实出发,直接运用经典逻辑中的推理规则推出结论的过程称为自然演绎推理。
自然演绎推理最基本的推理规则是三段论推理,它包括:
【例子】 设已知如下事实:
(1) 只要是需要编程序的课,王程都喜欢。
(2) 所有的程序设计语言课都是需要编程序的课。
(3) C是一门程序设计语言课。
求证:王程喜欢C这门课。
证明:
第一步,首先定义谓词
Prog(x)
:x是需要编程序的课。
Like(x, y)
: x喜欢y。
Lang(x)
: x是一门程序设计语言课
第二步,把已知事实及待求解问题用谓词公式表示如下:
Prog(x)→Like(Wang , x)
(∀x)( Lang(x)→Prog(x))
Lang(C)
第三步,应用推理规则进行推理:
Lang(y)→Prog(y)
全称固化
Lang(C),Lang(y)→Prog(y) ⇒ Prog(C)
假言推理 {C/y}
Prog(C), Prog(x)→Like(Wang , x) ⇒ Like(Wang , C)
假言推理 {C/x}
因此,王程喜欢C这门课。
P→Q
为真时,希望通过肯定后件Q为真来推出前件P为真,这是不允许的。P→Q
为真时,希望通过否定前件P来推出后件Q为假,这也是不允许的。一种基于 鲁滨逊(Robinson)消解原理的机器推理技术。鲁滨逊消解原理亦称为消解原理,是鲁滨逊于1965年在海伯伦(Herbrand)理论的基础上提出的一种基于逻辑的“反证法”。
在人工智能中,几乎所有的问题都可以转化为一个定理证明问题。定理证明的实质,就是要对前提P和结论Q,证明
P→Q
永真。
而要证明P→Q
永真,就是要证明P→Q
在任何一个非空的个体域上都是永真的。这将是非常困难的,甚至是不可实现的。
鲁滨逊消解原理把永真性的证明转化为关于 不可满足性的证明。即:要证明P→Q
永真,只需证明P∧¬Q
不可满足。(¬(P→Q) ⇔ ¬(¬P∨Q) ⇔ P∧¬Q
)
鲁滨逊消解原理是在子句集的基础上讨论问题的。因此,讨论消解演绎推理之前,需要先讨论子句集的有关概念。
把谓词公式化成子句集的步骤
子句集的意义
在上述化简过程中,由于在消去存在量词时所用的Skolem函数可以不同,因此化简后的标准子句集是不唯一的。因此,当原谓词公式为非永假时,它与其标准子句集并不等价。但当原谓词公式为永假(或不可满足)时,其标准子句集则一定是永假的,即Skolem化并不影响原谓词公式的永假性。
不可满足性
对于任意论域中的任意一个解释,S中的子句不能同时取得真值T。
定理:设有谓词公式F,其子句集为S,则F不可满足的充要条件是S不可满足。
鲁滨逊消解原理的基本思想
鲁滨逊消解原理包括
命题逻辑的消解
消解推理的核心是求两个子句的 消解式。
【例子】
S1的不可满足性⇔S的不可满足性
S2的不可满足性⇔S的不可满足性
上述两个推论说明,为证明子句集S的不可满足性,只要对其中可进行消解得子句进行消解,并把消解式加入到子句集S中,或者用消解式代替他的亲本子句,然后对新的子句集证明其不可满足性就可以了。
如果经消解能得到空子句,根据空子句的不可满足性,即可得到原子句集S是不可满足的结论。
在命题逻辑中,对不可满足的子句集S,其消解原理是完备的。即:子句集S是不可满足的,当且仅当存在一个从S到空子句的消解过程。
应用消解原理证明定理的过程称为 消解反演。
命题逻辑的消解反演:
在命题逻辑中,已知F,证明G为真的消解反演过程如下:
【例子】 设已知的公式集为{P,(P∧Q)→R,(S∨T)→Q,T}
,求证:R为真。
解:假设结论R为假, 将¬R加入公式集,并化为子句集:
S={P,¬P∨¬Q∨R,¬S∨Q,¬T∨Q,T,¬R}
其消解过程如下图的消解演绎树所示。
该树根为空子句NIL,则子句集S不可满足,即假设有误,于是证得R为真。
谓词逻辑的消解
设C1和C2是两个没有公共变元的子句,L1和L2分别是C1和C2中的文字。如果 σ 是L1和¬ L2存在的最一般合一
,则称:
C12=({C1σ}-{ L1σ})∪({ C2σ}-{ L2σ})
为C1和C2的二元消解式,L1和L2为消解式上的文字。
注意:在谓词逻辑的消解过程中,要注意以下几个问题:
【例子】
例1、设C1=P(a)∨R(x)
,C2=¬P(y)∨Q(b)
,求 C12。
解:取L1= P(a)
, L2=¬P(y)
,则L1和¬L2的最一般合一是σ={a/y}
。因此:
C12 = ( {C1σ}-{L1σ}) ∪ ({C2σ}-{L2σ})
= ({P(a), R(x)}-{P(a)})∪({¬P(a), Q(b)}-{¬P(a)})
= ({R(x)})∪({Q(b)})
= { R(x), Q(b) }
= R(x)∨Q(b)
例2、设C1=P(x)∨Q(a)
,C2=¬P(b)∨R(x)
,求 C12。
解:由于C1和C2有相同的变元x,不符合定义的要求。为了进行消解,需要修改C2中变元的名字。令C2=¬P(b)∨R(y)
,此时L1= P(x)
, L2 =¬P(b)
,L1和¬L2的最一般合一是 σ={b/x}
。则有:
C12 = ({C1σ}-{L1σ})∪ ({C2σ}-{L2σ})
= ({P(b), Q(a)}-{P(b)}) ∪ ({¬P(b), R(y)}-{¬P(b)})
= ({Q(a)}) ∪ ({R(y)})
= {Q(a), R(y)}
= Q(a)∨R(y)
例3、设 C1=P(a)∨¬Q(x)
,C2=¬P(y)∨Q(b)
,求C12。
解:对C1和C2通过最一般合一(σ={b/x, a/y}
)的作用,便得到空子句NIL的结论,从而得出C1、C2互相矛盾的结论,而事实上C1、C2并无矛盾。
例4、设 C1=P(x)∨P(f(a))∨Q(x)
,C2=¬P(y)∨R(b)
,求C12。
解:本例的C1中有可合一的文字P(x)与P(f(a)),用它们的最一般合一σ={f(a)/x}
进行代换,可得到 :
C1σ=P(f(a))∨Q(f(a))
此时对C1σ与C2进行消解。选L1= P(f(a))
, L2 =¬P(y)
,L1和L2的最一般合一是σ={f(a)/y}
,则可得到C1和C2的二元消解式为:
C12=R(b)∨Q(f(a))
例5、设 C1=P(y)∨P(f(x))∨Q(g(x))
、C2=¬P(f(g(a)))∨Q(b)
,求C12。
解:对C1,取最一般合一σ={f(x)/y}
,得C1的因子C1σ=P(f(x))∨Q(g(x))
,对C1的因子和C2消解(σ={g(a)/x }
),可得:C12=Q(g(g(a)))∨Q(b)
谓词逻辑的消解反演:
在谓词逻辑中,已知F,证明G是F的结论的消解反演过程如下:
与命题逻辑的消解反演过程比较一下
【例子】
例1、已知F:(∀x)((∃y)(A(x, y)∧B(y))→(∃y)(C(y)∧D(x, y)))
、G:¬(∃x)C(x)→(∀x)(∀y)(A(x, y)→¬B(y))
,求证G是F的逻辑结论。
证明:
第一步,先把G否定,并放入F中,得到的{F,¬G}
:
{(∀ x)((∃ y)(A(x,y)∧B(y))→(∃ y)(C(y)∧D(x,y)))
,¬(¬(∃ x)C(x)→(∀ x)(∀ y)(A(x,y)→¬ B(y)))}
第二步,把{F,¬G}化成子句集,得到
(1) ¬A(x,y)∨¬B(y)∨C(f(x))
(2) ¬A(u,v)∨¬B(v)∨D(u,f(u))
(3) ¬C(z)
(4) A(m,n)
(5) B(k)
第三步,应用谓词逻辑的消解原理对上述子句集进行消解,其过程为:
(6) ¬ A(x,y)∨¬ B(y)
(1)和(3)消解,取σ={f(x)/z}
(7) ¬ B(n)
(4)和(6)消解,取σ={m/x,n/y}
(8) NIL
(5)和(7)消解,取σ={n/k}
最后,“G是F的逻辑结论”得证。
上述消解过程可用如下消解树来表示
例2、“快乐学生”问题
假设:任何通过计算机考试并获奖的人都是快乐的,任何肯学习或幸运的人都可以通过所有考试,张不肯学习但他是幸运的,任何幸运的人都能获奖。
求证:张是快乐的。
证明:(完整的解题过程)
第一步,先定义谓词:
Pass(x, y):x可以通过y考试
Win(x, prize):x能获得奖励
Study(x) :x肯学习
Happy(x):x是快乐的
Lucky(x) :x是幸运的
第二步,将已知条件以及结论的否定用谓词表示如下:
“任何通过计算机考试并奖的人都是快乐的”
(∀x)(Pass(x, computer)∧Win(x, prize)→Happy(x))
“任何肯学习或幸运的人都可以通过所有考试”
(∀x)(∀y)(Study(x)∨Lucky(x)→Pass(x, y))
“张不肯学习但他是幸运的”
¬Study(zhang)∧Lucky(zhang)
“任何幸运的人都能获奖”
(∀x)(Lucky(x)→Win(x, prize))
结论“张是快乐的”的否定
¬Happy(zhang)
第三步,将上述谓词公式转化为子句集如下:
1. ¬Pass(x, computer)∨¬Win(x, prize)∨Happy(x)
2. ¬Study(y)∨Pass(y, z)
3. ¬Lucky(u)∨Pass(u, v)
4. ¬Study(zhang)
5. Lucky(zhang)
6. ¬Lucky(w)∨Win(w, prize)
7. ¬ Happy(zhang)
(结论的否定)
第四步,按消解原理进行消解,消解树如下:
最后,“张是快乐的”得证。
在消解演绎推理中,由于事先并不知道哪些子句对可进行消解,更不知道通过对哪些子句对的消解能尽快得到空子句,因此就需要对子句集中的所有子句逐对进行比较,直到得出空子句为止。这种盲目的全面进行消解的方法,不仅会产生许多无用的消解式,更严重的是会产生组核爆炸问题。因此,需要研究有效的消解策略来解决这些问题。
常用的消解策略可分为两大类:
消解原理除了可用于 定理证明外,还可用来 求取问题答案,其思想与定理证明相似。
其一般步骤为:
【例子】
例1、已知:“张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。”
问:“现在李在哪个教室上课?”
解:第一步,首先定义谓词
C(x, y)
:x和y是同班同学
At(x, u)
:x在u教室上课。
第二步,把已知前提用谓词公式表示如下:
C(zhang, li)
(∀x)(∀y)(∀u)(C(x, y)∧At(x, u)→At(y,u))
At(zhang, 302)
把目标的否定用谓词公式表示如下:
¬(∃v)At(li, v)
第三步,把上述表示前提的谓词公式化为子句集:
C(zhang, li)
¬C(x, y)∨¬At(x, u)∨At(y, u)
At(zhang, 302)
把目标的否定化成子句式,并用下面的 重言式代替:
¬At(li,v) ∨At(li,v)
第四步,把此 重言式加入前提子句集中,得到一个新的子句集,对这个新的子句集,应用消解原理求出其证明树。
求解过程如下图所示。该证明树的根子句就是所求的答案,即“李明在302教室”。
例2、已知:A,B,C三人中有人从不说真话,也有人从不说假话。某人向这三人分别提出同一个问题:谁是说谎者?
A答:“B和C都是说谎者”;
B答:“A和C都是说谎者”;
C答:“A和B中至少有一个是说谎者”。
问:求谁是老实人,谁是说谎者?
解:第一步,首先定义谓词
T(x)
:表示x说真话
第二步,把已知前提用谓词公式表示如下:
有人从不说真话:¬T(C)∨¬T(A)∨¬T(B)
有人从不说假话:T(C)∨T(A)∨T(B)
根据“A答:B和C都是说谎者”,则
若A说真话:T(A)→¬T(B)∧¬T(C)
若A说假话: ¬T(A)→T(B)∨T(C)
同理,根据“B答:A和C都是说谎者”,则
T(B)→¬T(A)∧¬T(C)
¬T(B)→T(A)∨T(C)
根据“C答:A和B中至少有一个是说谎者”,则
T(C)→¬T(A)∨¬T(B)
¬T(C)→T(A)∧T(B)
第三步,把上述公式化成子句集,得到前提子句集S:
¬T(A)∨¬T(B)
¬T(A)∨¬T(C)
T(C)∨T(A)∨T(B)
¬T(B)∨¬T(C)
¬T(C)∨¬T(A)∨¬T(B)
T(A)∨T(C)
T(B)∨T(C)
第四步,先求谁是老实人,结论的否定为:¬(∃x)T(x)
,把目标的否定化成子句式,并用下面的重言式代替:
¬T(x)∨T(x)
把此重言式加入前提子句集S,得到一个新子句集。
第五步,对这个新的子句集,应用消解原理求出其证明树。
第六步,同理证明A不是老实人,结论的否定为: ¬T(A),将结论的否定¬(¬T(A)) 加入并入前提子句集S中,应用消解原理对新的子句集进行消解:
(¬A∧¬B)→C ¬A→(B∨C)
(¬A∧¬C)→B ¬B→(A∨C)
(¬C∧¬B)→A ¬C→(B∨A)
在消解演绎推理中,需要把谓词公式化为子句形,这使得原来蕴含在谓词公式中的一些重要信息却会在求取子句形的过程中被丢失。
在不少情况下人们多希望使用接近于问题原始描述的形式来进行求解,而不希望把问题描述化为子句集。
基于规则的演绎推理又称为与/或形演绎推理,不再把有关知识转化为子句集,而是把领域知识及已知事实分别用蕴含式及与/或形表示出来,然后通过运用蕴含式进行演绎推理,从而证明某个目标公式。
规则是一种比较接近于人们习惯的问题描述方式,按照 蕴含式(“If →Then”规则)这种问题描述方式进行求解的系统称为基于规则的系统,或者叫做 规则演绎系统。
规则演绎系统按照推理方式可分为:
首先说明一下,在规则正向演绎系统中,对已知事实和规则都有一定的要求,如果不是所要求的形式,需要进行变换。
事实表达式的与或形变换
详细来说,把事实表达式化为非蕴含形式的与/或形的步骤如下:
【例子】
有如下表达式
(∃x) (∀y)(Q(y, x)∧﹁((R(y)∨P(y))∧S(x, y)))
可把它转化为:
Q(z, a)∧( ( ﹁R(y)∧﹁P(y) )∨﹁S(a, y) )
这就是 与/或形表示,也可用一棵与/或图表示出来。
关于 与/或图说明以下几点:
E1∨E2∨…∨Ek
,其中每个子表达式Ei均被表示为E1∨E2∨…∨Ek
的后继节点,并由一个k线连接符(即图中的半圆弧)将这些后继节点都连接到其父节点,即表示成与的关系。E1∧E2∧…∧Ek
,其中的每个子表达式Ei均被表示为E1∧E2∧…∧Ek
的一个单一的后继节点,无需用连接符连接,即表示成或的关系。有了与/或图的表示,就可以求出其解树(结束于文字节点上的子树)集。可以发现,事实表达式的子句集与解树集之间存在着一一对应关系,即 解树集中的每个解树都对应着子句集中的一个子句。
解树集中每个解树的端节点上的文字的析取就是子句集中的一个子句。
上面那个与/或图有3个解树,分别对应这以下3个子句:
Q(z, a)
、﹁R(y)∨ ﹁ S(a, y)
、﹁P(y)∨ ﹁ S(a, y)
还需要注意以下两点:
规则的表示
为简化演绎过程,通常要求规则具有如下形式:L→W
,其中,L为单文字,W为与/或形公式。
(之所以限制前件L为单文字,是因为在进行正向演绎推理时要用规则作用于表示事实的与/或树,而该与/或树的叶节点都是单文字,这样就可用规则的前件与叶节点进行简单匹配。对非单文字情况,若形式为L1∨L2→W,则可将其转换成与之等价的两个规则L1→W与 L2→W进行处理。)
将规则转换为要求形式的步骤:
1、 暂时消去蕴含符号“→”。设有如下公式:
(∀x)(((∃y) (∀ z)P(x, y,z))→(∀u)Q(x, u))
运用等价关系“P→Q⇔﹁P∨Q”,可将上式变为:
(∀x)(﹁((∃ y) (∀z)P(x, y,z))∨(∀u)Q(x, u))
2、 把否定符号“﹁”移到紧靠谓词的位置上,使其作用域仅限于单个谓词。通过使用狄.摩根定律及量词转换律可把上式转换为:
(∀ x)( (∀y) (∃z)﹁P(x, y,z))∨ (∀u)Q(x, u))
3、 引入Skolem函数,消去存在量词。消去存在量词后,上式可变为:
(∀ x)( (∀y) (﹁P(x, y,f(x,y)))∨(∀u)Q(x, u))
4、 把所有全称量词移至前面化成前束式,消去全部全称量词。消去全称量词后,上式变为:
﹁P(x, y,f(x,y))∨Q(x, u)
此公式中的变元都被视为受全称量词约束的变元。
5、 恢复蕴含式表示。利用等价关系“﹁P∨Q⇔P→Q
”将上式变为:
P(x, y,f(x,y))→Q(x, u)
目标公式的表示形式
推理过程
规则正向演绎推理过程是从已知事实出发,不断运用规则,推出欲证明目标公式的过程。
先用与/或树把已知事实表示出来,然后再用规则的前件和与/或树的叶节点进行匹配,并通过一个匹配弧把匹配成功的规则加入到与/或树中,依此使用规则,直到产生一个含有以目标节点为终止节点的解树为止。
下面分命题逻辑和谓词逻辑两种情况来讨论规则正向演绎过程。
命题逻辑的规则正向演绎过程
已知事实:A∨B
规则:r1: A→C∧D
,r2: B→E∧G
目标公式:C∨G
证明:
1)先将已知事实用与/或树表示出来;
2)然后再用匹配弧把r1和r2分别连接到事实与/或树中与r1和r2 的前件匹配的两个不同端节点;
3) 由于出现了以目标节点为终节点的解树,故推理过程结束。这一证明过程可用下图表示。
谓词逻辑的规则正向演绎过程
已知事实的与/或形表示:P(x, y)∨(Q(x)∧R(v, y))
规则:P(u, v)→(S(u)∨N(v))
目标公式:S(a)∨N(b)∨Q©
证明:
在谓词逻辑情况下,由于事实、规则及目标中均含有变元,因此,其规则演绎过程还需要用最一般合一对变进行置换。证明过程可用下图表示。
产生式系统的 基本结构由 数据库、产生式规则和 控制策略三部分构成。
产生式系统的推理分为 正向推理、逆向推理和 双向推理三种形式。
产生式系统的主要 优缺点
现实世界中的大多数问题存在随机性、模糊性、不完全性和不精确性。对于这些问题,若采用前面所讨论的精确性推理方法显然是无法解决的。
为此,出现了一些新的逻辑学派,称为非经典逻辑,相应的推理方法称为 非经典推理。包括非单调性推理、不确定性推理、概率推理和贝叶斯推理等。
T(E1 AND E2)=min{T(E1),T(E2)}
T(E1 OR E2)=max{T(E1),T(E2)}
T(E1 AND E2)=T(E1)T(E2)
T(E1 OR E2)=T(E1)+T(E2)-T(E1)T(E2)
T(E1 AND E2)=max{0,T(E1)+T(E2)-1}
T(E1 OR E2)=min{1,T(E1)+T(E2)}
T(E)
和规则的强度F(E,H)
,则结论H的不确定性:T(H) = g1[T(E),F(E,H)]
T(E1 AND E2) = g2[T(E1), T (E2)]
T(E1 OR E2) = g3[T(E1), T (E2)]
T1(H)
和T2(H)
,则证据E1和E2的组合导致结论H的不确定性:T(H)=g[T1(H), T2(H)]
【例子】
设H1,H2,H3分别是三个结论,E是支持这些结论的证据。已知:
P(H1)=0.3
P(H2)=0.4
P(H3)=0.5
P(E|H1)=0.5
P(E|H2)=0.3
P(E|H3)=0.4
求P(H1|E),P(H2|E)及P(H3|E)的值各是多少?
解:
同理可得:
P(H2|E)=0.26
P(H3|E)=0.43
观察:( 注:P(E)=0.47 )
P(H1)=0.3 , P(E|H1)=0.5 P(H1|E)=0.32
P(H2)=0.4 , P(E|H2)=0.3 P(H2|E)=0.26
P(H3)=0.5 , P(E|H3)=0.4 P(H3|E)=0.43
结论:由于E的出现,H1成立的可能性增加,H2和H3成立的可能性不同程度的下降。
使用概率推理方法求结论Hi在存在证据E时的条件概率P(Hi|E) ,需要给出结论Hi的先验概率P(Hi)及证据E的条件概率 P(E|Hi)。这对于实际应用是不容易做到的。
Duda 和 Hart 等人在贝叶斯公式的基础上,于1976年提出主观贝叶斯方法,建立了不精确推理的模型,并把它成功地应用于PROSPECTOR专家系统(PROSPECTOR是国际上著名的一个用于勘察固体矿的专家系统)。
知识不确定性的表示
在主观Bayes方法中,知识是用产生式表示的,其形式为:
IF E THEN (LS, LN) H
E表示规则前提条件,它既可以是一个简单条件,也可以是用AND或OR把多个简单条件连接起来的复合条件。
H是结论,用P(H)表示H的先验概率,它指出没有任何专门证据的情况下结论H为真的概率,其值由领域专家根据以往的实践经验给出。
LS是规则的充分性度量。用于指出E对H的支持程度,取值范围为[0,+∞),其定义为:
LN是规则的必要性度量。用于指出E对H为真的必要程度,即﹁E对对H的支持程度。取值范围为[0,+∞),其定义为:
证据不确定性的表示
组合证据不确定性的计算
不确定性的更新
主观贝叶斯方法的推理过程
什么是可信度
该方法 直观、简单而且 效果好,在专家系统等领域获得了较为广泛的应用。
C-F模型
C-F模型:基于可信度表示的不确定性推理的基本方法,其他可信度方法都是基于此发展而来。
知识的不确定性表示
知识的不确定性表示:在C-F模型中,知识是用产生式规则表示的,其一般形式为:
IF E THEN H (CF(H, E))
E
:知识的前提条件,可以是单一或复合条件;
H
:知识的结论,可以是单一结论或多个结论;
CF(H, E)
:知识的可信度,称为 可信度因子(Certainty Factor)或规则强度。
一般情况下,CF(H, E)的取值为[-1, 1],表示当证据E为真时,对结论H的支持程度。其值越大,表示支持程度越大。
例如:IF 发烧 AND 流鼻涕 THEN 感冒(0.7)
,表示当某人确实有“发烧”及“流鼻涕”症状时,则有七成的把握是患了感冒。
CF(H,E)的定义:
CF(H,E) = MB(H,E) - MD(H,E)
MB和MD的关系:
P(H|E)>P(H)
时: E的出现增加了H的概率MB(H,E)>0,MD(H,E)=0
P(H|E)时: E的出现降低了H的概率
MB(H,E) =0,MD(H,E)>0
因此,CF(H, E)的计算公式:
可信度的性质(ppt-25)
CF(H,E)+CF(﹁H,E)=0
CF(H1, E)=0.7, CF(H2, E)=0.4
证据不确定性的表示
否定证据的不确定性计算
CF(¬E)=-CF(E)
组合证据的不确定性计算
CF(E1), …, CF(En)
,则:CF(E)=min{CF(E1), CF(E2), … ,CF(En)}
CF(E1), …, CF(En)
,则:CF(E)=max{CF(E1), CF(E2), … ,CF(En)}
不确定性的更新
IF E THEN H (CF(H, E))
结论H的可信度由下式计算:
CF(H)=CF(H,E)×max{0,CF(E)}
结论不确定性的合成
IF E1 THEN H (CF(H, E1))
IF E2 THEN H (CF(H, E2))
CF1(H)=CF(H, E1) ×max{0, CF(E1)}
CF2(H)=CF(H, E2) ×max{0, CF(E2)}
(2)、用如下公式求E1与E2对H的综合可信度
【例子】
设有如下一组知识:
r1:IF E1 THEN H (0.9)
r2:IF E2 THEN H (0.6)
r3:IF E3 THEN H (-0.5)
r4:IF E4 AND ( E5 OR E6) THEN E1 (0.8)
已知:CF(E2)=0.8
,CF(E3)=0.6
,CF(E4)=0.5
,CF(E5)=0.6
,CF(E6)=0.8
,求:CF(H)
。
解:由r4得到:
CF(E1) = 0.8×max{0, CF(E4 AND (E5 OR E6))}
= 0.8×max{0, min{CF(E4), CF(E5 OR E6)}}
= 0.8×max{0, min{CF(E4), max{CF(E5), CF(E6)}}}
= 0.8×max{0, min{CF(E4), max{0.6, 0.8}}}
= 0.8×max{0, min{0.5, 0.8}}
= 0.8×max{0, 0.5}
= 0.4
由r1得到:
CF1(H) = CF(H, E1)×max{0, CF(E1)}
= 0.9×max{0, 0.4}
= 0.36
由r2得到:
CF2(H) = CF(H, E2)×max{ 0, CF(E2) }
= 0.6×max{ 0, 0.8 }
= 0.48
由r3得到:
CF3(H) = CF(H, E3)×max{ 0, CF(E3) }
= -0.5×max{ 0, 0.6 }
= -0.3
根据结论不精确性的合成算法,CF1(H)和CF2(H)同号,有:
CF12(H)和CF3(H)异号,有:
综合可信度为CF(H)=0.53。
专家系统的先行者费根鲍姆(Feigenbaum)曾把专家系统定义为一个应用知识和推理过程来求解那些需要大量的人类专家解决难题经验的智能计算机程序。
专家系统主要指的是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的经验方法来处理该领域的高水平难题。
一个基于规则的专家系统采用下列模块来建立产生式系统的模型:
以上部分专家系统就不详叙了。
模糊逻辑的发展,是由理论准备到理论提出再到理论应用的过程
f : A → {0,1}
μA : U → [0,1]
【例子】表示“20岁左右”
μA : U→[0,1] 或 u→μA(u)
【例子】
论域U={1,2,3,4,5},用模糊集表示“大”和“小”。
解:设A、B分别表示“大”与“小”的模糊集,μA ,μB分别为相应的隶属函数。
A = {0, 0, 0.1, 0.6, 1}
B = {1, 0.5, 0.01, 0, 0}
其中:
μA(1)=0, μA(2)=0 , μA(3)=0.1 , μA(4)=0.6 , μA(5)=1
μB(1)=1, μB(2)=0.5 , μB(3)=0.01 , μB(4)=0, μB(5)=0
(1)、论域离散且为有限
若论域 U={u1, … , un}为离散论域,模糊集A表示为:
A= {μA(u1), μA(u2), … , μA(un)}
也可写为:
A= μA(u1)/u1 + μA(u2)/u2 + … + μA(un)/un
其中,隶属度为0的元素可以不写。
例如:
A = 1/u1+0.7/u2+0/u3+0.4/u4
= 1/u1+0.7/u2+0.4/u4
(2)、论域连续
若论域是连续的,则模糊集可用实函数表示。
例如:以年龄为论域U=[0,100], “年轻”和“年老”这两个概念可表示为:
(3)、一般表示方法
不管论域 U 是有限的还是无限的,是连续的亦或是离散的,扎德( L. A. Zadeh )又给出了一种类似于积分的一般表示形式:
这里的记号不是数学中的积分符号,也不是求和,只是表示论域中各元素与其隶属度对应关系的总括。
【例子】
设U={u1,u2,u3},
A=0.3/u1+0.8/u2+0.6/u3; B=0.6/u1+0.4/u2+0.7/u3
求A∩B,A∪B和¬A。
A∩B = (0.3∧0.6)/u1+(0.8∧0.4)/u2+(0.6∧0.7)/u3
= 0.3/u1+0.4/u2+0.6/u3
A∪B = (0.3∨0.6)/u1+(0.8∨0.4)/u2+(0.6∨0.7)/u3
= 0.6/u1+0.8/u2+0.7/u3
¬A = (1-0.3)/u1+(1-0.8)/u2+(1-0.6)/u3
= 0.7/u1+0.2/u2+0.4/u3
设 Ai 是 Ui (i=1,2,…,n) 上的模糊集,则称为A1, A2, …, An的笛卡尔乘积,它是U1×U2×…×Un上的一个模糊集。
在U1×…×Un上一个n元模糊关系R是指以U1×…×Un为论域的一个模糊集,记为:
一般地说,当U和V都是有限论域时,U={u1,u2,…,um}
,V={v1,v2,…,vn}
,则U×V上的模糊关系R可用一个模糊矩阵表示
R1°R2
【例子】
设有两个模糊关系
则R1与R2的合成是
设A={μA(u1),μA(u2),…,μA(un)}
是论域U上的模糊集,R是U×V
上的模糊关系,则A°R = B
称为模糊变换。
例如:设A={0.2,0.5,0.3}
例如:设对某厨师做的一道菜进行评判
评判标准是:色(u1)、香(u2) 、味(u3),它们构成论域:U= { u1, u2 , u3}。
评判时由评委对每一个评判因素分别进行打分,评判等级是好(v1)、较好(v2) 、一般(v3)、差(v4),它们构成论域:V= {v1, v2 , v3 , v4}。
仅就色而言,有60%的评委认为这道菜“好”, 20%的评委认为 “较好”,20%的评委认为 “一般”,没有评委认为 “差”,则对“色”的评价为:{0.6 , 0.2, 0.2, 0}
对“香”的评价为:{0.8 , 0.1, 0.1, 0}
对“味”的评价为:{0.3 , 0.3, 0.3, 0.1}
这样就可以写出矩阵R:
假设三个评判因素在评判中所占的权重分别是:“色”为0.3,“香”为0.3,“味”为0.4。这三个权重组成了U上的一个模糊向量:A={0.3 , 0.3, 0.4}
由此可得到评委对这道菜的综合评判为:
在此例中,评判结果的各项和刚好为1,所以它就是最终评判结果。
如果不是这样,还需要对其进行归一化处理,将归一化后的结果作为最终评判结果。
知识中只含有简单条件,且不带可信度因子的模糊推理称为简单模糊推理。
关于如何由已知的模糊知识和证据具体地推出模糊结论,目前已经提出了多种推理方法。其中包括扎德( L. A. Zadeh )等人提出的合成推理规则。
扎德:基于模糊关系合成推理的基本思想
IF x is A THEN y is B
”,首先构造出A与B之间的模糊关系R;合成推理规则:
对于知识IF x is A THEN y is B
x is A’
,且A与A’可以模糊匹配,则通过下述合成运算求取B’:B'= A’ ◦R
y is B'
,且B与B’可以模糊匹配,则通过下述合成运算求出A’:A’ =R◦B'
至于如何构造模糊关系R:
条件命题的极大极小规则:记获得的模糊关系为Rm
设A∈F(U)
, B∈F(V)
,其表示分别为
扎德把Rm定义为:
【例子】
设U=V={1,2,3,4,5}
, A=1/1+0.5/2
, B=0.4/3+0.6/4+1/5
并设模糊知识为:IF x is A THEN y is B
模糊证据为:x is A’
其中, A’的模糊集为: A’ =1/1+0.4/2+0.2/3
则:由模糊知识可得到 Rm
求B’:B’= A’ ◦R
若已知证据为: y is B’
B'=0.2/1+0.4/2+0.6/3+0.5/4 +0.3/5
则:
人工智能的各种学说
对比这几种模拟方法:
神经网络:是一种对人类智能的结构模拟方法,它是通过对大量人工神经元的广泛并行互联,构造人工神经网络系统去模拟生物神经系统的智能机理的。
进化计算:是一种对人类智能的演化模拟方法,它是通过对生物遗传和演化过程的认识,用进化算法去模拟人类智能的进化规律的。
模糊计算:是一种对人类智能的逻辑模拟方法,它是通过对人类处理模糊现象的认知能力的认识,用模糊逻辑去模拟人类的智能行为的。
MP模型是美国心理学家麦克洛奇(W.McM ulloch)和数理逻辑学家皮茨(W.Pitts) 根据生物神经元的功能和结构,于1943年提出的一种将神经元看作二进制阈值元件的简单模型。MP模型是大多数神经网络模型的基础。
MP模型示意图:
x1,x2,x3,...,xN
w1,w2,w3,...,wN
输出函数的作用
控制输入对输出的激活作用
对输入、输出进行函数转换
将可能无限域的输入变换成指定的有限范围内的输出
神经元的模型确定之后,一个神经网络的特性及能力主要取决于网络的拓扑结构及学习方法
人工神经网络(ANN)可以看成是以人工神经元为结点,用有向加权弧连接起来的有向图
人工神经网络模型是指对网络结构、联结权值和学习能力的总括。常用的网络模型已有数十种。例如:
传统的感知机模型;具有误差反向传播功能的反向传播网络模型;采用多变量插值的径向基函数网络模型;建立在统计学习理论基础上的支撑向量机网络模型;采用反馈联接方式的反馈网络模型;基于模拟退火算法的随机网络模型。
前馈网络
单层前馈网络是指那种只拥有单层计算节点的前向网络。它仅含有输入层和输出层,且只有输出层的神经元是可计算节点。
其中,输入向量为X=(x1,x2,…,xn);输出向量为Y=(y1,y2,…,ym);输入层各个输入到相应神经元的连接权值分别是wij,i=1,2,…,n,j=1,2,…, m。
若假设各神经元的阈值分别是θj,j=1,2,…,m,则各神经元的输出yj, j=1,2,…,m分别为:
其中,由所有连接权值wij构成的连接权值矩阵W为:
在实际应用中,该矩阵是通过大量的训练示例学习而形成的。
多层前馈网络是指那种除拥有输入、输出层外,还至少含有一个、或更多个隐含层的前馈网络。典型代表:BP网络。
隐含层作用:通过对输入层信号的加权处理,将其转移成更能被输出层接受的形式。
反馈网络
反馈网络是指允许采用反馈联结方式所形成的神经网络。反馈联结方式:是指一个神经元的输出可以被反馈至同层或前层的神经元。典型代表:Hopfield网络。
感知器是美国学者罗森勃拉特(Rosenblatt)于1957年为研究大脑的存储、学习和认知过程而提出的一类具有自学习能力的神经网络模型,其拓扑结构是一种分层前向网络。包括:单层感知器和多层感知器。
使用感知器的主要目的是 为了对外部输入进行分类。
罗森勃拉特已经证明,如果外部输入是线性可分的(指存在一个超平面可以将它们分开),则单层感知器一定能够把它划分为两类。其判别超平面由如下判别式确定:
作为例子,下面讨论用单个感知器实现逻辑运算的问题。
单层感知器是一种只具有单层可调节连接权值神经元的前向网络,这些神经元构成了单层感知器的输出层,是感知器的可计算节点。
多层感知器是通过在单层感知器的输入、输出层之间加入一层或多层处理单元所构成的。
误差反向传播(Error Back Propagation)网络简称为BP网络,是由美国加州大学的鲁梅尔哈特和麦克莱兰于1985年提出的一种网络模型。
在BP网络中,同层节点之间不存在相互连接,层与层之间多采用全互连方式,且各层的连接权值可调。BP网络实现了明斯基的多层网络的设想,是当今神经网络模型中使用最广泛的一种。
如上图所示,BP网络的网络拓扑结构是多层前向网络。
对BP网络需说明以下两点:
第一,BP网络的每个处理单元均为非线性输入/输出关系,其作用函数通常采用的是可微的Sigmoid函数,如:
!
第二,BP网络的学习过程是由工作信号的正向传播和误差信号的反向传播组成的。所谓正向传播,是指输入模式经隐层到输出层,最后形成输出模式;所谓误差反向传播,是指从输出层开始逐层将误差传到输入层,并修改各层联接权值,使误差信号为最小的过程。
Hopfield网络是由美国加州工学院物理学家霍普菲尔特1982年提出来的一种单层全互连的对称反馈网络模型。分为离散Hopfield网络和连续Hopfield网络。
离散Hopfield网络是在非线性动力学的基础上由若干基本神经元构成的一种单层全互连网络,其任意神经元之间均有连接,并且是一种对称连接结构。
离散Hopfield网络模型是一个离散时间系统,每个神经元只有0和1(或-1和1)两种状态,任意神经元i和j之间的连接权值为Wij。由于神经元之间为对称连接,且神经元自身无连接,因此有
由该连接权值所构成的连接矩阵是一个零对角的对称矩阵。
在 Hopfield网络中,虽然神经元自身无连接,但由于每个神经元都与其他神经元相连,即每个神经元的输出都将通过突触连接权值传递给别的神经元,同时每个神经元又都接受其他神经元传来的信息,这样对每个神经元来说,其输出经过其他神经元后又有可能反馈给自己,因此Hopfidld网络是一种反馈神经网络 。
【例子】
已知网络结构如图所示,网络输入输出路标所示。其中,f(x)为x的符号函数,bias取常数1,设初始值随机取成(0.75,0.5,-0.6)。利用误差传播学习算法调整神经网络权值。
解题过程:
机器学习的定义:
西蒙(Simon,1983):学习就是系统中的适应性变化,这种变化使系统在重复同样工作或类似工作时,能够做得更好。明斯基(Minsky,1985):学习是在人们头脑里(心理内部)有用的变化。
学习是一个有特定目的知识获取和能力增长过程,其内在行为是获得知识、积累经验、发现规律等,其外部表现是改进性能、适应环境、实现自我完善等。
机器学习是研究如何使用机器来模拟人类学习活动的一门学科。
进入21世纪,机器学习的阶段研究热点:
2000-2006年的流形学习、2006-2011年的稀疏学习、2012年-至今的深度学习、未来:迁移学习?
提一下,深度学习目前存在以下问题
归纳学习是应用归纳推理进行学习的一种方法。
归纳学习的模式:
实验规划过程通过对实例空间的搜索完成实例选择,并将这些选中拿到的活跃实例提交给解释过程。解释过程对实例加以适当转换,把活跃实例变换为规则空间中的特定概念,以引导规则空间的搜索。
归纳学习是目前研究得最多的学习方法,其学习目的是为了获得新概念、构造新规则或发现新理论。
根据归纳学习有无教师指导,可把它分为
类比学习(learning by analogy)就是通过类比,即通过对相似事物加以比较所进行的一种学习 。
类比学习是利用二个不同领域(源域、目标域)中的知识相似性,可以通过类比,从源域的知识(包括相似的特征和其它性质)推导出目标域的相应知识,从而实现学习。例如:
类比学习系统可以使一个已有的计算机应用系统转变为适应于新的领域,来完成原先没有设计的相类似的功能。
类比推理过程:
类比学习研究类型
S1:A->B
,如果有A'≌A
,则可能有B’满足A'->B'
解释学习(Explanation-based learning, EBL)兴起于20世纪80年代中期,根据任务所在领域知识和正在学习的概念知识,对当前实例进行分析和求解,得出一个表征求解过程的因果解释树,以获取新的知识。
例如:学生根据教师提供的目标概念、该概念的一个例子、领域理论及可操作准则,首先构造一个解释来说明为什么该例子满足目标概念,然后将解释推广为目标概念的一个满足可操作准则的充分条件。
解释学习过程和算法
米切尔提出了一个解释学习的统一算法EBG,建立了基于解释的概括过程,并用知识的逻辑表示和演绎推理进行问题求解。其一般性描述为:
EBG算法可概括为两步:
单层感知器学习算法可描述如下:
(1)、设t=0,初始化连接权和阈值。即给wi(0)(i=1, 2, … ,n)及θ(0)分别赋予一个较小的非零随机数,作为初值。其中,wi(0)是第0次迭代时输入向量中第i个输入的连接权值;θ(0)是第0次迭代时输出节点的阈值;
(2)、提供新的样本输入xi(t)(i=1, 2, … , n)和期望输出d(t);
(3)、计算网络的实际输出:
(4)、若y(t)=d(t),不需要调整连接权值,转(6)。否则,需要调整权值;
(5)、调整连接权值;
其中,η是一个增益因子,用于控制修改速度,其值如果太大,会影响wi(t)的收敛性;如果太小,又会使wi(t)的收敛速度太慢;
(6)、判断是否满足结束条件,若满足,算法结束;否则,将t值加1,转(2)重新执行。这里的结束条件一般是指wi(t)对一切样本均稳定不变。
若输入的两类样本是线性可分的,则该算法就一定会收敛。否则,不收敛。
【例子】用单层感知器实现逻辑“与”运算。
解:根据“与”运算的逻辑关系,可将问题转换为:
输入向量:
X1=[0, 0, 1, 1]
X2=[0, 1, 0, 1]
输出向量:
Y=[0, 0, 0, 1]
为减少算法的迭代次数,设初始连接权值和阈值取值如下:
w1(0)=0.5
, w2(0)=0.7
, θ(0)=0.6
并取增益因子η=0.4
。
算法的学习过程如下:
设两个输入为x1(0)=0
和x2(0)=0
,其期望输出为d(0)=0
,实际输出为:
y(0)=f(w1(0)x1(0)+ w2(0)x2(0)-θ(0))
=f(0.5*0+0.7*0-0.6)
=f(-0.6)
=0
实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(0)=0
和x2(0)=1
,期望输出d(0)=0
,实际输出:
y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0))
=f(0.5*0+0.7*1-0.6)
=f(0.1)
=1
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(1)=θ(0)+η(d(0)- y(0))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(1)=w1(0)+η(d(0)- y(0))x1(0)=0.5+0.4*(0-1)*0=0.5
w2(1)=w2(0)+η(d(0)- y(0))x2(0)=0.7+0.4*(0-1)*1=0.3
取下一组输入:x1(1)=1
和x2(1)=0
,其期望输出为d(1)=0
,实际输出为:
y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
=f(0.5*1+0.3*0-1)
=f(-0.51)
=0
实际输出与期望输出相同,不需要调节权值。
再取下一组输入:x1(1)=1和x2(1)=1
,其期望输出为d(1)=1
,实际输出为:
y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
=f(0.5*1+0.3*1-1)
=f(-0.2)
=0
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(2)=θ(1)+η(d(1)- y(1))*(-1)=1+0.4*(1-0)*(-1)=0.6
w1(2)=w1(1)+η(d(1)- y(1))x1(1)=0.5+0.4*(1-0)*1=0.9
w2(2)=w2(1)+η(d(1)- y(1))x2(1)=0.3+0.4*(1-0)*1=0.7
取下一组输入:x1(2)=0
和x2(2)=0
,其期望输出为d(2)=0
,实际输出为:
y(2)=f(0.9*0+0.7*0-0.6)=f(-0.6)=0
实际输出与期望输出相同,不需要调节权值.
再取下一组输入:x1(2)=0
和x2(2)=1
,期望输出为d(2)=0
,实际输出为:
y(2)=f(0.9*0+0.7*1-0.6)=f(0.1)=1
实际输出与期望输出不同,需要调节权值,其调整如下:
θ(3)=θ(2)+η(d(2)- y(2))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(3)=w1(2)+η(d(2)- y(2))x1(2)=0.9+0.4*(0-1)*0=0.9
w2(3)=w2(2)+η(d(2)- y(2))x2(2)=0.7+0.4*(0-1)*1=0.3
实际上,由与运算的阈值条件可知,此时的阈值和连接权值以满足结束条件,算法可以结束。
对此,可检验如下:
对输入:“0 0”有y=f(0.9*0+0.3*0-1)=f(-1)=0
对输入:“0 1”有y=f(0.9*0+0.3*0.1-1)=f(-0.7)=0
对输入:“1 0”有y=f(0.9*1+0.3*0-1)=f(-0.1)=0
对输入:“1 1”有y=f(0.9*1+0.3*1-1)=f(0.2)=1
多层感知器可以解决非线性可分问题,但其隐层神经元的期望输出却不易给出。
而单层感知器学习是一种有导师指导的学习过程,因此其学习算法无法直接用于多层感知器。
由于多层感知器和BP网络都属于前向网络,并能较好解决多层前馈网络的学习问题.
因此,可用BP学习来解决多层感知器学习问题。
相关的一些概念:决策树、 随机森林、逻辑回归、朴素贝叶斯、K最近临算法、马尔可夫……
遗传算法最早由美国密西根大学的J. Holland 教授提出,起源于20世纪60年代对自然和人工自适应系统的研究。70年代,De Jong 基于遗传算法的思想在计算机上进行了大量的纯数值函数优化计算实验。在一系列研究工作的基础上,80年代由Goldberg进行归纳总结,形成了遗传算法的基本框架
遗传算法(Genetic Algorithm, GA)是模拟生物在自然环境种的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。
是从初始种群出发,采用优胜劣汰、适者生存的自然法则选择个体,并通过杂交、变异来产生新一代种群,如此逐代进化,直到满足目标为止。
算法主要内容和基本步骤
(1) 选择编码策略,将问题搜索空间中每个可能的点用相应的编码策略表示出来,即形成染色体;
(2) 定义遗传策略,包括种群规模N,交叉、变异方法,以及选择概率Pr、交叉概率Pc、变异概率Pm等遗传参数;
(3) 令t=0,随机选择N个染色体初始化种群P(0);
(4) 定义适应度函数f(f>0);
(5) 计算P(t)中每个染色体的适应值;
(6) t=t+1;
(7) 运用选择算子,从P(t-1)中得到P(t);
(8) 对P(t)中的每个染色体,按概率Pc参与交叉;
(9) 对染色体中的基因,以概率Pm参与变异运算;
(10) 判断群体性能是否满足预先设定的终止标准,若不满足则返回(5)。
常用的遗传编码算法
适应度函数
适应度函数是一个用于对个体的适应性进行度量的函数。通常,一个个体的适应度值越大,它被遗传到下一代种群中的概率也就越大。
(1) 常用的适应度函数
原始适应度函数:直接将待求解问题的目标函数f(x)定义为遗传算法的适应度函数。
标准适应度函数
在某些情况下,需要对适应度函数进行加速速度。
适应度函数的加速变换有两种基本方法,即线性加速与非线性加速。
线性加速
f'(x)=αf(x)+β
xi(i=1,…,n)
为当前代中的染色体。xi(i=1,…,n)
为当前代中的染色体,M是指将当前的最大适应度放大为平均值的M倍。目的是通过M拉开不同染色体适应度值的差距。非线性加速
f'(x)=f(x)k
f'(x)=exp(-βf(x))
基本遗传操作
(1)、选择操作
选择(Selection)操作是指根据选择概率按某种策略从当前种群中挑选出一定数目的个体,使它们能够有更多的机会被遗传到下一代中。
常用的选择策略:
轮盘赌选择算法的基本思想是:根据每个个体的选择概率P(xi)将一个圆盘分成N个扇区,其中第i个扇区的中心角为:
再设立一个移动指针,将圆盘的转动等价为指针的移动。选择时,假想转动圆盘,若静止时指针指向第i个扇区,则选择个体i。
从统计角度看,个体的适应度值越大,其对应的扇区的面积越大,被选中的可能性也越大。这种方法有点类似于发放奖品使用的轮盘,并带有某种赌博的意思,因此亦被称为轮盘赌选择。
(2)、交叉操作
X=x1 x2 … xk xk+1 … xn
Y=y1 y2 … yk yk+1 … yn
X'= x1 x2 … xk yk+1 … yn
Y'= y1 y2 … yk xk+1 … xn
X=x1 x2 … xi … xj … xn
Y=y1 y2 … yi … yj …,yn
i< j < n
),两点交叉是将X中的xi+1到xj部分与Y中的yi+1到yj部分进行交换,交叉后生成的两个新的个体是:X'= x1 x2 … xi yi+1 … yj xj+1 … xn
Y'= y1 y2 … yi xi+1 … xj yj+1 … yn
X=x1x2… xi…xk…xn
和Y=y1y2…yi…yk…yn
,若随机选择对第k个分量以后的所有分量进行交换,则生成的两个新的个体向量是:
X'= x1 x2 … xk yk+1 … yn
Y'= y1 y2 … yk xk+1 … xn
(3)、变异操作
变异(Mutation)是指对选中个体的染色体中的某些基因进行变动,以形成新的个体。变异也是生物遗传和自然进化中的一种基本现象,它可增强种群的多样性。遗传算法中的变异操作增加了算法的局部随机搜索能力,从而可以维持种群的多样性。根据个体编码方式的不同,变异操作可分为二进制变异和实值变异两种类型。
由James Kenney(社会心理学博士)和Russ Eberhart(电子工程学博士)于1995年提出粒子群算法(Particle Swarm Optimization, PSO)。
通过遗留在来往路径上的信息素(Pheromone)的挥发性化学物质来进行通信和协调。
η(i, j)
是一个启发式信息,通常由η (i, j)=1/dij
直接计算。τ (i, j)
表示边(i, j)
上的信息素量。α =0
时,算法演变成传统的随机贪心算法,最邻近城市被选中的概率最大。当β =0
时,蚂蚁完全只根据信息素浓度确定路径,算法将快速收敛,这样构建出的最优路径与实际目标差异较大,算法性能较差。m
:蚂蚁个数;ρ
:信息素的蒸发率,规定0。
Δτ (i, j)
:第k只蚂蚁在它经过的边上释放的信息素量,它等于蚂蚁k本轮构建路径长度的倒数。Ck
:路径长度,它是Rk中所有边的长度和。模拟退火、工免疫系统、粗集理论、EDA算法、文化进化计算、量子计算、DNA计算、智能Agent、……
Agent的定义
Agent的译法
建议把agent译为“(艾)真体”的理由:
真体的要素
真体必须利用知识修改其内部状态(心理状态),以适应环境变化和协作求解的需要。真体的行动受其心理状态驱动。人类心理状态的要素有认知(信念、知识、学习等)、情感(愿望、兴趣、爱好等)和意向(意图、目标、规划和承诺等)三种。着重研究信念(belief)、愿望(desire)和意图(intention)的关系及其形式化描述,力图建立真体的BDI(信念、愿望和意图)模型,已成为真体理论模型研究的主要方向。
真体的特性
Natural Language Understanding 俗称人机对话。研究用电子计算机模拟人的语言交际过程,使计算机能理解和运用人类社会的自然语言如汉语、英语等,实现人机之间的自然语言通信,以代替人的部分脑力劳动,包括查询资料、解答问题、摘录文献、汇编资料以及一切有关自然语言信息的加工处理。
这一领域的研究涉及自然语言,即人们日常使用的语言,包括中文、英文、俄文、日文、德文、法文等等,所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。
实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义(即自然语言理解),也能以自然语言文本来表达给定的意图、思想等(即自然语言生成)。
无论实现自然语言理解,还是自然语言生成,都远不如人们原来想象的那么简单,而是十分困难的。从目前的理论和技术现状看,通用的、高质量的自然语言处理系统,仍然是较长期的努力目标,但是针对一定应用,具有相当自然语言处理能力的实用系统已经出现,有些已商品化,甚至开始产业化。典型的例子有:各种数据库和专家系统的自然语言接口、各种机器翻译系统、全文信息检索系统、自动文摘系统等。
自然语言处理,即实现人机间自然语言通信,或实现 自然语言理解和 自然语言生成是十分困难的。
造成困难的 根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性(ambiguity)。
一般情况下,它们中的大多数都是可以根据相应的语境和场景的规定而得到解决的。也就是说,从总体上说,并不存在歧义。这也就是我们平时并不感到自然语言歧义,和能用自然语言进行正确交流的原因。但是一方面,我们也看到,为了消解歧义,是需要极其大量的知识和进行推理的。如何将这些知识较完整地加以收集和整理出来;又如何找到合适的形式,将它们存入计算机系统中去;以及如何有效地利用它们来消除歧义,都是工作量极大且十分困难的工作。这不是少数人短时期内可以完成的,还有待长期的、系统的工作。
文字识别、语音识别、机器翻译、自动文摘、句法分析、文本分类、信息检索、信息获取、信息过滤、自然语言生成、中文自动分词、语音合成、问答系统
用自然语言与计算机进行通信,这是人们长期以来所追求的。因为它既有明显的实际意义,同时也有重要的理论意义:人们可以用自己最习惯的语言来使用计算机,而无需再花大量的时间和精力去学习不很自然和习惯的各种计算机语言;人们也可通过它进一步了解人类的语言能力和智能的机制。
版权声明: [人工智能入门复习总结] (https://zhouie.cn/posts/201806111/ ),由 zhouie首次发表于 北岛向南的小屋 ,本文地址为:https://zhouie.cn/posts/201806111/ 。