软件可靠性的不确定性研究
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 云模型与云进化策略

2.1 云模型的进一步理解

2.1.1 云和云的数字特征

云模型是一种可以有效实现语言值表示的定性概念与其定量表示之间不确定性转换的模型。云模型利用赋予样本点以确定度,来统一刻画语言原子中的随机性、模糊性及其关联性。或者说,云模型依据概率测度理论,构造了一个反映语言原子中随机性和模糊性的关联函数。利用正向云可以从语言值表达的定性信息中获得定量数据的范围和分布规律,也可以使用逆向云把精确数值有效转换为恰当的定性语言值,从而构成不确定性知识表示模型。

定义2.1U是一个用精确数值表示的定量论域,CU上的定性概念。若定量值xU,且x是定性概念C的一次随机实现,xC的确定度μx)(∈[0,1])是有稳定倾向的随机数,则x在论域U上的分布称为云(Cloud),每一个x称为一个云滴[16]

上述定义的云具有下列重要性质:

(1)云是一个随机变量X,但它并不是概率意义下的简单的随机变量,而是对于X的任意一次实现XU,X有一个确定度,并且该确定度也是一个随机变量,而不是一个固定的数值。

(2)云由云滴组成,云滴之间无次序性,一个云滴是定性概念在数量上的一次实现,云滴整体才能反映出概念的特征。云滴数目越多,越能反映这个定性概念的整体特征。

(3)云滴的确定度可以理解为云滴能够代表该定性概念的程度。云滴出现的概率越大,云滴的确定度应当越大,这与人们主观理解一致。

需要补充说明的是,定义中的论域U可以是一维的,也可以是多维的;定义中提及的随机实现,是概率意义下的实现;定义中提及的确定度,是模糊集意义下的隶属度,同时又具有概率意义下的分布,这些都体现了模糊性和随机性的关联性。云不是简单的随机或者模糊,而是具有随机确定度的随机变量。如果没有确定度,那么云就退化为普通的随机变量;而如果仅仅是对经典集合中的元素赋予其随机的确定度,那么仅仅是模糊集合中隶属函数的扩展。因此,云不能简单理解为随机或者模糊,也不是模糊加随机,更不是二次随机或二次模糊,它很难把模糊性和随机性人为地分开,而是有机地集成在一起,能够实现定性语言值与定量数值之间的自然转换。它体现出了隶属函数的不确定性,更客观地反映了某种过渡性,能够更好的刻画人类语言以及思维中的灵活性和柔和性,更接近自然语言和人类思维过程[16]

需要强调的是,虽然云的直接含义是一个随机变量X,但是随机确定度是必不可少的内在条件,没有了确定度,云就失去其重要意义,而只是概率意义的随机变量。为了更好地理解这一点,有时也将云滴及其确定度的联合表示成为云,记为Cx,μ),以强调确定度μ对云的意义。

云从自然语言中的语言值切入,研究定性概念的量化方法,具有直观性和普遍性。定性概念转换成一个个定量值,更形象地说,是转换成论域空间的一个个点。这是个离散的转换过程,具有随机性。每一个特定的点的出现是一随机事件,可以用其概率分布函数描述。云滴能够代表该概念的确定度具有模糊集合中隶属度的含义,同时确定度自身也是个随机变量,也可以用其概率分布函数描述。在论域空间中,大量云滴构成一朵可伸缩、无边沿、近视无边、远观像云的一对多的数学映射图像,与自然现象中的云有着相似的不确定性质,所以借用“云”来命名这个数据——概念之间的数学转换理论。

云作为定性概念与其定量表示之间的不确定性转换模型,主要反映客观世界中事物或人类知识中概念的两种不确定性:模糊性(边界的亦此亦彼性)和随机性(发生的概率),并把二者完全集成在一起,构成定性和定量相互间的映射,研究自然语言中的最基本语言值(又称语言原子)所蕴涵的不确定性中的普遍规律,使得有可能从语言值表达的定性信息中获得定量数据的范围和分布规律,也有可能把精确数值有效转换为恰当的定性语言值。

根据该定义,论域中的值代表某个定性概念的确定度不是恒定不变的,而是始终在细微变化着的,但是,这种变化并不影响云的整体特征,对云来说,重要的是研究云的整体形状反映出的不确定概念的特性,以及云滴大量出现时确定度值呈现的规律性。

