首页 > 代码库 > 贝叶斯信念网络总结
贝叶斯信念网络总结
1.概念和机制
朴素贝叶斯分类法假定类条件独立。当假定成立时,与其他所有分类器相比,朴素贝叶斯分类器是最准确的。然而,在实践中,变量之间可能存在依赖关系。贝叶斯信念网络说明联合条件概率分布。它允许在变量的子集间定义类条件独立性。它提供一种因果关系的图形模型,可以在其上进行学习。训练后的贝叶斯信念网络可以用来分类。贝叶斯信念网络也叫信念网络,贝叶斯网络。
信念网络由两个成分定义——有向无环图和条件概率表的集合。有向无环图的每个节点代表一个随机变量。变量可以使离散值或连续值。它们可能对应于给定数据中的实际属性,或对应于相信形成联系的“隐藏变量”。而每条弧表示一个概率依赖。如果一条弧由节点Y到Z,则Y是Z的双亲或直接前驱,而Z是Y的后代。给定其双亲,每个变量条件独立于图中它的非后代。
对每个变量,信念网络有一个条件概率表(Conditional Probability Table,CPT)。变量Y的CPT说明条件分布P(Y|Parents(Y)),其中Parent(Y)是Y的双亲。
设X=(x1,...,xn)是被变量或属性Y1,...,Yn描述的数据元组。注意,给定变量的双亲,每个变量都条件地独立于网络图中它的非后代。这使得网络用下式提供存在的联合概率分布的完全表示:
P(x1,...,xn)=∏P(xi|Parents(Yi)) ;i=1,2,..,n
其中,P(x1,...,xn)是X的值的特定组合的概率,而P(xi|Parents(Yi))的值对应于Yi的CPT的表目。
网络内的节点可以选作“输出”节点,代表类标号属性。可以有多个输出节点。分类过程不是返回单个类标号,而是可以返回概率分布,给出每个类的概率。信念网络可以用来回答实证式查询的概率和最可能的查询解释。
2.训练贝叶斯信念网络
在信念网络学习或训练时,许多方案都是可行的。网络拓扑(或节点和弧的“布局”)可以由专家构造或由数据导出。网络变量可以使可观测的,或隐藏在所有或某些训练元组中。隐藏数据的情况也称为缺失值或不完全数据。
当网络拓扑给定,而某些变量时隐藏的时,可以选作不同的方法来训练信念网络。我们介绍一种有希望的梯度下降法:
设D是数据元组X1,X2,...,X|D|的训练集。训练信念网络意味着我们必须学习CPT表目的值。设wijk是具有双亲Ui=uik的变量Yi=yij的CPT表目,其中wijk=P(Yi=yij|Ui=uik)。wijk可以看做权重,类似于神经网络中隐藏单元的权重。权重的集合记作W。这些权重被初始化为随机概率值。梯度下降策略采用贪心爬山法。在每次迭代后,这些权重都会被修改,并最终收敛到一个局部最优解。
假定wikj的每种可能设置都是等可能的,梯度下降 (gradient descent) 策略用于搜索能最好地对数据建模的wijk值。这种策略是迭代的。它沿着准则函数的梯度的负方向搜索解。我们要找出最大化该函数的权重的集合W。开始,这些权重被初始化随机的概率值。梯度下降策略执行贪心的爬山法,因为在每次迭代或每一步,算法向当时看上去是最优解的方向移动而不回溯。每次迭代都更新权重。最终,它收敛于一个局部最优解。
对于我们的问题,我们最大化Pw(D)=∏Pw(Xd) ;d=1,2,...,|D|。这通过按ln(Pw(S))的梯度来做,使得问题更简单。给定网络拓扑和wikj的初值,该算法按一下步骤处理:
(1)计算梯度:对每个i,j,k,计算
∂ln(Pw(D))/∂wijk=Σ{P(Yi=yij,Ui=uik|Xd)/wijk} ;d=1,2,...,|D| .式子右端的概率要对D中的每个训练元组Xd计算。为了简单起见,我们简单地称此概率为p。当Yi和Ui表示的变量对某个Xd事隐藏的时,则对应的概率p可以使用贝叶斯网络推理的标准算法,由元组的观察变量计算。
(2)沿梯度方向前进一小步:
wijk <--wijk + (L)*{ ∂ln(Pw(D))/∂wijk } ;
其中,L是表示步长的学习率,而 ∂ln(Pw(D))/∂wijk 由上上式求出。学习率被设置为一个小常数有助于收敛。
(3)重新规格化权重:
由于权重wikj是概率值,我们必须在0.0 和 1.0 之间,并且对于所有的 i , k , Σwijk 必须得于1.权重被更新后,可以对它们重新规格化(renormalizing)来保证这一条件。
遵循这种学习形式的算法称做自适应概率网络(adaptive probabilistic networks)。信念网络是计算密集的。因为信念网络提供了因果结果的显示表示,因此专家可以用网络拓扑或条件概率值的形式提供先验知识。这可以显著提高学习率。
贝叶斯信念网络总结