贝叶斯网络

  • 1. 基本概念
  • 2. 有向分离
  • 3. 贝叶斯网络结构学习
  • 4. 贝叶斯网络参数学习


1. 基本概念

贝叶斯网络(Bayesian network)又称信念网络(belief network),使用**有向无环图(Directed Acyclic Graph)来表示变量间的依赖关系,并使用条件概率表(CPT,Conditional Probability Table)**描述属性的联合概率分布。

贝叶斯网络表示为 贝叶斯网络结构学习python 贝叶斯网络实例_机器学习

  • 贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_02表示结点关系的有向无环图,即贝叶斯网络结构。
  • 贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_03表示每个结点贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_04在它父结点集贝叶斯网络结构学习python 贝叶斯网络实例_结点_05条件下的条件概率,即贝叶斯网络参数。

两个重要条件独立性:

  • 结点与其非后代结点条件独立
  • 给定一个结点的马尔可夫覆盖,这个结点和网络所有其他结点条件独立

特点:

  • 一种不定性因果关联模型
  • 具有强大的不确定性问题处理能力
  • 具有良好的可理解性和逻辑性
  • 结合先验知识,用图形化模型描述数据间的相互关系便于分析预测
  • 能有效进行多元信息融合与表达

e.g

贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_06

  • Difficulty (课程的难度): 取值0(低难度)和1(高难度)
  • Intelligence(智力水平): 取值0(低)和1(高)
  • Grade(学生的上课成绩) : 取值1(好成绩),2(平均成绩)和3(成绩差)
  • SAT (SAT考试成绩): 取0(低分)和1(高分)
  • Letter(完成课程后学生从教授那里得到推荐信的质量) : 取0(不是好信)和1(好信)

图中的边包含变量的依赖关系(箭头的方向表示因果关系)

  • Grade 取决于课程的Difficulty和学生的Intelligence
  • Grade 决定了学生是否从教授那里得到了一封好的Letter
  • 除影响Grade外,学生的Intelligence还影响他们的SAT分数

Grade有两个父节点,条件概率贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_07表示在Difficulty=gSAT=s的条件下,Grade=g的概率是多少。

2. 有向分离

有向分离对应概率论中的条件独立性,目的在于从图的角度寻找结点之间的条件独立性。

三类特殊的结点连接,分别为顺序连接、发散连接、收敛连接。

贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_08


其中结点c分别称为头对尾结点(head-to-tail)、尾对尾结点(tail-to-tail)和头对头结点(head-to-head)。

根据条件独立知识:在顺序连接和发散连接中,

贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_09

对于贝叶斯网络贝叶斯网络结构学习python 贝叶斯网络实例_机器学习贝叶斯网络结构学习python 贝叶斯网络实例_结点_11贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_12贝叶斯网络结构学习python 贝叶斯网络实例_结点_13中任意不相邻的两个结点,贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14表示连接贝叶斯网络结构学习python 贝叶斯网络实例_结点_11贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_12路径上的结点集,并且不不包含贝叶斯网络结构学习python 贝叶斯网络实例_结点_11贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_12贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_19是连接贝叶斯网络结构学习python 贝叶斯网络实例_结点_11贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_12的任意路径。如果贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14满足以下条件之一,则称**贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_19是关于贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14的一条阻断路径**,贝叶斯网络结构学习python 贝叶斯网络实例_结点_11贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_12贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14有向分离,记作贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_28

  • 贝叶斯网络结构学习python 贝叶斯网络实例_结点_29包含贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_30中不同于贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_31贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_32的某一头对尾结点。
  • 贝叶斯网络结构学习python 贝叶斯网络实例_结点_29包含贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_30中不同于贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_31贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_32的某一尾对尾结点。
  • 贝叶斯网络结构学习python 贝叶斯网络实例_结点_29不包含贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_30中不同于贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_31贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_32的某一头对头结点及其子孙结点。

