《人工智能导论》第三章 知识表示

本文介绍了人工智能中知识表示的重要概念,包括知识与知识表示的定义,重点阐述了产生式表示法(规则与不确定性规则)、框架表示法(结构化属性描述)和状态空间表示法(问题求解路径)。通过实例展示了如何用这些方法表示和处理知识,以及它们各自的特点和适用场景。
摘要由CSDN通过智能技术生成

本文是中国人工智能学会编著的《人工智能导论(面向非计算机专业)》第三章的摘要与笔记,仅供个人学习之用。其它章节请访问下列相应 URL。
第一章 绪论
第二章 概念表示
第三章 知识表示(本章)



第三章


  人类的智能活动主要是获得并运用知识。知识是智能的基础。为了使计算机具有智能,能模拟人类的智能行为,就必须使它具有知识。但人类的知识需要用适当的模式表示出来,才能存储到计算机中并能够被运用。因此,知识的表示称为人工智能中一个十分重要的研究课题。

3.1 知识与知识表示的概念

3.1.1 知识的概念

  知识是人们在长期的生活及社会实践中、在科学研究及实验中积累起来的对客观世界的认识与经验。人们把实践中获得的信息关联在一起,就形成了知识。一般来说,把有关信息关联在一起所形成的信息结构称为知识(知识是一种信息结构。作为一种结构,很容易联想到能否用某种数据结构来表示知识。这个问题在以下“知识表示”部分探讨)
  信息之间有多种关联形式,其中用得最多的是一种用“如果……,则……”表示的关联形式。在人工智能中,这种知识被称为“规则”,它反映了信息之间的某种因果关系。

  例如,我国北方的人们经过多年的观察发现,每当冬天即将来临,就会看到一批批的大雁向南方飞去,于是把“大雁向南飞”与“冬天就要来临了”这两个信息关联在一起,得到了如下知识:如果大雁向南飞,则冬天就要来临了。
  又如,“雪是白色的”也是一条知识,它反映了“雪”与“白色”之间的一种关系。在人工智能中,这种知识被称为“事实”。

3.1.2 知识的特性

1. 相对正确性

  知识是人类对客观世界认识的结晶,并且受到长期实践的检验。因此,在一定的条件及环境下,知识是正确的。*这里,“一定的条件及环境”是必不可少的,它是知识正确性的前提。因为任何知识都是在一定的条件及环境下产生的,因而也就只有在这种条件及环境下才是正确的。*知识的这一特性称为相对正确性

  例如,1+1=2,这是一条妇孺皆知的正确知识,但它也只是在十进制的前提下才是正确的;如果是二进制,它就不正确了。

  在人工智能中,知识的相对正确性更加突出。除了人类知识本身的相对正确性外,在建造专家系统时,为了减少知识库的规模,通常将知识限制在所求解问题的范围内。也就是说,只要这些知识对所求解的问题是正确的就行。

  例如,在后面介绍的动物识别系统中,因为仅仅识别虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁七种动物,所以知识“IF 该动物是鸟 AND 善飞,则该动物是信天翁”就是正确的。

2. 不确定性

  由于现实世界的复杂性,信息可能是精确的,也可能是不精确的、模糊的;关联可能是确定的,也可能是不确定的。这就使知识并不总是只有“真”与“假”两种状态,而是在“真”与“假”之间存在许多中间状态,即存在为“真”的程度问题。知识的这一特性称为不确定性

  造成知识具有不确定性的原因是多方面的,主要有:

  ①由随机性引起的不确定性。 由随机事件所形成的知识不能简单地用“真”或“假”来刻画,它是不确定的。

  例如,“如果头痛且流涕,则有可能患了感冒”这条知识,虽然大部分情况是患了感冒,但有时候具有“头痛且流涕”的人不一定都是“患了感冒”。其中的“有可能”实际上就是反映了“头痛且流涕”与“患了感冒”之间的一种不确定的因果关系。因此,它是一条具有不确定性的知识。

  ②由模糊性引起的不确定性。 由于某些事物客观上存在的模糊性,使得人们无法把两个类似的事物严格区分开来,不能明确地判定一个对象是否符合一个模糊概念;又由于某些事物之间存在着模糊关系,使得我们不能准确地判定它们之间地关系究竟是“真”还是“假”。像这样由模糊概念、模糊关系所形成的知识显然是不确定的。

  例如,“如果张三长得很帅,那么他一定很受欢迎”,这里的“长得很帅”“很受欢迎”都是模糊的。

  ③由经验引起的不确定性。 人们对客观世界的认识是逐步提高的,只有在积累了大量的感性认识后才能升华到理性认识的高度,形成某种知识。因此,知识有一个逐步完善的过程。在此过程中,或者由于客观事物表露得不够充分,致使人们对它的认识不够全面;或者对充分表露的事物一时抓不住本质,使人们对它的认识不够准确。这种认识上的不完全、不准确必然导致相应的知识是不准确的、不确定的。不完全性是使知识具有不确定性的一个重要原因。