云用期望Ex(Expectation)、熵En(Entropy)和超熵He(Hyper entropy)三个数字特征来整体表征一个概念。将概念的整体特性用三个数字特征来反映,这是定性概念的整体定量特性,对理解定性概念的内涵和外延有着极其重要的意义。通过这三个数字特征,可以设计不同的算法来生成云滴及确定度,得到不同的云模型,从而构造出不同的云。

期望Ex:云滴在U上分布的期望。通俗地说,就是最能够代表定性概念的点,或者说是这个概念量化的最典型样本。距离期望Ex越近,云滴越集中,反映人们对概念的认知越统一;距离期望越远的云滴越离散稀疏,反映出人们对概念的认知越不稳定和不统一。

En:定性概念的不确定性度量,由概念的随机性和模糊性共同决定。一方面En是定性概念随机性的度量,反映了能够代表这个定性概念的云滴的离散程度;另一方面又是定性概念亦此亦彼性的度量,反映了在论域空间可被概念接受的云滴的取值范围。

超熵He:是熵的不确定性度量,即熵的熵。由熵的随机性和模糊性共同决定。

从一般意义上讲,概念的不确定性可以用多个数字特征表示。可以认为,概率理论中的期望、方差和高阶矩是反映随机性的多个数字特征,但没有触及模糊性;隶属度是模糊性的精确度量方法,但是没有考虑随机性;粗糙集是用基于精确知识背景下的两个精确集合来度量不确定性的,却忽略了背景知识的不确定性。在云模型中,除了期望、熵、超熵这3个数字特征外还可以用更高阶的熵去刻画概念的不确定性,理论上可以是无限深追的。但是,通常人类借助于语言进行思维,并不涉及过多的数学运算,用这3个数字特征足以反映一般情况下概念的不确定性深度,过多的数字特征会增加问题描述的复杂程度,违背人类使用自然语言思维的本质[16]

2.1.2 正向云发生器

云发生器(Cloud Generator,简记为CG)指被软件模块化或硬件固化了的云模型生成算法。由云的数字特征产生云滴,称为正向云发生器(Forward Cloud Generator),正向云发生器又称基本云发生器,是实现不确定性推理的基础,它产生的云滴呈现某种分布规律[16]。图2.1是一个正向云发生器示意图。

图2.1 正向云发生器

在概率分布中,正态分布最基本、最重要,应用也最广泛。正态分布由两个参数决定:期望和方差。钟形(或称高斯、正态)隶属函数是模糊理论中最常使用的隶属函数,其函数形式为μx)= exp[-(x-a2/(2b2)]。利用云模型的三个数字特征,将原本固定的方差用一个随机分布代替,并用这个随机分布,结合钟形隶属函数来产生随机确定度,是云的一种实现方法。正向正态云发生器在表达最基本的语言值——语言原子时最为有用,因为在社会科学和自然科学的各个分支都已经证明了正态分布的普适性[16]

定义2.2 设论域U,CU上的定性概念。w是服从正态分布NEn,He2)(En>0,He>0)的随机变量En′的一次实现;当w≠0时,x是服从正态分布NEx,w2)的随机变量X的一次实现,xC的确定度,当w=0时,x=Ex,μx)=1。则X在论域U上的分布称为正态云。

根据正态云的定义,熵变量En′NEn,He2)(En>0,He>0),其概率密度函数

En′为定值w(≠0)时,X的条件概率密度函数

所有云滴的确定度μ是一个随机变量

下面为正向正态云发生器的算法。

算法2.1 正向正态云发生器CGEx,En,He, N)。

输入:数字特征(Ex,En,He)及产生云滴的个数N,计数器i=1。

输出:云滴xi及其确定度μii=1, …, N)。

算法步骤:

(1)产生一个来自正态分布NEn,He2)的随机数wi

(2)若wi≠0,产生一个来自正态分布的随机数xi;若wi=0,xi=Ex

(3)若wi≠0,计算;若wi=0,μi=1。具有确定度μixi成为论域R中的一个云滴;

(4)i=i+1,当i<N+1时,重复步骤1-3,否则,停止。

