《人工智能教程(张仰森)》(一)

来源:互联网 发布:js在线客服插件 编辑:程序博客网 时间:2024/05/16 15:13

        这本书其实是大四最后的一门选修课,但是由于当时学的较为匆忙,而且这也是一本很不错的教科书,再加上自己以后研究生也是类似的研究方向了,所以现在拿出来再读了一遍。这本书共分为两篇(原理篇和应用篇),共十章,380页左右。值得一提的是,本书的两个作者(张仰森和黄改娟)的名气不大,但是本书的参考文献中却多次引用了如陆汝钤院士、史忠植教授等的教材,所以被高校广泛作为教材使用。自己也有幸在所里和史忠植老师见过面,并互通过邮件。

        下面对这本书进行一个总结和梳理。

一、绪论

        1. 人工智能的诞生及发展

        1956年夏季,美国一群年轻学者汇聚在达特茅斯大学,举办了一场长达两个月的学术讨论会,这是人类历史上第一次人工智能研讨会,标志着人工智能学科的诞生。之后又介绍了每个年代人工智能领域的发展,值得一提的是John McCarthy发明了一种函数式的人工智能程序设计语言LISP,A.Comerauer提出了逻辑程序设计语言PROLOG。

        2.人工智能的定义

        人工智能又可称为机器智能。首先谈了人类智能。记忆与思维能力是人脑最重要的功能,也是人类之所以有智能的根本原因所在。归纳与演绎能力是人类进行问题求解的两种推理方式。人工智能学科是计算机科学中涉及研究、设计和应用智能机器的一个分支。从实用观点看,人工智能是一门知识工程学,它以知识为对象,主要研究知识的获取、知识的表示方法和知识的使用(运用知识进行推理)。

        3.人工智能研究的方法及途径

        首先谈了人工智能研究的各种学派及其理论。从研究途径上来看,主要分为三个观点:一是符号主义,又称逻辑主义或计算机学派,主张用计算机的方法进行研究,研究内容是基于逻辑的知识表示和推理机制,原理主要为物理符号系统假设和有限合理性原理,代表人物有A.Newell、H.A.Simon、J.McCarthy、N.J.Nilsson等, 现在仍是主流;二是联结主义,又称仿生学派,主张用仿生学的方法进行研究,通过研究人脑的工作模型,搞清楚人类智能的本质,研究方法是以网络连接为主的连接机制方法,属于非符号处理范畴,所研究的内容实际上就是神经网络,代表人物有J.L.McClelland等;三是行为主义,又称进化主义或控制论学派,主张用进化论的思想进行研究,其原理主要是通过控制论和机器学习的算法实现智能系统的逐步进化,目前有待进一步研究。

        最后谈了实现人工智能的技术路线。有四个分别是:专用路线、通用路线、硬件路线和软件路线。

       4.人工智能的研究及应用领域

       这里列举了十个领域,分别是:

       1)问题求解。涉及问题表示空间的研究、搜索策略的研究和归约策略的研究。目前有带代表性的问题求解程序就是下棋程序。

       2)机器学习。研究的目标有三个:人类学习过程的认知模型;通用学习算法;构造面向任务的专用学习系统方法。

       3)专家系统。

       4)模式识别。识别出给定物体所模仿的标本。主要研究视觉模式和听觉模式的识别。

       5)自动定理证明。

       6)自动程序设计。包括程序综合与程序正确性验证。

       7)自然语言理解。主要包括:回答有关提问;摘要生成和文本释义;翻译。

       8)机器人学。第一代是可再编程序控制机器人;第二代是自适应机器人,自身配有相应的感觉传感器;第三代是具有类似于人的智能的智能机器人。

       9)人工神经网络。

       10)智能检索。

二、知识表示方法

        人工智能学科要研究的三个主要问题是:知识的获取、知识的表示和运用知识进行推理。

        1. 概述

        首先介绍了知识、信息和数据。数据是记录信息的符号,是信息的载体和表示。信息是对数据的解释,是数据在特定场合下的具体含义。相同的数据在不同的环境下表示不同的含义,蕴含不同的信息。相同的信息也可以用不同的数据表示出来。一般把有关信息关联在一起所形成的信息结构成为知识。知识是用信息表达的,信息则是用数据表达的。

        然后谈了知识的特性。知识具有:相对正确性;不确定性;可表示性;可利用性。

        对于知识的分类

        1)按作用范围划分,分为常识性知识和领域性知识。

        2)按作用及表示划分,分为事实性知识(“...是...”、静态、共享)、规则性知识(“如果...则...”、动态、变化)、控制性知识、元知识。

        3)按确定性划分,分为确定知识和不确定知识。

        4)按人类的思维及认识方法划分,分为逻辑性知识和形象性知识。

        最后介绍了知识的表示

        1)陈述性知识表示主要用来描述事实性知识。是一种静态的描述方法。

        2)过程性知识表述主要用来描述规则性知识和控制结构知识。是一种动态的描述方法。

        2. 一阶谓词逻辑表示法

        它是最早应用于人工智能中的表示方法。

        首先谈了知识的谓词逻辑表示法。对事实性知识通常由合取符号和析取符号连接,对规则性知识通常用蕴含符号连接。

        然后谈了用谓词公式表示知识的步骤

        1)定义谓词及个体。

        2)变元赋值。

        3)用符号连接谓词。

        接下来是谓词公式表示知识的举例

        最后是一阶谓词逻辑表示法的特点

        1)自然性。

        2)适宜于精确性知识的表示,而不适宜于不确定性知识的表示。

        3)易实现。

        4)与谓词逻辑表示法相对应的推理方法(归结推理方法或消解法)。

        3. 产生式表示法

        首先谈了产生式可表示的知识种类及基本形式。适合于表示事实性知识和规则性知识。基本形式是P—>Q,或 IF P THEN Q,蕴含式是产生式的一个特殊情况,产生式不仅可以表示精确性知识,还能表示不精确的知识。并且蕴含式本身是一个谓词公式,有真值,而产生式则没有。

        然后谈了知识的表示方法

        1)确定性规则知识。P—>Q,或 IF P THEN Q。

        2)不确定规则知识。P—>Q(置信度),或 IF P THEN Q(置信度)。

