贝叶斯网络参数学习笔记

来源:互联网 发布:星状网络数据链通信机 编辑:程序博客网 时间:2024/05/11 09:09

贝叶斯网络

概述:贝叶斯网络用于分类和因果关系分析(主要讲静态贝叶斯算法)

<一>贝叶斯网络概率推理(Probabilistic Inference)(详见贝叶斯网络推理算法综述)

1精确推理算法

(1)    变量消元算法(Variable elimination)  var_elim_inf_engine

(2)    团树传播算法   global_joint_inf_engine

{

团树传播算法有两个版本:

1hugin方法 lauritzen and spiegelhalter,1988;Jensen et al.,1990

2shafer-shenoy方法 (Shafer and shenoy,1990本书使用的方法)

联结树的桶消元算法:

}

(3)    图规约算法

(4)    全局联合推理

(5)    组合优化方法 主要与spi法与桶消除法

(6)    证据相关法

(7)    信念传播 belprop_inf_engine

3 近似推理

(1) 随机抽样算法:顺序抽样法,MCMC抽样(吉布斯抽样(Gibbs sampling))

(2) 变分法。

(3) 基于搜索

(4) 仿真

(5) 变换方法,参数近似方法

<二>结构学习 (structure learning)算法 找到和样本数据D匹配度最好的贝叶斯网络结

<2.1>非缺值算法:

<2.1.1>算法类型

1类型一基于依赖性测试的学习       常用的独立性检验的方法有 检验和基于互信息的检验方法  参考自:http://wenku.baidu.com/view/a4d7ba4cf7ec4afe04a1df16.htmlhttp://www.doc88.com/p-91894947868.html

(1)三阶段分析算法(TPDA)具体步骤

         第一阶段:Drafting,计算每对节点间的互信息,建立完整的无向图;

第二阶段: Thickening ,如果节点对不是 d- 分割的话,把这一点对加入到边集中;

第三阶段:Thinning,检察边集中的每个点对,如果两个节点是d-分割的,则移走这条边。

(2)1993年Sprites 等提出的SGS算法是典型的以条件独立性测试确定拓扑结构的算法。

(3)2002年,Cheng将信息论与统计测试相结合,使用相互信息代替了条件独立性测试。经过Drafting、Thickening、Thinning三个步骤,通过计算相互信息量来确定节点间的条件独立性

2基于搜索评分的学习 统计驱动 从所有可能的网络结构空间搜索最佳的贝叶斯网络结构被证明为NP-hard问题,所以一般需要使用启发式算

(1) K2算法

(2) 贪婪搜索GS greedy search

(3) 爬山HC(hill climbing)

3 1与2的混合 稀疏候选算法(sparse candidate) MMHC(max-min hill-climbing)

算法类型另一种分类:

类型:①对候选网络打分的:计分法

     (1)基于描述长度计分公式:2-1-1-3-2

     ②搜索网络空间    可分解度量也可以用来对网络适合数据的程度

     (1)下山搜索(或称贪婪搜索 急速下降法) 从没有边开始改变网络看L(E,B) 的变化  改变分为:增、减、改方向(改变网络要先求cpt再求L(e,b)) 可通过总度量为局部度量的和减少计算

<2.1.2>目标:选择具有最大后验概率的结构。

<2.1.3>具体实现是基于评分函数(scoring function)

1最大参数对数似然函数

2家族ch评分

3 BIC评分(拉普拉斯近似 Laplace approximation的简化)

3 MDL评分 也就是最小描述长度 MDL-贝叶斯网络评分准则对MMHC算法学习效果的影响 .pdf p391

5 AIC评分

6 CVL评分 (即交叉验证)

<2.2>缺值算法(部分与全部缺值全部缺值即隐变量)

<2.2.1>常用算法

    1缺值数据结构学习:Structural EM 简称 SEM (算法使用了bic评分函数 每次迭代先进行数据修补,然后进行参数优化后进行参数与结构优化 最后选择bic评分函数最高的结构)

    2马尔科夫链蒙特卡罗MCMCMarkov Chain Monte Carlolearn_struct_mcmc()算法

<三>参数学习 (Parameter learning)算法 实质上是在已知网络结构的条件下,来学习每个节点的概率分布表。

<3.1>非缺值  参数学习

1最大似然估计 完全基于数据,不需要先验概率 learn_params

2贝叶斯估计 假定在考虑数据之前,网络参数服从某个先验分布。先验的主观概率,它的影响随着数据量的增大而减小 一般假设参数是服从狄利克雷(Dirichlet)贝叶斯方法bayes_update_params()

<3.2>训练的数据有缺值 或为空 参数学习

1缺值数据最大似然估计:EM算法 (迭代算法) EM算法是收敛的。

(1)基于对数据进行修补,使之完整 (E-step)

     (2)基于修补后的完整数据计算的最大似然估计(M-Step)

<3.3>隐结构模型学习 隐变量是取值未被观察到的变量  (Hidden variables and hidden structure learning)

<3.3.1>通过数据分析:

        (1) 隐变量的个数

        (2) 隐结构

        (3) 隐变量的势

        (4) 模型参数

<3.3.2>常用算法

(1)基于评分函数的爬山法

(2)隐变量势学习爬山算法

(3)隐结构学习双重爬山算法

<四>分类 (classification)

<五>贝叶斯网络相关(贝叶斯分类器种类)

动态贝叶斯网络

Naïve Bayesian networks                     朴素贝叶斯网络

NB 

TAN Tree augment Bayesian networks, et al.       学习树扩展贝叶斯网络结构的TANC算法

BAN BN augm ented N aive-Bay TAN 的进一步扩展

GBN   是一种无约束的贝叶斯网络分类器

BAN

Boosting[1-3]是一种有效的分类器组合方法

混合贝叶斯网络:包括连续变量与离散变量。

<六>工具:B-COURSE
<七>写基于MapReduce的贝叶斯网络算法研究论文的 参考文献

<八>关于论文中对推理算法团树传播算法(联结树推理)、马尔科夫蒙特卡洛的 参考文献



 

 

原创粉丝点击