此外,云可以根据不同的条件来生成,在给定论域中特定的数值x的条件下,生成x的确定度μ的云发生器称为X条件云发生器(见图2.2(a));给定特定的确定度值μ的条件下,生成x的云发生器称为Y条件云发生器(见图2.2(b))。X条件云发生器生成的云滴位于同一条竖直线上,横坐标数值均为x,纵坐标确定度值是一随机变量。Y条件云发生器生成的云滴x位于同一条水平线上,这些x也形成一随机变量,其确定度均为μ。两种条件云发生器是运用云模型进行不确定性推理的基础。X条件云发生器和Y条件云发生器的输出结果都是云带,X条件云发生器为一条,Y条件云发生器为以云的数学期望为对称中心的对称两条。云带的云滴密集度具有离心衰减的特点,即云带中心对概念的隶属确定度大,云滴密集,越偏离云带中心,对概念的确定度越小,云滴越稀疏[16]

图2.2 条件云发生器

(a)X条件云发生器(b)Y条件云发生器

算法2.2 X条件云发生器CGEx,En,He)。

输入:数字特征(Ex,En,He),论域中数值x

输出:x的确定度μ

算法步骤:

(1)若x=Ex,μ=1;

(2)若xEx,产生一个来自正态分布NEn,He2)的随机数w(≠0);

(3)计算,令(x,μ)为云滴。

算法2.3Y条件云发生器CGEx,En,He)。

输入:数字特征(Ex,En,He),确定度μ

输出:确定度为μ的论域中数值x

算法步骤:

(1)若μ=1,x=Ex

(2)若μ≠1,产生一个来自正态分布NEn,He2)的随机数w(≠0);

(3)计算,令(x,μ)为云滴。

下面我们将简单介绍服从其他种分布的云。

为了表达具有单侧特征的定性概念,我们可以定义半升云和半降云两种半云形态。半正态云仍可用CEx,En,He)来表示,只不过生成的云滴在论域中的数值要么都大于Ex,要么都小于Ex。例如,假定“距离”的论域为0 到100 km,如果分别用“小于20 km”、“大于80 km”来定义概念“近”、“远”,则可用半正态云来描述这两个概念,如图2.3和图2.4。

图2.3 半降正态云“近”

图2.4 半升正态云“远”

图2.5 “近、中、远”的云图

Ex不是一个数值而是一个区间,则可将正态云扩展成为梯形云。梯形云由半升正态云C1Ex1,En1,He1)和半降正态云C2Ex2, En2, He2)生成,当Ex1Ex2En1=En2He1=He2时,为标准的梯形云;当Ex1Ex2En1En2He1He2时,为梯形云的一般情况;当Ex1=Ex2En1=En2He1=He2时,梯形云就退化成基本的正态云模型。仍然以上例中的“距离”为例,若概念“中”的期望为区间[40,60],其梯形云表示见图2.5,这样“远”、“中”、“近”三个概念都可由云模型表示出来[74]

范建华等[67][68]中还讨论了伽玛云、三角形云,这里不再赘述。

2.1.3 正态云的概率分析

据公式(2.1)和公式(2.2),又由条件概率密度公式[69],可知X的边际概率密度函数

X的期望

和方差[70]

公式(2.5)和公式(2.6)表明,正向正态云算法产生的云滴,是一个期望为Ex,方差为En2+He2的随机变量。又有DX=EX2-(Ex2,故

EX2=(Ex2+En2+He2

首先求出当En′为定值w(≠0)时,Y 的条件分布函数FY En′y w)。

y∈(0,1)时,

可见,无论熵变量En′取何非零值,随机变量Y的条件概率分布函数都不变,即FY En′y w)与En′值无关,又Y是连续随机变量,故

而当y≥1时,FYy)=1;当y≤0时,FYy)=0。故Y的概率密度函数[70]

Y的期望

先计算

Y的方差

这一结论表明,确定度μ的概率密度函数同正态云的3个数字特征无关。通过证明过程还进一步知道,确定度μ的概率密度与En′服从何种分布无关,这是正态云的又一个重要性质,也是正向发生器算法设计的依据之一[16]

由于熵变量En′NEn,He2)(He>0),为表示方便,不妨记W=En′,有

据文献[71],有

其中,非中心参数。从而可推得

根据正向云的具体实现算法,产生的具有确定度μi的云滴xi对应于向量Gi=(xi,wi,μi)(i=1, …, N),而Gi是曲面