3. 可表示性与可利用性

  知识的可表示性是指知识可以用适当的形式表示出来,如用语言、文字、图形、神经网络等,这样才能被存储、传播。知识的可利用性是指知识可以被利用。这是不言而喻的,我们每个人天天都在利用自己掌握的知识来解决各种问题。

3.1.3 知识表示的概念

  知识表示(knowledge representation)就是将人类知识形式化或者模型化。
  知识表示的目的是能够让计算机存贮和运用人类的知识。下面先介绍常用的产生式、框架、状态空间知识表示方法,其他(如神经网络等)几种知识表示方法将在后面章节结合其应用再介绍。


3.2 产生式表示法

  产生式表示法又称产生式规则(production rule)表示法。“产生式”这一术语是由美国数学家波斯特(E.Post)在 1943 年首先提出来的,如今已经被应用于多领域,成为人工智能中应用最多的一种知识表示方法。

3.2.1 产生式

  产生式通常用于表示事实、规则以及它们的不确定性度量,适合于表示事实性知识和规则性知识。

1. 确定性规则的产生式表示
  确定性规则的产生式表示的基本形式是
I F      P      T H E N      Q IF\ \ \ \ P\ \ \ \ THEN\ \ \ \ Q IF    P    THEN    Q
  或者
P → Q P→Q PQ
  其中, P P P 是产生式的前提,用于指出该产生式是否可用的条件; Q Q Q 是一组结论或操作,用于指出当前提 P P P 所指示的条件满足时,应该得出的结论或者应该执行的操作。整个产生式的含义是:如果前提 P P P 被满足,则结论 Q Q Q 成立或执行所规定的操作。

  例如: r 4 :      I F     动物会飞     A N D     会下蛋     T H E N     该动物是鸟 r_4:\ \ \ \ IF\ \ \ \ 动物会飞\ \ \ \ AND\ \ \ \ 会下蛋\ \ \ \ THEN\ \ \ \ 该动物是鸟 r4:    IF    动物会飞    AND    会下蛋    THEN    该动物是鸟
  就是一个产生式。其中 r 4 r_4 r4 是该产生式的编号;“动物会飞 AND 会下蛋”是前提 P P P;“该动物是鸟”是结论 Q Q Q

2. 不确定性规则的产生式表示
  不确定性规则的产生式表示的基本形式是
I F      P      T H E N      Q      ( 置信度 ) IF\ \ \ \ P\ \ \ \ THEN\ \ \ \ Q\ \ \ \ (置信度) IF    P    THEN    Q    (置信度)
  或者
P → Q      ( 置信度 ) P→Q\ \ \ \ (置信度) PQ    (置信度)

  例如,在专家系统 MYCIN 中有这样一条产生式:
I F     本微生物的染色斑是革兰氏阴性     A N D     本微生物的形状呈杆状     A N D     病人是中间宿主     T H E N     该微生物是绿脓杆菌     ( 0.6 ) IF\ \ \ \ 本微生物的染色斑是革兰氏阴性\ \ \ \ AND\ \ \ \ 本微生物的形状呈杆状\ \ \ \ AND\ \ \ \ 病人是中间宿主\ \ \ \ THEN\ \ \ \ 该微生物是绿脓杆菌\ \ \ \ (0.6) IF    本微生物的染色斑是革兰氏阴性    AND    本微生物的形状呈杆状    AND    病人是中间宿主    THEN    该微生物是绿脓杆菌    (0.6)
  它表示当前前提中列出的各个条件都得到满足时,结论“该微生物是绿脓杆菌可以相信的程度为 0.6。这里,用 0.6 表示知识的强度。

