第3章 基于软计算的知识表示方法研究
3.1 知识表示概述
机器要有智能,至少应该满足以下几个要求:
(1)拥有知识;
(2)具备某种推理能力(如通过匹配和搜索等技术);
(3)具备某种继续获取知识的能力(或称学习能力)。
如何表示知识是人工智能研究的重要分支之一。
数据表示是数据处理的基础,知识表示是知识处理的基础。不同的知识需要不同的形式和方法来表示。知识表示既要能表示体现事物间结构关系的静态知识,又要能表示如何对事物进行各种处理的动态知识;既要能表示各种各样的客观存在的事实,又要能表示各种客观规律和处理规则;既要能表示各种精确、确定和完全的知识,又要能表示复杂、模糊、不确定和不完全的知识。是否有合适的知识表示方法是知识处理的关键。下面首先对几个基本概念加以描述[1][2]。
数据:客观事物的属性、数量、位置及其相互关系等的抽象表示。
信息:数据所表示的含义(或称数据的语义)。也可以说信息是对数据的解释,而数据是信息的载体。
知识:知识是以各种方式把一个或多个信息关联在一起的信息结构。简言之,知识是一个或多个信息之间的关联(关系或联系)。如果把不与任何其他信息关联也看成一种特殊的关联方式(不关联),则可把单个的信息看成知识的特例,称为原子事实。知识亦可解释为一种分层次关联的信息结构。把知识用BNF形式化地定义如下:
知识的属性如下。
(1)真理性:知识有真伪可言,可通过实践检验其真伪或用逻辑推理证明其真伪,知识的真理性也可称为知识真伪的可判定性。
(2)相对性:一般而言,知识的真理性是有条件和环境要求的。
(3)不完全性:大致可分为条件不完全性和结论不完全性两类。前者是指由于客观事物本身表露不完全而使人们对事物产生的条件或客观原因认识不清,后者是指在给定条件(或环境)下得出的结论缺少一部分或结论仅仅部分正确。
(4)模糊性与不精确性:现实中知识的真与假,往往并不是非真即假,而可能处于某种中间状态,或者说具有真与假之间的某个“真度”。另外,知识中包含的某些数量、位置、关系等概念存在模糊性和不精确性。
(5)可表示性:可以用各种方式表示出来,如用符号的逻辑组合、图形的方式、物理方法(如机械方法、电子方法、生物方法等)。
(6)可存储性(可记忆性):既然知识可用各种方法表示出来,就可以把它存储起来,如存储在书本、磁盘或光盘乃至大脑中。
(7)可传递性:可通过书本、广播、计算机网络等传递知识,尽管在传递过程中其形式可能改变。
(8)可处理性。
(9)相容性(无矛盾性)。
常用的知识表示方法有一阶谓词逻辑表示法、关系表示法(或称特征表表示法)、产生式规则表示法(相应的系统称为基于规则的系统)、结构化表示法(或称图解法,如框架、语义网络、常式、定型格式、规则模型等,相应的系统称为基于模型的系统)等。
3.1.1 一阶谓词逻辑表示法
一阶谓词逻辑表示法是最直观、最自然且使用方便的一种知识表示方法。它的表达能力较强,它所能表达的范围依赖于原子谓词的种类和语义。形式上,任一谓词表达式都由原子谓词的集合经由各种逻辑运算的组合和两种量词的约束形成,可以用BNF描述如下:
在实际应用中,原子谓词在一个特定领域范围内的一个谓词集合中选取,构成一个原子谓词的特定集合。原子谓词用其谓词名、变元名及值的形式表示谓词的语义。在构成合法的谓词表达式的过程中,只有满足特定约束条件的那些与式、或式和蕴含式是合法的,最终构成的谓词表达式也必须满足一定的约束条件。
3.1.2 关系表示法
关系表示与一阶谓词在某种意义上具有一一对应的关系。关系R(D1,D2,…,Dn)是论域D1,D2,…Dn上的叉积D1×D2×…×Dn的一个子集,对应的论域上的谓词P(x1,x2,…,xn),xi∈Di(i=1,2,…,n),使得当且仅当关系中的元组(或记录)(x1,x2,…,xn)属于关系R(D1,D2,…,Dn)时,P(x1,x2,…,xn)为真。
当用关系表示规则时,前提或结论中若包含变量,则可用元组函数来表示。如果把谓词中的部分变元约束为相应论域中的固定的值,如把变元x2,x3,…,xn分别固定为值d2,d3,…,dn,其中di为Di中的常数,则得到一个受限谓词P(x1,d2,d3,…,dn),其中xi是变元。元组函数(x1,d2,d3,…,dn)所生成的所有元组是原关系R(D1,D2,…,Dn)中使谓词P(x1,d2,d3,…,dn)为真的那些元组。
3.1.3 产生式规则表示法
知识的产生式规则表示法较适合于因果关系的表示,在语义上,它表示“如果A则B”的因果或推理关系。一个产生式的一般形式为P←Q,表示如果前提Q满足则可推出结论P(或应该执行动作P)。
产生式规则可由与/或树表示,如图3.1所示,其中带圆弧的分支线表示与的关系,不带圆弧的分支线表示或的关系。
一个用产生式表示的知识是一组产生式的有序集合,用BNF描述如下:
图3.1 产生式规则的与/或树表示
3.1.4 框架表示法
20世纪70年代初,M.Minsky提出了框架理论,基于心理学的证据他认为,人们在日常的认知活动中使用了大量从以前的经验中获取并经过整理的知识。该知识以一种类似框架的结构存储在人脑中,当人们面临新的情况或对问题的看法有很重要的变化时,总是从自己的记忆中找出一个合适的框架,然后根据实际情况对它的细节加以修改、补充,从而形成对所观察的事物的认识。所以框架提供了一种结构,其中的新数据将用从过去经验中获取的概念来解释。知识的这种组织化,使人们面临新情况时能从旧经验中进行预测,引起对有关事项的注意、回忆和推理,所以它是一种理想的知识的结构化表示方法。同时,框架也是一种表示定型状态的数据结构,它的顶层是某个固定的概念、对象或事件,其下层由一些被称为槽的结构组成。每个槽可以按实际情况被一定类型的实例或数据所填充(或称赋值),所填写的内容称为槽值。框架是一种层次数据结构,框架下层的槽可以看成一种子框架,子框架本身还可以进一步分层次。
框架可以看成关系表示的推广,它由框架名、槽和约束条件三部分组成,每一部分有名称和对应的值。用BNF描述如下:
其中,框架名和约束都是关键保留字。
3.1.5 语义网络表示法
所谓语义是指语言学的符号和表达式同它所描述的对象(含义)之间的关系。语义网络[最初由Quillion和Raphael(1968)提出]用来表达英文的语义。它又是以网络格式表示人类知识构造的一种形式。语义网络既可作为人类联想记忆的心理学模型,又可作为计算机内部表达知识的一种格式。
表达人类知识的任何格式都必须具有两种功能,一种是表达事实性的知识,另一种是表达这些事实之间的联系,即能够从一些事实找到另一些事实的信息。这两种功能可以用两种不同机制来实现,如用一系列的谓词演算来表达事实,再用一定形式的索引和分类来表达事实之间的联系。然而,语义网络的特点是用单一的机制来表达这两种内容。
不管语义网络的具体形式有什么差别,它们的基本特点是相同的,它们都由节点和连接节点的弧组成,其中节点表示领域中的物体、概念或势态,而弧则表示它们之间的关系。此外,节点和弧都可以拥有标号,如图3.2所示。
图3.2 语义网络
语义网络实质上是一个带标识的有向图,有向图的节点表示各种事物、概念、属性及知识实体等,有向边表示各种语义联系,指明其所连接的节点之间的某种关系。
一个语义网络(SN)可形式化地描述为SN={N,E},其中N是一个以元组或框架标识的节点的有限集,E是连接N中节点的带标识的有向边的集合。节点上的元组或框架描述了该节点的各种属性值,有向边上的标识描述了该有向边所代表的语义联系。其语法结构可用BNF描述如下:
其中Merge是一个合并过程,它把作为参数出现的所有基本网元中相同的节点都合并为一个,从而把那些基本网元合并到一起,成为一个语义网络。
3.1.6 面向对象表示法
对象类的形式定义如下:
3.1.7 知识表达式
知识表达式可以看成一个代数系统,由基本元素的集合和作用在这个集合上的一组运算(或演算)和约束所构成。它是比语义网络更一般的知识网结构,相当于一个带标识的有向图结构。知识原子被看作知识的最小构成单位;知识因子用以描述事物、对象、问题或任何一种实体的属性取值情况,也可以描述各种谓词;知识项用以表示知识因子之间的关系或语义联系。其定义如下。
定义1:设A是一个属性名(用来标识属性)的集合,对每一个a∈A,有一个对应的论域D(一个集合),2D表示D的幂集。知识原子定义为下列三种表示之一。
① a=V,其中a∈2D,语义上表示“属性a取V为值”;
② a∈V,其中a∈A,V∈2D,语义上表示“属性a取V中元素为值”;
③ a=x,其中a∈A,x是一个变量名,语义上表示“属性a取变量x为值”。
定义2:一个知识因子定义为由一个因子名及一组知识原子构成的对:[fn,(Ka1,Ka2,…,Kam)],其中fn是一个符号名,用以标识该知识因子,Kai(i=1,2,…,m)为知识原子。其语义表示知识因子fn中各属性的取值情况,原则上Kai的书写次序是无关紧要的。
定义3:设f1和f2是两组知识因子(允许两者有非空的交集),op是一种语义联系(或关系)运算,则称f1opf2为一个无名知识项。知识项可以命名,从而表示为(tn,f1opf2),其中的知识项名tn由一个符号名表示。
定义4:设T是所有知识项组成的集合,2T表示T的幂集,TS是2T的一个元素(TS是T的一个子集),en是一个符号名,则有序对(en,TS)称为一个知识表达式,en称为该知识表达式的名,TS称为该知识表达式的外延。
定义5:一个知识表达式是一个一阶领域分支知识。设K是一个领域分支知识的集合,KS⊆K是K的一个子集,Kbn是一个符号名,则有序对(Kbn,KS)称为一个比K 中的领域分支知识高一阶的领域分支知识。其中Kbn称为该领域分支知识的名,KS是该领域分支的外延。因此,领域分支知识的定义是递归的。
定义6:一个领域知识由一个领域分支知识定义。
知识表达式的BNF表示如下:
3.1.8 模糊知识表示方法
上述知识表示方法都是精确的知识表示法,它们基于经典的二值逻辑及精确的数学工具。但在现实世界中大部分事物仍是表露不全、不精确和模糊不清的,用二值逻辑和精确数学方法是很难准确描述的。如何处理具有不完全性、不精确性和模糊性的知识对于真正地反映现实世界是非常有意义的。因此,模糊知识表示一直是知识表示研究中的重要问题。下面给出一种模糊数据定义的BNF描述。
其中,范式中大写字母串表示系统的保留字,小写字母串表示标识符,符号{}表示其中内容至少重复一次,[ ]表示其中内容任选。
1.模糊谓词表示法
在传统的二值逻辑中,谓词可看作命题函数,其值为真或假。而模糊谓词可以有两种定义:
(1)把模糊谓词定义为取值为[0,1]的命题函数,0表示假,1表示真,其间的值表示不真不假的模糊状态,值越大越真。
(2)把模糊谓词定义为“语言真值”的命题函数。“语言真值”用[0,1]上的模糊子集表示,它们在语义上表示一种真假的程度,模糊谓词就取这些模糊子集为值。
2.模糊规则(或模糊产生式)表示法
规则的一般形式是:IF条件THEN动作(或结论),模糊化的工作可以从以下几方面进行。
(1)把条件模糊化,即用一个模糊谓词公式来替代条件,并定义一种模糊匹配原则,若规则的条件能被目前已知的对象模糊地匹配上,就可应用该规则,模糊地推出一个(模糊)结论,或模糊地执行一个(模糊)动作。
(2)把动作或结论模糊化,即使动作或结论具有一种可信度(以[0,1]表示)。或者结论就是一个模糊谓词,表示一个模糊概念;或者动作本身就是一个模糊动作。
(3)设置阈值τ(0 < τ <1),只有当条件谓词公式的真值大于或等于τ时,该规则才可用。
(4)设置规则的可信度(或模糊度)CF(0 < CF≤1),在推理中,它将以某种形式影响结论或动作的可信度,可看成对THEN的模糊化。
3.模糊框架表示法
框架可看成关系的一种推广,对框架的模糊化可从以下几方面进行。
(1)槽的值允许是模糊数据、模糊动作或模糊过程。这使得很多模糊现象可以表示在框架中,从而提升了框架的表达力。
(2)把框架与框架之间的各种关联模糊化,使得关联并非不是有就是无,可以允许有各种中间状态。特别地,应使继承关系模糊化,即在任意两个具有直接继承关系的框架之间,设一个“继承因子”或“继承强度”i(0<i≤1),然后设计一种计算间接继承强度的公式,当间接继承强度小于某设定的阈值τ(0<τ<1)时,就认为它们之间不再有继承关系。
(3)框架中限制条件的模糊化,即允许用各种模糊谓词公式来表示限制条件,条件是否满足也用一个阈值来控制,条件真值大于或等于该阈值时为满足,否则为不满足。
(4)在一些需要激活并执行一个过程的地方可以外加一个模糊谓词作为判断条件,只有当判断条件的真值超过某个阈值时,才把过程激活并执行,使得对事物的描述更精细。
4.模糊语义网络表示法
语义网络从图论的角度看是一个带标识的有向图,有向图的节点表示各种事物、概念、属性及知识等实体;有向图的边表示实体之间的各种语义联系,指明其所连接的节点间的某种关系;边上的标识符表示语义联系的名称,它在某种意义上表示了相应语义联系的语义。把语义网络模糊化,可从以下几方面进行。
(1)节点内容的模糊化,因为语义网络中节点一般可用一个属性表或框架来表示,所以节点内容的模糊化其实就是把属性表或框架模糊化,包括属性或槽的值允许为各种模糊数据或模糊动作等。
(2)语义联系的模糊化,定义各种模糊语义联系,从而可建立各种模糊继承关系。最为直接的方法是在原语义联系的标识符之外,外加一个“联系强度”c(0<c≤1),然后采用某种公式来计算间接联系强度,当间接联系强度小于某个设定的阈值时就认为两者不再有此种联系。
以上介绍的模糊知识表示方法都是对精确知识表示方法的模糊化,采用的策略:一是使表示的数据为模糊数据,使其能表达一些具有模糊性的知识;二是对一些运算或操作以某种方式模糊化,使其可以表示不同实体之间模糊的动态关系。