
2.2 云运算与词计算[16]
传统意义上,“计算”仅涉及数与符号的运算。近30年来,计算一词的含义大大丰富了,在很多地方,计算机科学系(Computer Department)被改成了计算科学系(Department of Computing),人们把图像处理、规划和优化、辅助决策、知识发现等都看作计算。然而,人类在进行思考、判断、推理时主要是以语言为载体的,人类更擅长利用概念、语言值进行计算与推理。而语言通常具有很粗的“粒度”,如“软件可靠性很高”,其中“很高”这个词就比较笼统,也就是说其粒度很粗。
1965年,美国自动控制专家扎德提出模糊集合的概念后,出现了许多模糊集运算和模糊数运算的方法。1996年,扎德又进一步提出了“词计算”(Computing with Words)的思想。词计算就是用概念、语言值或者单词取代数值进行计算和推理的方法,它更强调自然语言在人类智能中的作用,更强调概念、语言值和单词中不确定性的处理方法。
狭义的词计算是指利用通常意义的数学概念和运算,诸如加、减、乘、除等构造的带有不确定或模糊值的词计算的数学体系,借助模糊逻辑概念和经典的群、环、域代数结构,构造出以词为定义域的类似结构。广义的模糊词计算统指用词进行推理,用词构建原型系统和编程等等。
扎德提出的词计算主要是基于模糊集合处理不确定性,云模型作为定性概念与定量表示之间的不确定转换模型,是表示自然语言值的随机性、模糊性及其关联性的一种方法。因此,探讨基于云模型的词计算,是很自然的一个研究方向。
基于云的词计算,包括代数运算、逻辑运算和语气运算。云运算的结果可以看作是某个不同粒度的新词,也就是一个子概念或者复合概念。
下面先介绍云的三类基本运算法则。
2.2.1 代数运算
给定属于同一个论域U上的云C1(Ex1,En1,He1)、C2(Ex2,En2,He2),令C1与C2代数运算的结果为C(Ex,En,He),C1与C2之间的代数运算可以定义如下。
加法

减法

乘法

除法


特别地,当其中一个云的熵和超熵均为0时,其代数运算则成为云与精确数值的运算。即对于任意实数k、云C(Ex,En,He),有
k±C(Ex,En,He)=C(k±Ex,En,He),
k×C(Ex,En,He)=C(k×Ex, |k|×En, |k|×He)。
云的代数运算具有如下性质。
(1)云的加法、乘法运算满足交换律和结合律。
交换律:A+B=B+A,AB=BA。
结合律:(A+B)+C=A+(B+C),(AB)C=A(BC)。
(2)通常,云的代数运算会使不确定度增加。但是,云与精确数值的加减运算没有改变不确定度。由此性质可知:A+B=C不能推出C-B=A;由AB=C不能推出C/B=A。
2.2.2 逻辑运算
给定论域U上的云A(ExA,EnA,HeA)、B(ExB,EnB,HeB),就传统意义上的相等、包含、与、或、非等逻辑运算而言,A与B之间的逻辑运算可以作如下定义。
(1)A与B相等:
A=B⇔(ExA=ExB)Λ(EnA=EnB)Λ(HeA=HeB)。
(2)A包含B:
A⊇B⇔[(ExA-3EnA)≤(ExB-3EnB)]Λ[(ExB+3EnB)≤(ExA+3EnA)]。
(3)A“与”B,存在以下3种情况。
如果ExA-ExB≥3(EnA+EnB),那么运算结果为空。
如果ExA-ExB<3(EnA+EnB),而且A和B 互不包含,ExA≥ExB,那么运算结果为

如果A⊇B或者B⊆A,那么运算结果为

(4)A“或”B:如果A∩B≠∅,且ExA≤ExB,那么运算结果为

(5)A的“非”:存在以下两种情况。
如果A是一个半云,那么,运算结果也是一个半云,即

如果A是一个全云,那么,运算结果由两个半云组成,即



上述云运算可推广到任意多个云的逻辑运算。
云的逻辑运算具有下列性质。
幂等律:A∪A=A,A∩A=A。
交换律:A∪B=B∪A,A∩B=B∩A。
结合律:(A∪B)∪C=A∪(B∪C),(A∩B)∩C=A∩(B∩C)。
吸收律:(A∩B)∪A=A,(A∪B)∩A=A。
分配律:A∩(B∪C)=(A∩B)∪(A∩C),A∪(B∩C)=(A∪B)∩(A∪C)。
两极律:A∪U=U,A∩U=A,A∪∅=A,A∩∅=∅。
互补律:-A=A。
云的逻辑运算不满足排中律,即:A∪-A≠U,A∩-A≠∅。
以上逻辑运算只是在同一论域范畴上进行的,对于不同论域之间的逻辑运算,可以借用语言值对应的概念来完成,将“与”、“或”等也看作是概念,诸如建立“软与”、“软或”的云模型,实现软运算。
2.2.3 语气运算
语气运算用以表达对语言值的肯定程度,分为强化语气和弱化语气两种运算。基本思想是,强化语气使语言值的熵和超熵减小,弱化语气使语言值的熵和超熵增大。
给定论域U中的云C(Ex,En,He),令C′(Ex′,En′,H′e)为语气运算的结果,则可以定义:
强化语气

弱化语气

其中,0<k<1,k可以采用诸如黄金分割律等的方法来确定。
一个语言值,经过强化运算后再进行弱化运算,能够恢复到原来的语言值。云的语气运算可以连续运算多次,生成一系列不同语气的语言值。
需要指出的是,云运算的定义与具体的应用是紧密联系的,上述定义的云运算法则在某些应用中可能合适,但针对其它的应用领域,可能需要引入新的定义法则。
2.2.4 云变换
给定论域中某个数据属性X的频率分布函数f(x),根据X的属性值频率的实际分布情况,自动生成若干粒度不同的云C(Exi,Eni,Hei)的叠加,每个云代表一个离散的、定性的概念,这种从连续的数值区间到离散的概念的转换过程,称为云变换[16]。其数学表达式为