3. 确定性事实的产生式表示
  确定性事实一般用三元组表示
( 对象,属性,值 ) (对象,属性,值) (对象,属性,值)
  或者
( 关系,对象 1 ,对象 2 ) (关系,对象 1,对象 2) (关系,对象1,对象2)

  例如,“老李年龄是 40 岁”表示为 ( L i , A g e , 40 ) (Li, Age, 40) (Li,Age,40),“老李和老王是朋友”表示为 ( F r i e n d , L i , W a n g ) (Friend, Li, Wang) (Friend,Li,Wang)

4. 不确定性事实的产生式表示
  不确定性事实一般用四元组表示
( 对象,属性,值,置信度 ) (对象,属性,值,置信度) (对象,属性,值,置信度)
  或者
( 关系,对象 1 ,对象 2 ,置信度 ) (关系,对象 1,对象 2,置信度) (关系,对象1,对象2,置信度)

  例如,“老李年龄很可能是 40 岁”表示为 ( L i , A g e , 40 , 0.8 ) (Li, Age, 40, 0.8) (Li,Age,40,0.8),“老李和老王不大可能是朋友”表示为 ( F r i e n d , L i , W a n g , 0.1 ) (Friend, Li, Wang, 0.1) (Friend,Li,Wang,0.1)。这里用置信度 0.1 表示可能性比较小。

  产生式又称为规则或产生式规则;产生式的“前提”有时又称为“条件”“前提条件”“前件”“左部”等;其“结论”部分有时称为“后件”或“右部”等。

3.2.2 产生式系统

  把一组产生式放在一起,让它们相互配合、协同作用,一个产生式生成的结论可以供另一个产生式作为已知事实使用,以求得问题的解,这样的系统称为产生式系统
  一般来说,一个产生式系统由规则库、综合数据库、控制系统(推理机)三部分组成。它们之间的关系如图 3.1 所示。
图 3.1 产生式系统的基本结构
1. 规则库
  用于描述相应领域内知识的产生式集合称为规则库

  显然,规则库是产生式系统求解问题的基础。因此,需要对规则库中的知识进行合理的组织和管理,检测并排除冗余及矛盾的知识,保持知识的一致性。采用合理的结构形式,可使推理避免访问那些与求解当前问题无关的知识,从而提高求解问题的效率。

2. 综合数据库
  综合数据库又称为事实库、上下文、黑板等,用于存放问题的初始状态、原始证据、推理中得到的中间结论及最终结论等信息。当规则库中某条产生式的前提可与综合数据库的某些已知事实匹配时,该产生式就被激活,并把它推出的结论放入综合数据库中作为后面推理的已知事实。显然,综合数据库的内容是不断变化的。

3. 推理机
  推理机由一组程序组成,除了推理算法,还控制整个产生式系统的运行,实践对问题的求解。粗略地说,推理机要做以下几项工作:

  ①推理。 按一定的策略从规则库中选择与综合数据库中的已知事实进行匹配。所谓匹配是指把规则的前提条件与综合数据库中的已知事实进行比较,如果两者一致或者近似一致且满足预先规定的条件,则称匹配成功,相应的规则可被使用;否则称为匹配不成功。

  ②冲突消解。 如果匹配成功的规则不止一条,称为“发生了冲突”。此时,推理机必须调用相应的解决冲突的策略进行消解,以便从匹配成功的规则中选出一条执行。

  ③执行规则。 如果某一规则的右部是一个或多个结论,则把这些结论加入综合数据库中;如果规则的右部是一个或多个操作,则执行这些操作。对于不确定性知识,在执行每一条规则时还要按一定的算法计算结论的不确定性程度。

  ④检查推理终止条件。 检查综合数据库中是否包含了最终结论,决定是否停止系统运行。