之上的点。

图2.6形象直观地表示了正向云发生器CG(0,1,0.1, 10000)的一次随机实现。在三维坐标(X,w,μ)中,点Gi 散落于公式(2.9)表示的曲面之上。图2.7、图2.8和图2.9分别展示了从三个不同角度看到的云图在二维坐标平面(X,μ)、(X,w)、(w,μ)上的射影。

图2.6 三维坐标下的正态云

图2.7 (x,w,μ)在二维坐标(x,μ)上的射影

图2.8 (x,w,μ)在二维坐标(x,w)上的射影

图2.9 (x,w,μ)在二维坐标(w,μ)上的射影

云的期望曲线方程为,该曲线覆盖的面积

因此位于[Ex-3En,Ex+3En]内的元素对概念的总贡献TC为:

所以,对于论域U上的定性概念C有贡献的定量值主要落在区间[Ex-3En,Ex+3En]。因此,甚至可以忽略该区间之外的定量值对定性概念C的贡献,这就是正态云的“3En规则”,如图2.10所示[16]

图2.10 不同区域内的云滴群对定性概念的贡献

2.1.4 逆向云发生器

逆向云发生器(Backward Cloud Generator,简记为CG-1)是实现从定量值到定性概念的转换模型。它可以将一定数量的精确数据转换为以三个数字特征{Ex,En,He}表示的定性概念,如图2.11所示[16]

图2.11 逆向云发生器

下面依次给出两种现有的逆向云发生器的算法。

算法2.4 利用确定度信息的逆向云发生器[72]

输入:云滴xi及其确定度μi,i=1, …,N

输出:反映定性概念的数字特征(Ex,En,He)。

(1)由已知云滴用云期望曲线方程拟合,从而得到

(2)将μ>0.999的点剔除,剩下M个云滴;

算法2.5 无需确定度信息的逆向云发生器[73]

输入:云滴xi,i=1, …,N

输出:反映定性概念的数字特征(Ex,En,He)。

(1)根据xi计算这组数据的样本均值,一阶样本绝对中心矩,样本方差

2.1.5 一种新的逆向云算法

下面,我们首先从统计学的角度分析上述两种逆向云算法。

设总体X的概率密度函数是fXx),X1, …,XN是来自总体X的一个样本,据公式(2.5)有

算法2.5中就采用一阶矩估计作为的Ex的无偏估计。

文献[72]指出用求平均值的方法来估计Ex的精度不高,而从上面的算法中,我们可以知道的精度对的精度起决定性作用。考虑到正态云的分布特性,故可以基于最小二乘法用云期望曲线方程[72]

来拟合云滴图,从而得到Ex的估计值。一阶矩估计只利用了云滴的x坐标值,这种方法还充分利用了云滴的确定度,并且由于正态云的对称特性,也使得该方法更精确。

据公式(2.3)有

Ex未知,只能得到Wi的近似值,即

显然,逆向云算法的精度与He/En的大小有很大关系[72]。据文献[71]可计算得,当En-3H e<0,即H e/En>1/3 时,算法2.1中产生的wi为负值的概率大于0.0015;当En-2H e<0,即H e/En>1/2时,wi 为负值的概率大于0.0225;当En-H e<0,即H e/En>1时,wi为负值的概率大于0.156。由于wi为负值的概率随He/En增加而变大,而算法2.4中步骤3相当于把算法2.1中产生的wi绝对值化了,因而当H e/En大到某一阈值时,该算法对EnH e 估计的均方误差(Mean Square Error,简称为MSE)必然增大。

,则有

这样就可能产生误差

显然当μi→1时lnμi→0,使得Δ→∞。

这样,我们就必须舍弃一些确定度很大的云滴。据公式(2.7)可以算出Py>0.999)=0.035。因此,当我们去掉确定度大于0.999的云滴后,仍然有96.5%的云滴。这样,既解决了估计误差过大的问题,又能继续后续运算[72]

实际中,我们可能遇到某概念的期望已知这种情形,如一维数轴上“坐标原点附近”(Ex=0)。当Ex已知时,可分别应用样本均值

和样本方差

来估计EZDZ,据公式(2.8)和公式(2.9)可得

