贝叶斯网络用于什么?
贝叶斯网络用于表示变量之间的依赖关系。可以本质上表示任何完全联合概率分布,在许多情况下这种表示是简明扼要的。
每个结点对应一个随机变量,这个变量可以是离散的或者连续的
一组有向边或箭头连接结点对。如果有从结点X指向结点Y的箭头,则称X是Y的一个父结点。图中没有有向回路(因此被称为有向无环图,或简写为DAG)。
每个结点Xi有一个条件概率分布P(Xi | Parents(Xi)),量化其父结点对该结点的影响。
由此可确定所有变量的完全联合概率分布
例子:防盗报警器问题的贝叶斯网络
问题:我在上班,邻居John打电话说我的闹钟响了,但邻居Mary没有打电话。有时它是由小地震引起的。有窃贼吗?
字母B、E、A、J、M分别表示Burglary(盗贼)、Earthquake、Alarm、JohnCalls以及MaryCalls
可看出结点的排序对于贝叶斯网络概率的计算具有影响。父节点排在前面时可以计算,子节点排在后面可能不利于计算。
用 P ( x 1 , . . , x n ) P(x_1,..,x_n) P(x1,..,xn)简化表示联合概率 P ( X 1 = x 1 , . . . , X n = x n ) P(X_1=x_1,...,X_n=x_n) P(X1=x1,...,Xn=xn),则有:
P ( x 1 , . . , x n ) = ∏ i = 1 n θ ( x i ∣ p a r e n t s ( X i ) ) P(x_1,..,x_n)=\prod_{i=1}^n \theta(x_i | parents(X_i)) P(x1,..,xn)=i=1∏nθ(xi∣parents(Xi))
其中,参数就代表 θ ( x i ∣ p a r e n t s ( X i ) ) \theta(x_i | parents(X_i)) θ(xi∣parents(Xi))就是联合概率分别蕴含的条件概率 P ( X i ∣ p a r e n t s ( X i ) ) P(X_i | parents(X_i)) P(Xi∣parents(Xi))
构造贝叶斯网络的方法,将我们带到结论:
拓扑语义蕴含了另一个重要的独立性特性:
给定一个结点的父结点、子结点、以及子结点的父结点,即给定它的马尔可夫覆盖(Markov blanket),这个结点条件独立于网络中的所有其他结点。
结点X条件独立于网络中除了它的马尔可夫盖的所有其他结点。
给定一组证据变量的赋值后,计算一组查询变量的后验概率分布。
任何条件概率都可以通过将完全联合概率分布中的某些项相加而计算得到
P ( X ∣ e ) = α P ( X , e ) = α ∑ y P ( X , e , y ) P(X|e)=\alpha P(X,e)=\alpha \sum_y P(X,e,y) P(X∣e)=αP(X,e)=αy∑P(X,e,y)
P(x, e, y)可以写成网络中的条件概率的乘积形式
考虑查询
P ( B u r g l a r y ∣ J o h n C a l l s = t r u e , M a r y C a l l s = t r u e ) P(Burglary |JohnCalls = true,MaryCalls = true) P(Burglary∣JohnCalls=true,MaryCalls=true)
P ( B ∣ j , m ) = α P ( B , j , m ) = α ∑ e ∑ a P ( B , j , m , e , a ) P(B | j , m)=\alpha P(B , j , m)=\alpha \sum_e \sum_a P(B , j , m , e , a) P(B∣j,m)=αP(B,j,m)=αe∑a∑P(B,j,m,e,a)
Burglary = true(即b),的情况
P ( b ∣ j , m ) = α ∑ e ∑ a P ( b ) P ( e ) P ( a ∣ b , e ) P ( j ∣ a ) P ( m ∣ a ) P ( b ∣ j , m ) = α P ( b ) ∑ e P ( e ) ∑ a P ( a ∣ b , e ) P ( j ∣ a ) P ( m ∣ a ) P ( b ∣ j , m ) = α × 0.00059224 P(b|j,m)=\alpha \sum_e \sum_a P(b)P(e)P(a|b,e)P(j|a)P(m|a) \\ P(b|j,m)=\alpha P(b)\sum_e P(e) \sum_a P(a|b,e)P(j|a)P(m|a) \\ P(b | j, m) = \alpha × 0.00059224 P(b∣j,m)=αe∑a∑P(b)P(e)P(a∣b,e)P(j∣a)P(m∣a)P(b∣j,m)=αP(b)e∑P(e)a∑P(a∣b,e)P(j∣a)P(m∣a)P(b∣j,m)=α×0.00059224
¬b的相应计算结果为α× 0.0014919
因此,P(B|j,m)=α<0.00059224,0.0014919>≈<0.284,0.716>
也就是说,在两个邻居都打了电话的情况下,出现盗贼的概率大约是28%。
公式:
P ( b ∣ j , m ) = α P ( b ) ∑ e P ( e ) ∑ a P ( a ∣ b , e ) P ( j ∣ a ) P ( m ∣ a ) P(b|j,m)=\alpha P(b)\sum_e P(e) \sum_a P(a|b,e)P(j|a)P(m|a) P(b∣j,m)=αP(b)e∑P(e)a∑P(a∣b,e)P(j∣a)P(m∣a)
的计算过程显示为下图中的一棵表达式树。
求值运算过程自顶向下,将每条路径上的值相乘,并在+号结点求和。注意到j和m有重复路径。P(j|a)P(m|a)和P(j|¬a)P(m|¬a)都分别计算了两次。
变量消元算法的工作方式是按照从右到左的次序计算公式,中间结果被保存下来,而对每个变量的求和只需要对依赖于这些变量的表达式部分进行就可以了。
不同顺序决定了不同的时间和空间要求
#### 蒙特卡洛算法(随机采样算法)
#### 拒绝采样
实验代码下载:
https://github.com/yyl424525/AI_Homework
人工智能-一种现代方法中文第三版pdf、课件、作业及解答、课后习题答案、实验代码和报告、历年考博题下载:https://download.csdn.net/download/yyl424525/11310392