3.2.3 产生式系统的特点

  产生式系统适合于表达具有因果关系的过程性知识,是一种非结构化的知识表示方法。产生式表示法既可以表示确定性知识,又可以表示不确定性知识;既可表示启发式知识,又可表示过程性知识。目前,已建造成功的专家系统大部分用产生式来表达其过程性知识。

  用产生式表示具有结构关系的知识很困难, 因为它不能把具有结构性关系的事物间的区别与联系表示出来。但下面介绍的框架表示法可以解决这一问题。


3.3 框架表示法

3.3.1 框架的一般结构

  框架(frame)是一种描述所论对象(一个事物、事件或概念)属性的数据结构。

  一个框架由若干个被称为“槽(slot)”的结构组成,每一个槽又可根据实际情况划分为若干个“侧面(facet)”。一个槽用于描述所论对象某一方面的属性。一个侧面用于描述相应属性的一个方面。槽和侧面所具有的属性值分别被称为槽值和侧面值。在一个用框架表示知识的系统中一般都含有多个框架,一个框架一般都含有多个不同槽、不同侧面,分别用不同的框架名、槽名及侧面名表示。对于框架、槽或侧面,都可以为其附加上一些说明性的信息,一般是一些约束条件,用于指出什么样的值才能填入到槽和侧面中去。

  下面给出框架的一般表示形式:
框架的一般表示形式
  由上述表示形式可以看出,一个框架可以有任意有限数目的槽;一个槽可以有任意有限数目的侧面;一个侧面可以有任意有限数目的侧面值。槽值或侧面值既可以是数值、字符串、布尔值,也可以是一个满足某个给定条件时要执行的动作或过程,还可以是另一个框架的名字,从而实现一个框架对另一个框架的调用,表示框架之间的横向关系。约束条件是任选的,当不指出约束条件时,表示没有约束。

3.3.2 用框架表示知识的例子

  下面据一些例子,说明建立框架的基本方法。

  例 3.1 教师框架

  框架名:<教师>
  姓名:单位(姓、名)
  年龄:单位(岁)
  性别:范围(男、女),缺省:男
  职称:范围(教授、副教授、讲师、助教),缺省:讲师
  部门:单位(系、教研室)
  住址:<住址框架>
  工资:<工资框架>
  开始工作时间:单位(年、月)
  截止时间:单位(年、月),缺省:现在

  该框架共有九个槽,分别描述了“教师”九个方面的情况,或者说关于“教师”的九个属性。在每个槽里都指出了一些说明性的信息,用于对槽的填值给出某些限制。

  对于上述这个框架,当把具体的信息填入槽或侧面后,就得到了相应框架的一个事例框架。例如,把某教师的一组信息填入“教师”框架的各个槽,就可得到:

  框架名:<教师-1>
  姓名:夏冰
  年龄:36
  性别:女
  职称:副教授
  部门:计算机系软件教研室
  住址:<adr-1>
  工资:<sal-1>
  开始工作时间:1988.9
  截止时间:1996.7


3.4 状态空间表示法

3.4.1 状态空间表示

  状态空间(state space)是利用状态变量和操作符号表示系统或问题的有关知识的符号体系。状态空间可以用一个四元组表示:
( S , O , S 0 , G ) (S, O, S_0, G) (S,O,S0,G)
  其中, S S S 是状态集合, S S S 中每一元素表示一个状态,状态是某种结构的符号或数据。O 是操作算子的集合,利用算子可将一个状态转换为另一个状态。 S 0 S_0 S0 是问题的初始状态的集合,是 S 的非空子集,即 S 0 ⊂ S S_0\subset S S0S G G G 是问题的目的状态的集合,是 S S S 的非空子集,即 G ⊂ S G\subset S GS G G G 可以是若干具体状态,也可以是满足某种性质的路径信息描述。

  从 S 0 S_0 S0 结点到 G G G 结点的路径称为求解路径。求解路径上的操作算子序列为状态空间的一个解。例如,操作算子序列 O 1 , . . . , O k O_1, ...,O_k O1,...,Ok 使初始状态转换为目标状态:
