我们现在举一个比较具体的例子,来看看置信度是如何在一个信度网络中传播的。在这个例子中,一个基于规则的专家系统将确定计算机感染恶意病毒的可能性。此专家系统将基于三个因素进行确定:(1)计算机本身是否安全;(2)用户行为的危险性;(3)系统的可靠性。
下面三条规则可以确定计算机是否安全:
R1:IF(无防火墙AND没有连接到路由器)OR(用户是管理员)
THEN计算机没有受到保护(CF 1.0)
R2:IF(操作系统没有更新OR浏览器没有更新)
THEN软件没有更新(CF 1.0)
R3:IF(计算机硬件未受保护OR软件没有更新OR没有防病毒软件)
THEN计算机不安全(CF 1.0)
R1用来确定计算机是否受到保护。此条规则说明,当(1)无防火墙和(2)没有连接到路由器同时发生时,计算机就是不受保护的。路由器充当一个安全装置,可以过滤输入输出数据。因此,防火墙和路由器并不是同时需要的,只需其中之一就可以满足要求。其次,若用户是管理员本身,就认为计算机是不安全的。这是因为管理员有太多特权(例如,更新系统文件的能力)会使得恶意病毒有机可乘,而受限制的用户可以使得系统运行更为安全。
为了简化这些规则,可以将其从表示系统弱点的特征方面来阐述。例如R1的结论是“计算机没有受到保护”。同时R1也可以表示成“计算机受到保护”,那么此时置信度用+1.0表示计算机完全受到保护的事实,而-1.0表示计算机完全不受保护的事实。
以上全部三条规则的置信度都为1.0。因此,当规则的条件得到满足时,其相关的结论是完全可信的。此外,条件中使用的全部变量均为YES/NO变量,因此若条件为真,则变量的置信度为1.0,否则就是0.0。
R2用来确定计算机软件是否更新。如果操作系统或者浏览器软件两者之一未曾更新(例如没有使用最通用的版本系列),那么R2可以得出结论:软件没有更新(cf=1.0)。最后,R3同时接受R1(计算机未受保护)和R2(软件没有更新)的结论,连同用户是否安装了防病毒软件的条件。即便这三个条件中只有一个为真,也可以认为计算机是不安全的。
我们假设用户输入下列值作为对系统的鉴定(用户的响应用黑体字表示,系统cf值的分配用斜体字表示):
1)防火墙是否开启?No(无防火墙,cf=1.0)
2)计算机是否连接到路由器?Yes(无路由器,cf=0.0)
3)用户是否作为管理员工作?No(用户管理,cf=0.0)
4)操作系统是否实时更新?No(操作系统没有更新,cf=1.0)
5)浏览器是否实时更新?Yes(浏览器没有实时更新,cf=0.0)
6)杀毒软件是否安装?Yes(没有安装杀毒软件,cf=0.0)
图8-4表示了一个信度网络,并且指明了置信度是如何在网络中进行传播的。基于用户的响应,系统为每条规则计算了其各自的置信度,即cf(规则)=cf(前提)×cf(结论):
CF(R1)=max(min(1.0,0.0))×1.0=0.0
CF(R2)=max(1.0,0.0)×1.0=1.0
CF(R3)=max(0.0,1.0,0.0)×1.0=1.0
图8-4 判定计算机安全与否的信度网络(置信度已经标示出)
信度网络说明,当计算机受到保护(计算机未受保护的置信度cf=0.0),同时安装了杀毒软件(无杀毒软件的置信度cf=0.0)时,系统没有实时更新(系统没有实时更新的置信度cf=1.0)。因此,我们最后可以得出结论计算机不安全(计算机不安全置信度cf=1.0)。
系统考虑的第二个因素是用户行为的危险性。下列三条规则用来评估这些危险活动:
R4:IF从危险的站点下载文件
THEN用户行为是危险的(cf 0.7)
R5:IF用户点击电子邮件上的链接
THEN用户行为是危险的(cf 0.2)
R6:IF用户点击电子邮件上附带的文件
THEN用户行为是危险的(cf 0.7)
R4考虑用户是否从认为危险的站点下载文件。一些文件共享的站点,诸如BitTorrent、Kazaa、Morpheus、Grokster和Limewire都因其文件中嵌入了间谍软件、Trojan木马以及其他的恶意病毒而声名狼藉。R5询问用户是否点击了电子邮件上的链接。我们认为这样的点击行为是不良的,因为这有可能通过访问一个站点导致你计算机上的隐蔽强迫下载,或者恶意代码的安装。最后,R6考虑用户是否从电子邮件上下载附件,因为这些文件有可能感染了恶意病毒。
R4、R5和R6中使用小于1.0的置信度,这就表明其结论不是决定性的。之所以这样,是因为所谓“危险行为”是一种不确定的和不可测的用户行为。我们认为文件下载和点击文件附件的行为比点击电子邮件上的链接更加危险;因此,R4和R6比R5分配了更高的置信度。此外,这些条件本身也指定了置信度的变化,因为这些危险行为并非是白纸黑字那么明显,而是具有变化的度量。根据上述的争论,基于用户从事危险行为的频率,我们假设为系统赋予的置信度数值如下:
一直,总是 1.0
频繁,屡次 0.8
有时,不时 0.6
偶尔,间或 0.4
不常,很少 0.2
绝不,从不 0.0
下面针对系统提出的问题,再一次给出用户的响应(用户的响应用黑体字表示,系统cf值的分配用斜体字表示):
1)你是否从共享文件和其他危险的站点下载文件?
频繁,屡次(下载危险文件,cf=0.8)
2)你是否点击电子邮件上的链接?
有时,不时(点击链接,cf=0.6)
3)你是否点击电子邮件上的附件,即使是你并不需要此附件?
不常,很少(点击附件,cf=0.2)
基于这些响应,系统计算出每条规则的置信度为
CF(R4)=0.7×0.8=0.56
CF(R5)=0.2×0.6=0.12
CF(R6)=0.7×0.2=0.14
由于此三条规则全部作用于同样的假设,并且全部是正的,所以系统可以根据传播方程1来计算相应的联合置信度,即
cf(cf_R4,cf_R5)=0.56+0.12×(1-0.56)=0.6128(www.daowen.com)
cf(cf_R4+R5,cf_R6)=0.6128+0.14×(1-0.6128)=0.667
因此,用户行为是危险的假设置信度为0.667。图8-5表示了其信度网络,同时在节点处标示出其联合置信度。
图8-5 确定危险行为的信度网络(置信度已经标示出)
第三个也是最后一个因素是系统的可靠性。感染恶意病毒的系统通常会具有低劣的性能且不可靠。下面给出的R7到R10,可以用来评估系统的不可靠性:
R7:IF计算机死机
THEN系统不可靠(cf 0.8)
R8:IF计算机崩溃
THEN系统不可靠(cf 1.0)
R9:IF计算机运行缓慢AND有足够内存
THEN系统不可靠(cf 0.4)
R10:IF系统运行缓慢AND没有足够内存
THEN系统不可靠(cf -0.5)
R7和R8将系统的可靠性建立在计算机是死机情况,还是崩溃情况。因为系统崩溃比系统死机要严重得多,所以R8的置信度比R7的置信度高(1.0vs0.8)。系统可靠性的第三个决定因素是系统运行的快慢。但是,系统运行缓慢并不是系统可靠性的必然表现;在一定程度上这可能是因为内存不够所致。因此,R10分配了一个负的置信度,以说明系统运行慢就意味着系统不可靠的假设是不可信的。
基于下面的用户响应,系统鉴定将涉及下面的问题和置信度分配(用户的响应用黑体字表示,系统cf值的分配用斜体字表示):
问题1.计算机死机的频率?
一周一次(有计算机死机情况,cf=0.5)
问题2.计算机崩溃的频率?
一月一次(有计算机崩溃情况,cf=0.2)
对于问题1和问题2,可能的响应是(括号中为置信度数值):不断发生(1.0),每天发生(0.8),每周发生(0.5),每月发生(0.2),从不发生(0.0)
问题3.系统运行的缓慢程度?
无法容忍的慢(有系统运行缓慢情况,cf=0.8)
对于问题3,可能的响应是:无响应(1.0),无法忍受的慢(0.8),可以忍受的慢(0.6),偶尔会慢(0.2),从来不慢(0.0)
问题4.系统的内存是多大?
512MB(内存不够,cf=0.6)和(内存足够,cf=0.0)
对于问题4,大概系统将询问用户所安装的是什么操作系统,以及其他的用户需求,然后基于用户需求来判断其内存是否足够。我们假设内存不够时的置信度为0.6。此外,系统也指定内存足够时的置信度值为0.0(内存足够,我们假设其为2GB)。
现在既然系统已经收集到全部输入条件的置信度,接下来就可以计算置信度并将其传播到信度网络中的其他节点处。首先,为每一条规则计算各自的置信度。
CF(R7)=0.5×0.8=0.40
CF(R8)=0.2×1.0=0.2
CF(R9)=min(0.0,0.8)×0.8=0.0
CF(R10)=min(0.8,0.6)×(-0.5)=-0.30
接下来,系统将计算四条规则的联合置信度,这些规则都会影响系统不可靠的假设(由于R9置信度值为0,因此可以忽略)。
cf(cfR7,cfR8)=0.4+0.2×(1-0.4)=0.52
请注意,由于置信度异号,因此我们使用传播方程3。最终计算出系统不可靠的假设置信度为0.314。图8-6所示为信度网络图以及相应的置信度。
图8-6 判定系统可靠的信度网络(置信度已经标示出)
信度网络的最后一步是判定计算机是否感染了恶意病毒。基于上述计算出的三个数值作出判断,最终使信度网络所有节点都通向了计算机感染的节点,在该处信度网络达到顶峰。最后下面两条规则用来更新该节点的置信度:
R11:IF计算机不安全AND系统不可靠
THEN计算机被感染(cf 0.4)
R12:IF用户有危险行为AND系统不可靠
THEN计算机被感染(cf 0.95)
R11和R12中IF部分的全部条件都是前面已经确定了的。特别地,计算机不安全、用户行为危险以及系统不可靠在前面已经讨论过了。以这三条变量的置信度来充当R11和R12的输入。进一步观察可以发现,R11和R12都只在系统认为自身不可靠时才会起作用。其原因是无论单独的危险行为抑或计算机本身不安全,都不能表示已经感染恶意病毒。系统必须有一些受到感染的外在表现,诸如系统运行变慢、系统崩溃、系统死机等,这样才能使得人们可以确定系统受到了感染。最后,我们能够显而易见地看出R12比R11的置信度要高。这表明相比计算机自身的不安全性,用户的危险行为有可能是系统感染的原因。一旦用户确有这种危险行为,那么无论计算机怎么保护(例如防火墙或防病毒软件),都不能阻止系统受到感染。
系统将会像前面一样处理以传播置信度。相关的计算如下:
CF(R11)=min(1.0,0.314)×0.4=0.126
CF(R12)=min(0.667,0.314)×0.95=0.298
cf(cfR11,cfR12)=0.126+0.298×(1-0.126)=0.386
图8-7给出了恶意病毒检测信度网络的最后一部分,它实际上是图8-4、图8-5和图8-6的延续和终点。最终的计算结果说明计算机感染的置信度为cf=0.386,即计算机受到感染的可信度为中等偏下。同时图8-7也说明,尽管计算机被认为是不安全的(cf=1.0)并且用户从事了危险行为(cf=0.667),但是系统只有较低的不可靠性(cf=0.314),而假设的较高信度(高cf)不会出现。
最后这种计算结果的一个评论是系统对于这种可变危险行为的敏感度较低。计算机感染的置信度实际上在危险行为的置信度范围在0.314~1.0之间时是不会改变的(这个结果发生是由于R12的条件与总是取危险行为和系统不可靠中的最小值,因此在这个范围内的所有值总是0.314)。如果此副作用对于R12不合适的话,我们提出的一条解决方案是去除规则中有关系统不可靠的条件。另一方面,这或许并非一条好的解决方案,正如前面所提到的,因为没有必要为了怀疑计算机感染了恶意病毒,就必需一些关于系统不可靠的证据[3]。
我们已经论证了处理不确定数据和信息的置信度方法。自从20世纪70年代由MYCIN采纳置信度以来,它已经成为了在基于规则的专家系统中处理不确定性的一种普遍的方法。其主要的优点在于其计算的简便性,以及将多种证据资源整合到一个单一的合成数据的特殊能力。然而,置信度也有缺点,这主要是由于置信度作为处理不确定性中困难课题的一种专门方法而开发,它缺乏在概率论方面严谨的数学基础。
因此,我们需要一种更为严谨的数学方法。近些年来在人工智能方面,一种叫贝叶斯网络的方法得到了很大的关注。尤其是在过去的二十年间,基于贝叶斯网络的实验和研究飞速发展。本章的剩余部分将简要介绍这一充满活力且发展迅速的领域。不过在开始我们的讨论之前,有必要介绍一些基本的概率论知识,以便更好地了解这种处理不确定性的方法。
图8-7 判定计算机是否感染的信度网络(置信度已经标示出)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。