,    3)确定性事实性知识。一般用三元组表示:(对象,属性,值)或(关系,对象1,对象2)。其中对象就是语言变量。这种表示的机器内部实现就是一个表。

        4)不确定性事实性知识。一般使用四元组表示:(对象,属性,值,可信度值)或(关系,对象1,对象2,可信度值)。

        接下来谈了产生式系统的组成。一般由三部分组成:规则库(领域知识,专家系统的核心,规则以产生式形式表示)、综合数据库(输入的事实和产生的结果,动态的)、推理机(包含推理方式和控制策略)。通常从选择规则到执行操作分3步:匹配、冲突解决(专一性排序、规则排序、规模排序,就近排序)、操作。

        还有产生式系统的推理方式

        1)正向推理。又称数据驱动方式或自底向上的方式。从已知事实出发,通过规则库求得结论。

        2)反向推理。又称目标驱动方式或自顶向下的方式。从目标(假设)出发,反向使用规则,求得已知事实。

        3)双向推理。既自顶向下又自底向上的推理。

        最后说了产生式表示法的特点

        1)清晰性。

        2)模块性。专家系统首选。

        3)自然性。

        4. 语义网络表示法

        首先谈了语义网络的概念及其结构。语义网络是通过概念及其语义关系来表示知识的一种网络图,它是一个带标注的有向图。一个最简单的语义网络可由如下的一个三元组表示:(节点1,弧,节点2),称为基本网元。语义网络实际上是一个多层次的嵌套结构。

        然后谈了语义网络中常用的语义联系

        1)类属关系。最主要的特征是属性的继承性。常用的类属关系有三种:AKO(”是一种“,类型)、AMO(”是一员“,成员)、ISA(“是一个”,实例)。

        2)包含关系。又称聚类关系,一般不具有属性的继承性。常用的包含关系是Part-of(是一部分),如(两只手,Part-of,人体)。

        3)占有关系。事物或属性之间的“具有关系”。常用的占有关系是Have,如(张三,Have,一支钢笔)。

        4)时间关系。属性不具有继承性。常用的有三种:Before、After、During。

        5)位置关系。属性不具有继承性。常用的有:Located-on(在上)、Located-at(“在”)、Located-under(在下)、Located-inside(在内)、Located-outside(在外)。

        6)相近关系。常用的有两种:Similar-to(相似)、Near-to(相近)。

        7)推论关系。

        8)因果关系。适用于规则性知识。常用的有If-then。

        9)组成关系。属性不具有继承性。常用的有:Composed-of。

        10)属性关系。常用的有:IS。如(老张,IS,40)。

        接下来是语义网络表示知识的方法

        1)事实性知识的表示。注意的是由于属性具有继承性,所以在下层概念中只列出它独有的属性即可。

        2)情况和动作的表示。允许用一个节点表示,如情况节点、动作节点、事件节点。

        3)逻辑关系的表示。通过增加合取节点和析取节点来表示合取和析取关系。对存在量词可以直接用“是一种”、“是一个”来表示。对全称量词可采用网络分区技术,要求F指向的子空间所有非全称变量的节点都应该是全称变量的节点的函数,否则应该放在子空间外面。(没法贴图好抽象啊= =)。

        4)规则性知识的表示。

        还有是语义网络表示知识的步骤

        1)确定问题中的所有对象及各对象的属性。

        2)分析并确定语义网络中对象间的关系。

        3)根据语义网络中所涉及的关系,对语义网络中的节点和弧进行整理。

        4)分析检查对象是否有遗漏,并将各对象见的关系作为网络中各节点的有向弧。

        5)根据第一步的分析结果,为各对象标示属性。

        然后给出了语义网络表示知识举例

        给出了语义网络表示下的推理过程。对应的求解系统由两部分构成:一是知识库,二是推理机。推理方法有两种:一是匹配,二是继承(又分为值继承和过程继承)。

        最后说明了语义网络表示法的特点

        1)结构性。

        2)自然性。

        3)联想性。

        4)非严格性。

        5. 框架表示法

        首先介绍了框架理论。框架理论将框架视为知识的单位,将一组有关的框架联结起来便形成框架系统。系统中不同框架可以有共同节点,系统的行为由系统内框架的变化来体现。推理过程是由框架间的协调来完成的。

        然后谈到了框架的定义及组成。框架是一种描述所论对象属性的数据结构。一个框架由若干个“槽”组成,每个“槽”又可划分为若干个“侧面”。槽和侧面所具有的属性值分别称为槽值和侧面值。一个框架可以由框架名、槽、侧面和值组成。如:

       框架名:<计算机主机>

               主机品牌:联想1+1

               生产厂商:北京联想集团公司

               CPU:         品牌:Intel

                                   型号:奔腾三

               内存:          品牌:现代

                                    型号:SDRAM

                                    容量:128M

        接下来谈了用框架表示知识的步骤

        1)分析待表达知识中的对象及其属性,对框架中的槽进行合理设置。

        2)对各对象间的各种联系进行考察。使用一些常用的或根据具体需要定义一些表达联系的槽名,来描述上下层框架间的联系。一些常用的槽名(系统预定义槽名)有:ISA槽(抽象概念的类属关系)、AKO槽(具体的类属关系)、Instance槽(AKO的逆关系)、Part-of槽(部分与全体的关系)。

        3)对各层对象的槽及侧面进行合理的组织安排,避免信息描述的重复。

        下面是用框架表示知识的举例

        还有框架表示下的推理方法。与语义网络表示法类似,求解系统也是由知识库和推理机组成。推理方法也是遵循匹配和继承的原则。需要注意的是,由于继承性,两个框架的比较往往牵扯到他们的上层框架,所以这增加了匹配的复杂性。

        最后又谈到了框架表示法的特点

        1)结构性。

        2)继承性。

        3)自然性。

        不足是不善于表达过程性的知识,因此常与产生式表示法合起来使用。

        6. 面向对象的表示法 

        首先谈了面向对象的基本概念。谈了对象、类、继承和封装的概念,然后又提到了面向对象技术的特点。

        1)模块性。

        2)继承性。

        3)封装性。

        4)多态性。

        5)易维护性。

        最后又谈了表示知识的方法

        Class<类名>[:<父类名>]

                         [<类变量表>]

                  Structure

                        <对象的静态结构描述>

                   Method

                        <关于对象的操作定义>

                   Restraint

                        <限制条件>

                   END

        7. 脚本表示法

        首先谈了脚本的定义与组成。脚本是一个用来描写人类某种活动的时间序列,是表达人们已经陈规的事件序列的知识。通常一个脚本由以下基本分构成:进入条件、角色、道具、场景、结果。并给出了最著名的餐厅脚本的例子。然后又提出了11中行为原语,分别是:

        1)INGEST:把某物放入体内。

        2)PROPEL:对某一对象施加外力。

        3)GRASP:行为主体控制某一对象。

        4)EXPEL:把某物排出体外。

        5)PTRANS:某一物理对象物理位置的变化。

        6)MOVE:行为主体移动自己身体的某一部位。

        7)ATRANS:某种抽象关系的转移。

        8)MTRANS:信息的转移。

        9)MBUILD:由已有信息形成新信息。

        10)SPEAK:发出声音。

        11)ATTEND:用某个感觉器官获取信息。

        接下来谈了用脚本表示知识的步骤

        并给出了用脚本表示知识举例

        还有脚本表示下的推理方法。脚本表示法对事实或事件的描述结果为一个因果链,可解决的问题是:对事件发生结果的预测,探寻事件之间的关系。求解系统一般也包括知识库和推理机。基于脚本的推理方法实际上就是一种匹配推理方法。

        最后又谈论了脚本表示法的特点。

        1)自然性。

        2)结构性。

        不足是不太适合用来表达各种各样的知识,目前主要用在自然语言处理领域的篇章理解方面。

        8. 过程表示法

        首先谈到了知识的过程表示法。过程规则式表示法时过程表示法的一种典型的实现形式,一般由4个部分组成:激发条件、演绎操作、状态转换和返回。

        1)激发条件。启动该知识应满足的条件。一般由推理方向和调用模式两部分组成。

        2)演绎操作。是一个过程中依次被执行的那些动作。

        3)状态转换。指过程被执行中,用来完成对综合数据库的增删改操作,分别用INSERT、DELETE和MODIFY操作符实现。

        4)返回。将控制权返回到调用该过程规则的上一级中。

        如:

               BR(Father  ?z  ?y)

                      GOAL(Brother  ?x  y)

                      GOAL(Father     z    x)

                      INSERT(Father  z  y)

                      RETURN

        然后给出了过程表示的问题求解举例

        最后提到了过程表示法的特点

        优点是:1)表示效率高。2)推理控制容易实现。

        缺点是:1)知识库不易维护。2)适用的表示范围较窄。

        9. 状态空间表示法

        是用来表示问题及其搜索过程的一种方法。它是人工智能中最基本的形式化方法。

        首先谈了问题状态空间的构成

        1)状态。描述问题求解过程中不同时刻状况的数据结构。Q=(q0,q1,.....  ,qn),其中qi为状态变量。

        2)算符。引起状态中某些分量发生变化,从而使问题由一个状态变为另一个状态的操作。

        3)状态空间。一般由三元组表示:(S,F,G),其中S为问题的所有可能初识状态构成的集合,F为算符集合,G为目标状态集合。状态空间的图示形式成为状态空间图。其中,节点表示状态,有向弧表示算符。

        4)问题的解。

        然后又谈了用状态空间表示问题的步骤

        1)定义状态的描述形式。

        2)表示出所有可能状态,并确定问题的初始状态集合和目标状态集合。

        3)定义一组算符。

        最后是用状态空间求解问题的过程。用二阶Hanoi塔问题做例子描述了状态空间表示法。

        10. 与/或树表示法

         通常用于比较复杂的问题求解。把一个复杂问题分解或变换为一个本原问题的过程称为归约。

         首先谈了问题的分解与等价变换。问题的分解可以看做子问题解的“与”,问题的等价变换可以看做子问题的“或”。

         然后是问题归约的与/或树表示

         1)与树。有向边之间有小弧线。

         2)或树。有向边不用小弧线连接。

         3)与或树。根节点对应着待求解的原始问题。

         4)端节点与终止节点。

         5)可解节点与不可解节点。

         6)解树。在解树中一定包含初始节点。

         接下来是用与/或树表示问题的步骤

         最后是与/或树表示举例。同样是三阶Hanoi问题。


1 0
原创粉丝点击