一、人工智能基本原理
逻辑推理
1. 形式逻辑是研究人的思维形式及其规律的科学,属于“符号处理”范畴,主要用于形成概念,作出判断,进行推理。
a. 概念:反映事件的特有属性和它的取值。概念用语言来表达。
b. 判断:对概念的肯定或否定。判断本身又存在真假,即判断是对的或者是错的。
c. 推理:从一个或几个判断中推出一个新判断的思维过程。
2. 推理的种类:
a. 演绎推理:从一般现象到个别(特殊)现象的推理。
i. 假言推理:如果p为真,则q为真,同时p为真,则推出q为真。
ii. 三段论推理:p->q,q->r,则推出p->r。
iii. 假言易位推理(拒取式):p->q且非q为真,则推出非p为真。
b. 归纳推理:从个别(特殊)现象到一般现象的推理。
i. 数学归纳法
ii. 枚举归纳推理:某一类事物的部分分子具有某种属性,而且没有遇到相反的情况,于是得出这一类事物都是种属性的一般性结论。目前机器学习和数据挖掘的知识获取都属于这种枚举归纳推理。
c. 类比推理:从个别(特殊)现象到个别(特殊)现象的推理。两个或两类事物在某些属性上相同,进而推断它们在另一个属性上也可能相同的推理。
演绎推理的结论没有超出已知的知识范围,而归纳推理和类比推理的结论超出已知的知识范围,创造了新的知识。
演绎推理中由于前提和结论有必然联系,只要前提为真,结论一定为真。归纳推理和类比推理中的前提和结论,不能保证有必然联系,具有或然性。这样的推理的结论未必是可靠的,需要严格的验证和证明,使之形成新的理论。
知识推理
1. 数理逻辑的知识推理:
a. 命题逻辑公式
i. 合取范式:a1/\a2/\.../\an
ii. 析取范式:a1\/a2\/...\/an
b. 命题逻辑归结原理(使用反证法来证明语句)
i. 把公式转换成子句型:利用命题逻辑把公式化成合取范式,再化成子句。过程为:1)用~A\/B代替A->B;2)用~A\/~B代替~(A/\B),用~A/\~B代替~(A\/B);3)把公式化成合取范式,如A\/(B/\C) <-> (A\/B)/\(A\/C);4)抽取子句,如(A\/B)/\(A\/C) <-> {A\/B, A\/C}
ii. 对两个称为母子句的子句进行归结,以产生一个新子句。归结时,一个子句以“正文字”形式出现,一个以“负文字”形式出现,归结后就删除这两个“正负文字”,合并剩下的文字。如:p/\(p->q) <-> p/\(~p\/q)->子句集{p, ~p\/q}->归结{q}
c. 利用公理集F来证明命题S的正确性
i. 把F的所有命题转换成子句型;
ii. 把否定S的结果转换成子句型;
iii. 重复下述归结过程,直到找出一个矛盾或不能再归结:1) 挑选两个子句,称之为母子句。其中一个母子句含L,另一个母子句含~L;2)对这两个母子句作归结,结果子句称为归结式。从归结式中删除L和~L,得到所有文字的析取式;3)若归结式为空子句,则矛盾已找到,否则原归结式加入到该过程中的现有子句集。
2. 产生式规则:if A then B
a. 正向推理:逐条搜索规则库,对每一条规则的前提条件,检查事实库中是否存在。前提条件中各子项,若在事实库中不是全部存在,放弃该条规则;若在事实库中全部存在,则执行该条规则,把结论放入事实数据库中。反复循环执行上面过程,直至推出目标,并存入事实库中为止。
b. 逆(反)向推理:用得比较多,目标明确,推理快。从目标开始,寻找以此目标为结论的规则,并对该规则的前提进行判断,若该规则的前提中某个子项是另一规则的结论时,再找此结论的规则,重复以上过程,直到对某个规则的前提能够进行判断。在计算机上实现逆向推理是利用规则栈来完成的。
搜索技术
对于问题的求解过程,实质上是从开始状态,利用规则进行状态的改变,一直到达目标状态。把状态的改变连接起来就成了搜索路径。搜索方法有以下几类:
1. 广度优先搜索:从初始状态S开始,利用规则生成所有可能的状态。构成树的下一层结点,检查是否出现目标状态G,若未出现,就对该层所有状态结点分别顺序利用规则,生成再下一层的所有状态结点,以此类推,直到目标状态G出现。适合于搜索树宽度较小的问题。
2. 深度优先搜索:从初始状态S开始,利用规则生成搜索树下一层任一个结点,检查是否出现目标状态G,若未出现,以此状态利用规则生成再下一层任一个结点,再检查是否为目标结点G,若未出现,继续以上操作过程,一直进行到叶结点(即不能再生成新状态结点),若仍不是目标,则回溯到上层,以此类推,直到找到目标状态G为止。适合于深度较小的问题,比广度搜索法要好些。Prolog语言提供的搜索机制是以深度优先法设计的。
3. 生成测试法:1)生成一个可能状态结点;2)测试该状态是否为目标状态;3)若是目标状态则结束,否则回到1)。生成可能的状态可以是有规律的,也可以是无规律的。如果总是用刚生成的状态来生成新状态,就成了深度优先,如果总是用旧状态生成所有的新状态,就成了广度优先。也可以无规律地有时用旧状态生成新状态,有时用新状态生成更新状态。
4. 爬山法:生成测试法的变种。测试函数不仅只回答该状态是否是目标状态,而且测试函数还能给出该状态的好坏,以后生成新状态时总是按最好的方向进行,每次前进都往山的高处走。1)开始状态作为一个可能状态;2)从一个可能状态,应用规则生成所有新的可能状态集;3)对该状态集中的每一状态,测试其是否为目标,是则停止,同时比较各状态的好坏;4)取状态集中最好状态,作为下一个可能状态;5)循环到第2)步。
5. 启发式搜索:对每个在搜索过程中遇到的新状态,用一个估计(启发式函数)并计算其值的大小,确定下一步将从哪一个状态开始继续前进。值小者为较优的状态。启发式函数公式为f(x)=g(x)+h(x),其中f(x)表示由开始状态到目标状态的总耗费;g(x)表示开始状态到当前状态的耗费;h(x)表示当前状态到目标状态的耗费。g(x)是“保险”项,起到寻找最好解的作用。h(x)是“冒险”项,起到加快搜索路径的作用。g(x)取搜索树的深度而h(x)=0,则变为广度优先;如果g(x)为深度的负数而h(x)=0,则变为深度优先。
二、专家系统的决策支持
专家系统是具有大量专门知识,并能运用这些知识解决特定领域中实际问题的计算机程序系统。它是知识型的决策支持系统。
专家系统结构
核心是知识库和推理机。知识获取部件使得(不懂计算机的)专家的知识由知识工程师翻译和整理成计算机中专家系统需要的知识,存入知识库中。人机接口将用户的咨询,专家推出的建议、结论进行人机间的翻译和转换。
专家系统 = 知识库 + 推理机
产生式规则的推理机 = 搜索 + 匹配(假言推理)
匹配需要找事实,这个事实既可来自规则库个别的规则,也可来自向用户提问。匹配不成功便会引起搜索回溯或分支转移。跟踪和显示推理中的搜索和匹配过程就形成了向用户说明的解释机制。好的解释机制不显示那些失败路径的跟踪。
产生式规则专家系统是最广泛和最流行的,原因在于:
1. 产生式规则知识表示形式容易被人理解;
2. 它是基于演绎推理的。这样保证了推理结果的正确性;
3. 大量产生式规则所连成的推理树(知识树),可以是多棵树。树的宽度反映实际问题的范围,树的深度反应问题的难度。这使得专家系统适应各种实际问题的能力很强。
把总目标作为根结点,按规则的前提和结论展开成一棵树的形式,便是推理树。连接时有“与”和“或”关系,从而构成了“与或”推理树。逆向推理过程在推理树中的反映为推理树的深度优先搜索过程。
事实数据库除包含命题本身,还应包含如“可信度”、“真或假”之类的更多的内容。
解释机制把推理过程解释给用户,消除用户对目标结论的疑虑。
阅读(3999) | 评论(0) | 转发(0) |