7.5.3 推断

7.5.3 推断

  • 贝叶斯网训练好之后就能用来回答“查询(query)”,即通过一些属性变量的观测值来预测其他属性变量的取值,例如,在西瓜问题中,若我们观测到西瓜色泽青绿,敲声浊响,根蒂蜷缩,想知道它是否为成熟,甜度如何。这样通过已知变量观测值来推测待查询变量的过程称之为推断(inference),已经知道变量的观测值称之为证据(evidence)
  • 最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,不幸的是,这样的精确推断,已经被证明是NP问题;换言之,当网络节点比较多的时候,连接稠密的时候,难以进行精确的推断,此时需要借助近似推断通过降低精确要求,在有限的时间内求得近似解,在显示应用中,贝叶斯网的近似推断通常使用吉布斯采样来完成,这是一种随机采样方法,我们来看看它是如何工作的。
  • 令Q={Q1,Q2,Q3……Qn}表示待查询的变量,E={E1,E2,E3……En}为证据变量,已知其取值为e={e1,e2,e3……ek}。目标是计算后验概率P={Q = q | E = e},其中q={q1,q2,q3……qn}是待查询变量的一组取值。以西瓜问题为例,待查询变量为Q={好瓜,甜度},证据变量E={色泽,敲声,根蒂}并且已经知道甜度为e={亲绿,浊响,蜷缩},查询的目标值是q={是,高},即这是好瓜并且甜度高的概率有多少
输入:贝叶斯网 B={G,谁他}
	 采样次数 T
	 证据变量 E 以及取值 e
	 待查询的变量 Q 以及 取值q
	 
过程:
	nq=0
	q0对Q随机赋予初始值
	for t =1,2……T do
		for Qi 属于 Q do
			Z = E ∪ Q \ {Qi}
             z = e ∪ q^(t-1) \{qi(t-1)}
             根据 B 计算分布 PB(Qi | Z =z)
             qit = 根据 PB(Qi | Z =z)采样所获得Qi取值
             qt  = 将q^(t-1) 中的 qi(t-1) 用 qi(t)代替
         end for
         if q^t =q then
         	np=np+1
         end if 
     end for
输出:
	P( Q =q | E = e)= nq / T
     
  • 吉布斯采样算法先随机产生一个与证据 E= e 一致的样本 q0 作为初始点,然后每部从当前样本出发产生下一个样本。具体来说,在第t次的采样中,算法先假设 q^t = q^(t-1),然后对非证据变量逐个进行采样来改变其取值,采样概率根据贝叶斯网路B 和其他变量的当前取值(Z = z))进行计算获得,假设经过 T 次采样得到与 q一致的样本共有n q个,则可以近似的估算出 后验概率
    • P (Q = q | E = e) = nq / T
  • 实质上,吉布斯采样是在贝叶斯网所有变量的联合状态空间与证据 E =e一致的子空间的随机漫步,每一步仅仅依赖于前一步的状态,这是一个马尔科夫链。在一定的条件下,无论从什么初始状态开始,马尔可夫链第t步的状态分布在 t -> ∞ 必定收敛于一个平稳分布,对于吉布斯采样来说,这个分布恰好是 P(Q | E = e)。因此,当T 很大的时候,吉布斯采样相当于是根据 P(Q | E = e)采样,从而保证了 P(Q =q | E= e)收敛于nq / T
  • 需要注意的是,由于马尔可夫链通常需要很长的时间才能趋于平稳分布,因此吉布斯采样算法的收敛速度比较慢,此外,此贝叶斯网存在极端概率0 或者是1则不能保证马尔可夫链存在平稳分布,此时吉布斯采样机会给出错误的计算结果。

猜你喜欢

转载自blog.csdn.net/weixin_44412864/article/details/113624593