贝叶斯网络(基础知识)1基本概率公理1)命题我们已经学过用命题逻辑和一阶谓词逻辑表达命题。在概率论中我们采用另外一种新的表达能力强于命题逻辑的命题表达方式,其基本元素是随机变量。如:Weather=snow;Temperature=high,etc。在概率论中,每个命题赋予一个信度,即概率2)在随机现象中,表示事件发生可能性大小的一个实数称为事件的概率用P(A)表示。如P(硬币=正面)=0.5。3)在抛硬币这个随机现象中,落地后硬币的所有可能结果的集合构成样本空间。4)P(A)具有以下性质:0≤P(A)≤1,P(A)+P(A)=1P(true)=1andP(false)=0P(AB)=P(A)+P(B)-P(AB)(or,P(A∨B)=P(A)+P(B),ifA∩B=,即A,B互斥)2随机变量随机变量是构成语言的基本元素:如本书提到的天气、骰子、花粉量、产品、Mary,公共汽车,火车等等。1)典型情况下,随机变量根据定义域的类型分成3类:布尔随机变量:如:牙洞Cavity的定义域是true,false离散随机变量:如:天气Weather的定义域是sunny,rainy,cloudy,snow连续随机变量:如:温度Temperature的定义域是[0,100]。这里我们主要侧重于离散随机变量。2)随机变量的性质每个随机变量都有有限个状态,(即状态有限的定义域),且定义域中的值必须互斥。如天气变量的状态有:晴朗、多云、雨、雪,并且每个状态都同一个实数相联系,该实数表明变量处于该状态时的概率。如今天的天气情况:P(天气=晴)=0.8P(天气=多云)=0.1P(天气=雨)=0.1P(天气=雪)=0。或简单的写作:P(Weather)=0.8,0.1,0.1,0变量的所有状态的概率取值构成这些状态的概率分布:))(),(),(()(21nvvvVP每个变量状态的概率值为0~1的实数,所有状态的概率和为1。3)很多情况下,许多随机事件的发生,是由多个因素决定的,即由多个随机变量确定。如:X=低X=中X=高Y=多云Y=晴0.50.010.010.20.190.09其联合概率分布为P(X,Y)=09.019.02.001.001.05.0,其所有项之和为1。3先验和后验概率1)与命题a相关联的无条件概率或称为先验概率:是在没有任何其它信息存在的情况下关于命题a的信度(概率),写做P(a)。例如:关于命题的先验概率P(Cavity=true)=0.1或者P(cavity)=0.1P(Weather=sunny)=0.8先验概率分布P(Weather)=晴,多云,雨,雪=0.8,0.1,0.1,0以及联合概率分布为P(X,Y)=09.019.02.001.001.05.0注意:只有在不存在其他信息的情况下,才能够用先验概率P(a)来表示。2)一旦得到了关于先前未知的、组成域的随机变量的某些证据,先验概率将不再可用了。我们就必须使用给定新信息关于a的条件概率(后验概率)来表示和推理用符号P(A|B)来表示,其中A,B是任何命题,B是和A相关的条件。如:P(cavity=true|toothache=true)=0.8即对于一个患牙疼的病人,其有牙洞的概率是0.8关于火车到达情况的概率P(火车)为先验概率分布(P(火车=晚点)=0.1是先验概率)。而P(火车=晚点|Mary=迟到)、P(火车=晚点|Mary=迟到,公共汽车=晚点),在Mary迟到和公共汽车晚点的基础上计算火车晚点的概率,是后验概率条件概率可以根据无条件概率定义和计算:P(a|b)=P(a,b)/P(b)而P(a,b)=P(a|b)P(b)=P(b|a)P(a)称为乘法规则可以理解为要使a和b同时为真,我们需要b为真,而且我们需要在已知b的条件下a也为真。调换a,b的位置同理。对于所有变量的所有状态取值我们可以用以下公式表示:)()|()()|(),(XPXYPYPYXPYXP如P(Cloud_cover,Pollen)=P(Cloud_cover|Pollen)P(Pollen)对不同的变量取值得到以下联合概率分布情况X=低X=中X=高Y=多云Y=晴0.50.010.010.20.190.09P(Weather,Cavity)=P(Weather|Cavity)P(Cavity)而任何一个概率查询都能从联合概率分布中得到解答。如:教材p93关于p86页Mary上班迟到例子的联合概率分布表P(Mary,公共汽车,火车)由该表我们可以计算如下情况:P(公共汽车=晚点|Mary=迟到)=P(公共汽车=晚点,Mary=迟到)/P(Mary=迟到)=(0.054+0.027)/(0.0063+0.063+0.054+0.027)=0.054同理,可以计算P(火车=晚点|Mary=迟到)=0.6P(火车=晚点|Mary=迟到,公共汽车=晚点)=P(Mary=迟到,公共汽车=晚点,火车=晚点)/P(公共汽车=晚点,Mary=迟到)=(0.027)/(0.027+0.054)=0.33根据乘法规则,得到链式规则P(X1,…,Xn)=P(Xn|X1,...,Xn-1)P(X1,...,Xn-1)=P(Xn-1|X1,...,Xn-2)P(Xn|X1,...,Xn-1)P(X1,...,Xn-2)=…=P(Xn-1|X1,...,Xn-2)P(Xn|X1,...,Xn-1)P(X1,...,Xn-2)...P(X2|X1)P(X1)4决对独立性P(A|B)=P(A)orP(B|A)=P(B)orP(A,B)=P(A)P(B)即一件事情的发生和另一件事情没有关系,如下图天气的情况对是否有牙洞没有关系,同样,是否长牙洞对天气没有影响,所以天气和牙洞之间是独立的。而toothache和catch之间则满足条件独立性,见65贝叶斯法则由乘法公式,我们得到P(A|B)=P(A,B)/P(B)=(P(B|A)P(A))/P(B)这就是著名的贝叶斯公式。贝叶斯公式几乎是所有概率推理的现代人工智能系统的基础。这个式子同样表示一组公式,每个公式处理变量的特定取值。我们还有某些场合要在某个背景证据e上使用一个更通用版本的条件化公式:)|()|(),|(),|(eBPeAPeABPeBAP应用贝叶斯法则:一个简单的例子贝叶斯法则是在一个条件概率和2个无条件概率的基础上计算另一个条件概率。而在实际中,这3项很好估计,所以贝叶斯公式很有用。如在一个医疗诊断的任务中:医生知道脑膜炎引起脖子僵硬的概率为0.5,病人患脑膜炎的先验概率是1/50000,而任何一个病人脖子僵硬的先验概率为1/20。令s表示‘病人脖子僵硬’的命题,m表示‘病人患脑膜炎’的命题,P(s|m)=0.5P(m)=1/50000P(s)=1/20P(m|s)=(P(s|m)P(m))/P(s)=0.0002对于知道5000个病例中有一个脖子僵硬的的人暗示着有脑膜炎,这些医生不需要懂贝叶斯法则。但是当某一地区,关于脑膜炎的先验概率发生改变时(P(s|m)不受影响)P(m|s)就会随之改变,所有贝叶斯公式为实现在现实世界中可行的概率系统提供了所需要的至关重要的鲁棒性(稳定性)。6使用贝叶斯法则:合并证据由上述可知贝叶斯法则对于回答在某一条证据的条件约束下的概率问题是非常有用的,而且我们已经讨论过概率信息经常是以P(结果|原因)的形式出现的。当我们有两条或者更多条证据时,会有什么事情发生呢?如:P(Cavity|toothache∧catch)可以通过全联合分布找到答案。但是这种方法不适用于变量比较过的情况。我们也可以用贝叶斯法则重新对问题进行表达:P(Cavity|toothache∧catch)=P(toothache∧catch|Cavity)P(Cavity)我们需要了解在Cavity每个取值下toothache∧catch的条件概率,同样,不适用于多个变量的情况。为了解决以上问题,我们利用‘独立性’。如果牙齿被感染(探针),那么牙齿可能有洞,而有洞的牙齿也能引起牙疼,但是,在了解病人是否有牙洞后,这些变量(catch和toothache)就相互独立了。每个变量取值都是由牙洞导致的,但是他们彼此之间没有直接影响:牙疼依赖于神经状态,是否感染取决于牙医的技术,这与牙疼不相关。因此根据这个性质,P(toothache∧catch|Cavity)=P(toothache|Cavity)P(catch|Cavity)。这个公式表达了当给定Cavity时候,toothache和catch的条件独立性:给定第三个随机变量Z(证据)之后,两个随机变量X和Y的条件独立性的一般定义是:P(X,Y|Z)=P(X|Z)P(Y|Z)也可以用以下形式来表示P(X|Y,Z)=P(X|Z)和P(Y|X,Z)=P(Y|Z)所以P(Cavity|toothache∧catch)=P(toothache|Cavity)P(catch|Cavity)P(Cavity)因此对于前面讲过的决对独立断言,允许将全联合分布分解成很多更小的分布,对于条件独立性断言也是同样成立的。这样将,原来较大的概率表分解为3个较小的概率表。通过条件独立性,将一个大的概率领域分解城一些相互联系非常弱的子集,并允许概率系统进行规模扩展,而且条件独立性也比决对独立性断言更加普遍。P(Cause,Effect1,…,Effectn)=P(Cause)iP(Effecti|Cause)称为素贝叶斯模型。