一般情形下,我们是不知道Ex的,此时公式(2.10)和公式(2.11)中的Zi应换成Z′i

据文献[71], 分别是EnH e的渐近正态无偏估计。因为的相合估计,又,从而,有。故当N充分大时,以接近1的概率大于0。

此外,可以应用统计量偏度

和峰度

来表示W 的分布形状,其中:

基于以上统计分析,可构造一种新的逆向云算法以实现将一定数量的精确数据定量值有效转换到以数字特征(Ex,En,He)表示的定性概念的转换,下面为具体的算法。

算法2.6 新的逆向云发生器。

输入:云滴xi及其确定度μi,i=1, …,N

输出:反映定性概念的数字特征(Ex,En,He)。

算法步骤:

(1)由已知云滴用最小二乘法拟合云期望曲线方程y=,可得Ex的估计值

(2)若0<μi<1,计算,若μi=1,zi=0,i=1, …,N

(3)计算

(4)计算作为熵En的估计值;

(5)计算作为超熵He的估计值。

注:若Ex已知,舍去步骤(1),且(2)中应以Ex代替。若Ex未知,则需限制输入具有很大确定度(例如μ≥0.999)的云滴,不然对超熵He的估计会产生较大的误差。此外,步骤(1)中ExEn的拟合初始值分别设为云滴X值的均值和标准差。

2.1.6 三种逆向云算法的比较

无偏性是对估计量的一个重要而常见的要求。估计量是三个随机变量,对于不同的样本值它们有不同的估计值,这些估计值对于数字特征(Ex,En,He)的真值,一般都会有偏差,要求不出现偏差几乎是不可能的。但是,当我们大量重复使用这些估计量时,希望这些估计值的平均值等于未知参数的真值。此外,为反映估计量在其真值的邻域内波动大小的程度,还需计算估计量的均方误差。因此,评价一个估计量的好坏,不能仅仅依据一次试验的结果,而必须由多次试验结果来衡量。对于点估计需考虑重复模拟给出的均值(Mean)和均方误差,这是衡量不同估计方法优劣的准则。

下面利用Matlab编程对上述三种逆向云算法中三个数字特征的点估计作模拟对比实验。

模拟步骤如下:

(1)运行正向云发生器CGEx,En,He,NT次,每次产生N个云滴。

(2)对每次产生的云滴群分别执行算法2.4、算法2.5和算法2.6,相应得到数字特征的点估计。

(3)计算每种算法下数字特征点估计的均值和均方误差。

不妨令CGEx,En,He,N)=CG(0,1,0.05,1000),实验次数T=10。表2.1列出了“当Ex未知”和“当Ex已知”两种情形下,每种逆向云算法对数字特征点估计的均值和均方误差。图2.13和图2.14两种情形三种算法对熵En和超熵H e的10次估计。

表2.1 He/En=0.05时,三种算法的 10次模拟结果

图2.12 10次模拟三种算法对Ex的估计

图2.13 Ex未知时,10次模拟三种算法对EnHe的估计

图2.14 Ex已知时,10次模拟三种算法对EnHe的估计

对于估计量,算法2.4和算法2.6的最小二乘估计的均值比算法2.5的一阶矩估计的均值更准确,而且从图2.12中可以看到,一阶矩估计上下波动很大,而用最小二乘法比用一阶矩法估计Ex的精度提高了2~3个数量级。

对于估计量,两种情形下,算法2.4和算法2.6的估计准确度和精度都很高且差别很小,都比算法2.5的估计更准确,且精度提高了3个数量级。

为突出显示算法2.6的鲁棒性,不妨改He为0.7,此时0.7,实验次数T=100,其他条件不变。表2.2列出了两种情形下,每种逆向云算法对数字特征点估计的均值和均方误差。对于估计量,算法2.4和算法2.6的最小二乘估计的均值与算法2.5的一阶矩估计差别不大。但对于估计量,两种情形下,算法2.6比算法2.4和算法2.5的估计准确度和精度都高1个数量级(除当Ex未知时关于估计量)。

表2.2 He/En=0.7时,三种算法的 100次模拟结果

为了比较不同样本量下,三种逆向云算法对数字特征估计的收敛趋势,首先运行正向云发生器CGEx,En,He,N)=CG(0, 1,0.5,1000)1次,然后对产生的云滴群中的前k个云滴(k=100, 200, …,N)依序分别执行算法2.4、算法2.5和算法2.6,相应得到数字特征的点估计。

图2.15~图2.17直观反映了不同样本量下,三种逆向云算法对数字特征的点估计。可见,对于估计量,算法2.4和算法2.6的最小二乘估计比算法2.5的一阶矩估计收敛更快,更稳定。对于估计量,两种情形下,算法2.6收敛最快,也很稳定,算法2.4的效果次之。

图2.15 不同样本量下三种算法对Ex的估计

图2.16 Ex未知时,不同样本量下三种算法对EnHe的估计

图2.17 Ex已知时,不同样本量下三种算法对EnHe的估计

2.1.7 多维正态云

在现实世界中,有许多概念跟两个甚至更多的属性有关,因而不能只从某一单个意义上来阐述。比如,说一个人是胖,亦或瘦,基于常识就应该从身高和体重两方面来衡量,身高矮(1.60m)、体重重(80kg)的人可算是胖,但体重重(80kg)、身高高(1.96m)的人就不一定要算作胖了。所以,我们在一维云基础上,引出多维云(Multivariate Cloud)的概念,来反映由多个模糊原子概念组合成的复杂模糊概念[74]

设多维论域的任意两维之间彼此不相关,m维云就可用期望Ex=(Ex1, …,Exm、熵En=(En1, …,Enm和超熵He=(He1,…,Hem作为概念的数字特征,从而可描述更为复杂的定性与定量之间的转换。

Ex是多维云表示的定性概念的在论域中的中心值,是最能代表这个多维概念的值。En是概念的模糊测度,它们反映了该语言值对多维数值的可覆盖程度。He反映了云滴的离散程度。

多维正向正态云的具体实现算法为:

算法2.7 多维正向正态云发生器CGEx,En,He,N)。

输入:数字特征(Ex,En,He)及产生云滴的个数N

输出:N个云滴xi=(xi1, …,xim及其确定度μii=1, …,N)。

算法步骤:

(1)计数器i=1,依次产生一个来自正态分布的随机数wjij=1, …,m,下同);

(2)依次产生一个来自正态分布的随机数xji

(3)计算

具有确定度μixi成为论域U中的一个云滴;

(4)i=i+1,重复步骤1-3,当i=N+1时停止。

m维正态云的数学期望超曲面为

多维云可以根据不同的条件来生成,在给定论域中特定的向量x的条件下,生成x的确定度μ的云发生器称为多维X条件云发生器;给定特定的确定度μ的条件下,生成向量x的云发生器称为多维Y条件云发生器。两种多维条件云发生器是运用多维云模型进行多因素不确定性推理的基础。

算法2.8 多维X条件云发生器。

输入:数字特征(Ex,En,He),论域中向量x

输出:x的确定度μ

算法步骤:

(1)依次产生一个来自正态分布的随机数wjj=1, …,m);

(2)计算,令(x,μ)为云滴。

算法2.9 多维Y条件云发生器。

输入:数字特征(Ex,En,He),确定度μ

输出:确定度为μ的论域中向量x

算法步骤:

(1)依次产生一个来自正态分布的随机数wjj=1, …,m);

(2)依次产生一个来自均匀分布的随机数xjj=1, …,m-1);

(3)由得到,令(x,μ)为云滴。

上述多维Y条件云发生器算法中的第(3)步是先产生x1, …,xm-1再计算xm,也可以随机产生其中任意m-1个数值,再计算剩下的一个数值。

多维逆向正态云发生器从给定符合多维正态云分布规律的一组云滴样本(xi,μi),产生云所描述的多维定性概念的数字特征矩阵(Ex,En,He)。

算法2.10 多维逆向正态云发生器算法。

输入:云滴xi=(xi1, …,xim及其确定度μi,i=1, …,N

输出:反映定性概念的数字特征(Ex,En,He)。

(1)计算作为Ex的估计;

(2)计算样本标准差作为En的估计;

(3)对于第j 维分量,从样本中选取满足条件的所有云滴,计算后并求其标准差作为Hej的估计,j=1, …,m

算法中第(3)步中选择样本的目的是为了降维后再分别根据一维逆向云算法估计各维的超熵,由此也可以看出,多维逆向云发生器需要很多的云滴样本。