结点集之间的有向分离
假设贝叶斯网络结构学习python 贝叶斯网络实例_机器学习_41是在贝叶斯网络结构学习python 贝叶斯网络实例_结点_13中的三个互补相交的结点集,对于任意的结点贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_43和任意贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_44,若贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_45贝叶斯网络结构学习python 贝叶斯网络实例_机器学习_46贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14有向分离,则称贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_48贝叶斯网络结构学习python 贝叶斯网络实例_结点_49贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14有向分离,记作贝叶斯网络结构学习python 贝叶斯网络实例_结点_51

定理:判定贝叶斯网络结构学习python 贝叶斯网络实例_结点_13中结点集贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_53贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_54是否被贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_14有向分离 等价于 贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络_53贝叶斯网络结构学习python 贝叶斯网络实例_贝叶斯网络结构学习python_54是否在新的有向无环图贝叶斯网络结构学习python 贝叶斯网络实例_条件概率_58无连接路径。
通过定理,可以将有向图简化为非连接图,这样在线性时间内判断是否满足有向分离,从而降低分析的复杂度。

对于贝叶斯网络贝叶斯网络结构学习python 贝叶斯网络实例_机器学习

  • 贝叶斯网络结构学习python 贝叶斯网络实例_结点_60贝叶斯网络结构学习python 贝叶斯网络实例_结点_61贝叶斯网络结构学习python 贝叶斯网络实例_结点_29有向分离,则对于任意网络参数贝叶斯网络结构学习python 贝叶斯网络实例_机器学习_63贝叶斯网络结构学习python 贝叶斯网络实例_结点_60贝叶斯网络结构学习python 贝叶斯网络实例_结点_61关于贝叶斯网络结构学习python 贝叶斯网络实例_结点_29条件独立
  • 贝叶斯网络结构学习python 贝叶斯网络实例_结点_60贝叶斯网络结构学习python 贝叶斯网络实例_结点_61不被贝叶斯网络结构学习python 贝叶斯网络实例_结点_29有向分离,则贝叶斯网络结构学习python 贝叶斯网络实例_结点_60贝叶斯网络结构学习python 贝叶斯网络实例_结点_61关于贝叶斯网络结构学习python 贝叶斯网络实例_结点_29条件独立取决于网络参数贝叶斯网络结构学习python 贝叶斯网络实例_机器学习_63

3. 贝叶斯网络结构学习

从给定的数据集中学习出贝叶斯网络结构,即各结点之间的依赖关系,只有确定了结构才能学习网络参数,即表示各结点之间依赖性的条件概率。

根据训练数据是否存在缺失,网络结构学习分为

  • 完整数据结构学习
  • 基于搜索评分的方法:贝叶斯网络结构学习问题看成是优化问题,通过给定结构的评分函数(基于贝叶斯评分/基于信息论评分),利用搜索算法(K2/爬山/GES/基于进化计算),寻找评分最优的网络结构。
  • 基于约束的方法:通过统计独立性测试来学习结点间的独立性和相关性,并根据独立性或相关性构建出相应的有向无环图结构。

基于信息论的评分函数:将学习问题看做一个数据压缩任务,使用最小描述长度(MDL,Minimum Description Length)为优化目标。编码长度包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。

  • 缺失数据结构学习
  • 修复数据集的方法
  • 近似计算的方法

4. 贝叶斯网络参数学习

贝叶斯网络参数学习(参数估计):在给定网络结构的基础上,从训练数据中学习得到结点的条件概率分布的过程。

贝叶斯网络主要是处理离散数据,因此在参数学习的过程中,通常假设网络中变量的状态是离散的或者呈现高斯分布。实际应用中,结点变量一般是不满足高斯分布的,通常可以采用等频率或者等区间的离散型方法对训练数据进行离散化。

训练数据中所有变量都可观测:

  • 贝叶斯估计(BE,Bayesian Estimation)
  • 最大似然估计(MLE,Maximum Likelihood Estimation):实例数据完备的情况下的学习方法,依据参数与数据集的似然程度来选择参数。

某些结点变量的状态未必能观测

  • 近似方法:Monte-Carlo方法/高斯毕竟/Laplace近似/EM算法求极大似然/MAP