式中:ai为幅度系数;n为变换后生成离散概念的个数。
从数据挖掘的角度看,云变换就是从某一属性的实际数据分布中抽取概念的过程,是从定量表示到定性描述的转换,是一个概念归纳学习的过程。很显然,利用云模型可以将数量型属性的定义域划分为多个由云模型表征的概念。具体云变换算法请参考文献[16]。
尽管通过云变换能够较好地拟合原始数据分布,但由于没有考虑云模型之间的关系,得到的云模型集较为粗糙。通常会出现下列两种特殊情况:(1)云模型之间的交叠关系过于复杂,有些云模型之间的距离过近,所表达的定性概念非常近似;(2)云模型之间过于稀疏,甚至出现概念“真空地带”。所以,对原子云模型集进一步做归整处理是不可缺少的。归整操作包含两部分内容,分别解决上述两个问题:其一是通过加权软或合并距离过近的原子云模型;其二是生成加权浮动云弥补概念“真空地带”。由此,可以得到基于云模型的泛概念树叶结点集的自动生成算法。
值得注意的是,通过归整后得到的原子云模型集已不能完全精确地表示原始数据分布。然而,云变换要求原子概念集能够反映数据的分布,而不可能绝对地表示其分布。而且,重要的不是论域上某一点对某一原子概念的隶属程度,而是它对集合中各原子概念的隶属程度之间的关系,是根据数据分布得到的整个原子概念集对整个论域空间的软划分。因此,归整后的原子云模型集合乎人的思维情理,可以被接受和应用。对连续数据,首先求得各数据点的频数,然后对其分布进行云变换,使之成为多个大小不同的云的叠加,就可以把数据转换为概念[126]。
2.2.5 虚拟云[11]
云模型的最小单位是基云,对应于自然语言中最基本的语言值——语言原子,或思维的基本单位——原子概念。虚拟云(Virtual cloud)是按照某种应用目标,对各个基云的数字特征进行计算,将得到的结果作为新的数字特征所构造的云。例如,语言变量C可由原子概念定义为:C{C1(Ex1,En1,He1),C2(Ex2,En2,He2),…,Cn(Exn,Enn,Hen)},这是对相应论域空间软划分的实现。语言原子分布于整个论域空间中,表示某个概念的基云在整个论域空间中自由浮动,映射了论域空间中存在的任意语言原子。虚拟云主要分为浮动云、综合云、分解云和几何云。此外,根据云的代数运算、逻辑运算或语气运算结果得到的新云,也可以看作虚拟云的一种。基于云模型的各种虚拟云技术是表示和处理连续型数据与定性知识的有效工具。
2.2.5.1 浮动云
浮动云(Floating cloud)是在已知两朵云的数字特征前提下,根据线性缺省假设生成的一朵给定期望值的新云。浮动云的期望值是用户根据具体要求事先指定的,具有一定的灵活性,熵和超熵可由两朵已知云的数字特征计算求得。
假设在论域空间中存在两朵基云C1(Ex1,En1,He1)和C2(Ex2,En2,He2),且Ex1≤Ex2,则位于论域中(Ex1,Ex2)区间内任意位置Ex=u的浮动云,其数字特征可以定义为两朵基云的数字特征的距离加权和,计算公式为

从上述公式可以看出,浮动云越靠近C1,受C1的影响越大,受C2的影响越小,反之亦然。浮动云在论域空间中主要解决概念或规则的稀疏问题。利用浮动云,可以在未被给定语言值覆盖的空白区域自动生成虚拟语言值,用于知识表达和归纳;在未被给定规则覆盖的区域生成虚拟规则,进行缺省推理。
2.2.5.2 综合云
综合云(Synthesized cloud)用于将两朵或多朵相同类型的子云进行综合,生成一朵新的高层概念的父云。其本质为提升概念,将两个或两个以上的同类型语言值综合为一个更广义的概念语言值。一般地,综合云的熵大于基云的熵,覆盖了论域空间的更大范围,综合云对应的语言变量表示更一般性的概念,适用于概念数的概念层次爬升。在实际应用中两朵基云不能相距太远,否则就失去了综合的意义。
作为父云的综合云,其数字特征可以根据所有子云的数字特征计算求得。假设在论域中存在n个同类型的基云{C1(Ex1,En1,He1),C2(Ex2,En2,He2),…,Cn(Exn,Enn,Hen)},则由C1,C2, …,Cn可以生成一个同类型的综合云C,C覆盖了C1,C2, …,Cn所覆盖的所有范围。C的数字特征

2.2.5.3 分解云
分解云(Resolved cloud)是把一个云分解形成若干个子云(Subcloud)。在语言原子分布的数域空间中,高层次概念可被分解为若干个低层次概念,构成概念树。概念树的各层次都对应若干个语言变量,每个语言变量对应一个云对象。例如,“距离不远不近”就可分解为“距离不远”和“距离不近”两个概念。分解云适用于概念树层次间概念的细化操作。
2.2.5.4 几何云
几何云(Geometric cloud)根据云模型的已知局部特性,采用几何数学拟合法生成一个涵盖它的完整的新云。它和逆向云发生器的区别在于,几何云只是根据局部特性生成虚拟云,对云滴的数目、分布和精度要求都不高;而逆向云发生器是由某参数未知的云模型的云滴来估计其数字特征,需要较多的、精度较高的云滴。如果仅仅已知两个云滴(x1,μ1)和(x2,μ2),则用公式

直接计算得到几何云的数字特征。