S 0 → O 1 S 1 → O 2 S 2 → O 3 . . . → O k G S_0 \xrightarrow{O_1} S_1 \xrightarrow{O_2} S_2 \xrightarrow{O_3} ... \xrightarrow{O_k} G S0O1 S1O2 S2O3 ...Ok G
O 1 , . . . , O k O_1, ..., O_k O1,...,Ok 即为状态空间的一个解。当然,解往往不是唯一的。

  任何类型的数据结构都可以用来描述状态,如符号、字符串、向量、多维数组、树和表格等。所选用的数据结构形式要与状态所蕴含的某些特性具有相似性。如对于八数码问题,一个 3 × 3 3 \times 3 3×3 的陈列便是一个合适的状态描述方式。

  例 3.3 八数码问题的状态空间表示
  八数码问题(重排九宫问题)是在一个 3 × 3 3 \times 3 3×3 的方格上,放有 1~8 的数码,另一格为空。空格四周上下左右的数码可移到空格。需要解决的问题是如何找到一个数码移动序列使初始的无序数码转变为一些特殊的排列。例如,图 3.4所示的八数码问题的初始状态 (a) 为问题的一个布局,需要找到一个数码移动序列使初始布局 (a) 转变为目标布局 (b)。
2 3 1 5 8 4 6 7          1 2 3 8 4 7 6 5 \begin{array}{|c|c|c|} \hline 2 & 3 & 1 \\ \hline 5 & & 8 \\ \hline 4 & 6 & 7 \\ \hline \end{array} \space\space\space\space\space\space\space\space \begin{array}{|c|c|c|} \hline 1 & 2 & 3 \\ \hline 8 & & 4 \\ \hline 7 & 6 & 5 \\ \hline \end{array} 25436187        18726345 ( a ) 初始状态        ( b ) 目标状态 (a)初始状态\space\space\space\space\space\space\space(b) 目标状态 (a)初始状态       (b)目标状态 图 3.4   八数码问题 图3.4\ \ 八数码问题 3.4  八数码问题
  该问题可以用状态空间来表示。此时八数码的任何一种摆法就是一个状态,所有的摆法即为状态集 S S S,它们构成了一个状态空间,其数目为 9 ! 9! 9!。而 G G G 是指定的某个或某些状态,例如图 3.4 (b)。
  对于操作算子设计,如果着眼在数码上,相应的操作算子就是数码的移动,其操作算子共有 4 ( 方向 ) × 8 ( 数码 ) = 32 4(方向) \times 8(数码)=32 4(方向)×8(数码)=32 个。如着眼在空格上,即空格在方格盘上的每个可能位置的上下左右移动,其操作算子可简化成 4 个:①将空格向上移 Up;②将空格向左移 Left;③将空格向下移 Down;④将空格向右移 Right。
  移动时要确保空格不会移出方格盘之外,因此并不是在任何状态下都能运用这 4 个操作算子。如空格在方盘格的右上角时,只能运用两个操作算子——向左移 Left 和向下移 Down。

3.4.2 状态空间的图描述

  状态空间可用有向图来描述,图的节点表示问题的状态,图的弧表示状态之间的关系。初始状态对应于实际问题的已知信息,是图中的根结点。在问题的状态空间描述中,寻找从一种状态转换为另一种状态的某个操作算子序列等价于在一个图中寻找某一路径。
  如图 3.5 所示为用有向图描述的状态空间。该图表示对状态 S 0 S_0 S0 允许使用操作算子 O 1 O_1 O1 O 2 O_2 O2 O 3 O_3 O3,分别使 S 0 S_0 S0 转换为 S 1 S_1 S1 S 2 S_2 S2 S 3 S_3 S3。这样一步步利用操作算子转换下去,如 S 10 ∈ G S_{10} \in G S10G,则 O 2 O_2 O2 O 6 O_6 O6 O 10 O_{10} O10 就是一个解。
图 3.5 状态空间有向图
  上面是较为形式化的说明,下面再以八数码问题为例,介绍具体问题的状态空间的有向图描述。

  例 3.5 对于八数码问题,如果给出问题的初始状态,就可以用图来描述其状态空间。其中的弧可用 4 个操作算子来标注,即空格向上移 Up、向左移 Left、向下移 Down、向右移 Right。改图的部分描述如图 3.6 所示。
在这里插入图片描述

  上面两个例子中,只绘出了问题的部分状态空间图。对于许多实际问题,要在有限的时间内绘出问题的全部状态图是不可能的。因此,要研究能够在有限时间内搜索到较好解的搜索算法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值