[p]贝叶斯网络
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贝叶斯网络
贝叶斯网络(Bayesian network),又称信念网络(belief network)或是有向无环图模型(directed acyclic graphical model),是一种概率图型模型,借由有向无环图(directed acyclic graphs, or DAGs)中得知一组随机变数{}及其n组条件概率分配(conditional probability distributions, or CPDs)的性质。举例而言,贝叶斯网络可用来表示疾病和其相关症状间的概率关系;倘若已知某种症状下,贝叶斯网络就可用来计算各种可能罹患疾病之发生概率。
一般而言,贝叶斯网络的有向无环图中的节点表示随机变数,它们可以是可观察到的变量,抑或是隐变量、未知参数等。连接两个节点的箭头代表此两个随机变数是具有因果关系或是非条件独立的;而两个节点间若没有箭头相互连接一起的情况就称其随机变数彼此间为条件独立。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(descendants or children)”,两节点就会产生一个条件概率值。比方说,我们以表示第i个节点,而的“因”以表示,的“果”以表示;图一就是一种典型的贝叶斯网络结构图,依照先前的定义,我们就可以轻易的从图一可以得知:
,以及
大部分的情况下,贝叶斯网络适用在节点的性质是属于离散型的情况下,且依照此条件概率写出条件概率表(conditional probability table, or CPT),此条件概率表的每一行(row)列
出所有可能发生的,每一列(column)列出所有可能发生的,且任一行的概率总和必为1。写出条件概率表后就很容易将事情给条理化,且轻易地得知此贝叶斯网络结构图中各节点间之因果关系;但是条件概率表也有其缺点:若是节点是由很多的“因”所造成的“果”,如此条件概率表就会变得在计算上既复杂又使用不便。下图为图一贝叶斯网络中某部分结构图之条件概率表。
图一:部分结构图之条件概率表
目录
[隐藏]
∙ 1 数学定义
∙ 2 马尔可夫毯(Markov blanket)
∙ 3 举例说明
∙ 4 求解方法
o 4.1 精确推理
o 4.2 随机推理(蒙特卡洛方法)
▪ 4.2.1 1.结构已知,观测值完整:
▪ 4.2.2 2.结构已知,观测值不完整(有遗漏数据):
∙ 5 补充例子(枚举推理法)
∙ 6 贝叶斯网络的应用层面
∙7 参考文献
∙8 外部链接
令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有
为其有向无环图中的某一节点i所代表之随机变数,若节点X的向连接线段的集合,且令X = (X i)i
∈I
联合概率分配可以表示成:
则称X为相对于一有向无环图G的贝叶斯网络,其中表示节点i之“因”。
对任意的随机变数,其联合分配可由各自的局部条件概率分配相乘而得出:
依照上式,我们可以将一贝叶斯网络的联合概率分配写成:
(对每个相对于X i的“因”变数X j 而言)
上面两个表示式之差别在于条件概率的部分,在贝叶斯网络中,若已知其“因”变数下,某些节点会与其“因”变数条件独立,只有与“因”变数有关的节点才会有条件概率的存在。
如果联合分配的相依数目很稀少时,使用贝氏函数的方法可以节省相当大的存储器容量。举例而言,若想将10个变数其值皆为0或1存储成一条件概率表型式,一个直观的想法可知我们总共必须要计算个值;但若这10个变数中无任何变数之相关“因”变数是超过三个以上的话,则贝叶斯网络的条件概率表最多只需计算个值即可!另一个贝式网络优点在于:对人类而
言,它更能轻易地得知各变数间是否条件独立或相依与其局部分配(local distribution)的型态来求得所有随机变数之联合分配。
定义一个节点之马尔可夫毯为此节点的因节点、果节点与果节点的因节点所成之集合。一旦给定其马尔可夫毯的值后,若网络内之任一节点X皆会与其他的节点条件独立的话,就称X为相对于一有向无环图G的贝叶斯网络。
假设有两个服务器,会发送数据包到用户端(以U表示之),但是第二个服务器的数据
包发送成功率会与第一个服务器发送成功与否有关,因此此贝叶斯网络的结构图可以表示成如图二的型式。就每个数据包发送而言,只有两种可能值:T(成功)或F(失败)。则此贝叶斯网络之联合概率分配可以表示成:
图二:简单的贝叶斯网络例子
此模型亦可回答如:“假设已知用户端成功接受到数据包,求第一服务器成功发送数据包的概率?”诸如此类的问题,而此类型问题皆可用条件概率的方法来算出其所求之发生概率:
。
以上例子是一个很简单的贝叶斯网络模型,但是如果当模型很复杂时,这时使用枚举式的方法来求解概率就会变得非常复杂且难以计算,因此必须使用其他的替代方法。一般来说,贝氏概率有以下几种求法:
精确推理[编辑]
∙枚举推理法(如上述例子)
∙变数消元算法(variable elimination)
随机推理(蒙特卡洛方法)[编辑]
∙直接取样算法
∙拒绝取样算法
∙概似加权算法
∙马尔可夫链蒙特卡洛算法(Markov chain Monte Carlo algorithm)
在此,以马尔可夫链蒙特卡洛算法为例,又马尔可夫链蒙特卡洛算法的类型很多,故在这里只说明其中一种Gibbs sampling的操作步骤:首先将已给定数值的变数固定,然后将未给定数值的其他变数随意给定一个初始值,接着进入以下迭代步骤:
(1)随意挑选其中一个未给定数值的变数
(2)从条件分配抽样出新的的值,接着重新计算
当迭代退出后,删除前面若干笔尚未稳定的数值,就可以求出的近似条件概率分配。马尔可夫链蒙特卡洛算法的优点是在计算很大的网络时效率很好,但缺点是所抽取出的样本并不具独立性。
当贝叶斯网络上的结构跟参数皆已知时,我们可以通过以上方法来求得特定情况的概率,不过,如果当网络的结构或参数未知时,我们必须借由所观测到的数据去推估网络的结构或参数,一般而言,推估网络的结构会比推估节点上的参数来的困难。依照对贝叶斯网络结构的了解和观测值的完整与否,我们可以分成下列四种情形: