概述

概率在现代机器学习模型中起着重要的作用。然而我们会发现,使用概率分布的图形表示进行分析很有好处。这种概率分布的图形表示被称为概率图模型(probabilistic graphical models)。概率模型的这种图形表示有如下性质:

  • 它们提供了一种简单的方式将概率模型的结构可视化,可以用于设计新的模型。
  • 通过观察图形,我们可以更深刻地认识模型的性质,如条件独立性。
  • 在复杂模型中,复杂的计算可以表示为图的操作。(这些图的操作实际上代表了复杂的数据表达式的推导)

一个图有两部分组成节点(nodes)和连接(links)。其中节点表示模型中的变量,连接表示节点之间的关系。根据连接是否具有方向性可以将概率图模型分为两类:

  1. 贝叶斯网(Bayesian Networks): 连接具有方向,用箭头表示方向,连接的方向也表示了变量之间的条件关系,如A–>B对应条件概率贝叶斯回归预测 python 贝叶斯网络 回归_概率分布。贝叶斯网也称为有向图模型(directed graphical models)。有向图对于表达随机变量之间的因果关系很有用。
  2. 马尔科夫随机场(Markov random fields): 连接无方向性,也称为无向图模型(undirected graphical models)。无向图对于表示随机变量之间的软限制比较有用。

为了求解推断问题,通常比较方便的做法是把有向图和无向图都转化为一个不同的表示形式,被称为因子图(factor graph)。

本文讨论贝叶斯网。

贝叶斯网络是贝叶斯方法的扩展。它描述的是贝叶斯模型,比如贝叶斯线性回归模型,贝叶斯逻辑回归模型。

数学表达式与图的对应

如上文所述,图模型将数学表达式与图对应起来,从而提供了一种简单的方式将概率模型的结构可视化。

在有向图模型中是怎样将复杂的概率表达式和图对应起来的?

直接举例如下:

贝叶斯回归预测 python 贝叶斯网络 回归_有向图_02

根据上图可以直接将所有随机变量的联合概率分布分解为下式的右边,多个因子的乘积。
贝叶斯回归预测 python 贝叶斯网络 回归_有向图_03

具体理论请见PRML 8.1。

对于有贝叶斯回归预测 python 贝叶斯网络 回归_样本集_04个节点的图,这贝叶斯回归预测 python 贝叶斯网络 回归_样本集_04个节点的联合分布可以表示为:
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_06
其中贝叶斯回归预测 python 贝叶斯网络 回归_样本集_07是节点贝叶斯回归预测 python 贝叶斯网络 回归_有向图_08的所有父节点的集合,贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_09

贝叶斯网络的图必须是有向无环图。

贝叶斯回归的图模型

先回顾一下贝叶斯回归。

假设训练集有N个样本,样本集的特征用贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_10表示,贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_11表示第贝叶斯回归预测 python 贝叶斯网络 回归_有向图_12个样本。样本集的label值用贝叶斯回归预测 python 贝叶斯网络 回归_有向图_13表示,贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_14表示第贝叶斯回归预测 python 贝叶斯网络 回归_有向图_12个样本的label值。即 贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_16贝叶斯回归预测 python 贝叶斯网络 回归_样本集_17 ,样本集表示为贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_18 。 基于该数据集训练一个回归模型贝叶斯回归预测 python 贝叶斯网络 回归_样本集_19

线性回归:贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_20

在回归问题中,认为lable值贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_21服从均值为贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_22,方差为贝叶斯回归预测 python 贝叶斯网络 回归_样本集_23的高斯分布。
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_24
贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_25为高斯噪声,反应的是样本集的采样误差即噪声。

贝叶斯学派认为模型中的参数贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_26是一个不确定的值,使用概率分布对其进行建模。此处我们假设贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_27的是服从均值为贝叶斯回归预测 python 贝叶斯网络 回归_样本集_28方差为贝叶斯回归预测 python 贝叶斯网络 回归_有向图_29的高斯分布(也可以进行其他假设,其他情况可参考贝叶斯线性回归与贝叶斯逻辑回归)。
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_30
总结一下上面涉及的符号:

符号

含义

贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_31 or 贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_32

一个样本的特征

贝叶斯回归预测 python 贝叶斯网络 回归_有向图_33

样本集的特征

贝叶斯回归预测 python 贝叶斯网络 回归_有向图_34 or 贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_35

一个样本的label

贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_36

样本集的label

贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_37

模型的参数

贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_38

样本的噪声

贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_39

贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_37所服从分布的参数

贝叶斯网络考虑的主要是随机变量。与之等价的是所有随机变量的联合分布那么在贝叶斯模型中的随机变量有哪些呢?

在模型训练阶段只有贝叶斯回归预测 python 贝叶斯网络 回归_样本集_41贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_42是随机变量, 贝叶斯回归预测 python 贝叶斯网络 回归_有向图_43贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_25贝叶斯回归预测 python 贝叶斯网络 回归_样本集_45被称为deterministic parameters,他们是模型的(超)参数而不是随机变量。

随机变量的贝叶斯网

所有随机变量的联合分布可以表示为:
贝叶斯回归预测 python 贝叶斯网络 回归_有向图_46
注意,每一个样本中的lable 贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_21

贝叶斯回归预测 python 贝叶斯网络 回归_样本集_48

可以看到上图中需要显示重复表示贝叶斯回归预测 python 贝叶斯网络 回归_样本集_49贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_21节点,太复杂了。对于重复的节点可以改成下图的表示方法。使用一个方框(box)表示重复节点,其中右下角的贝叶斯回归预测 python 贝叶斯网络 回归_样本集_49

贝叶斯回归预测 python 贝叶斯网络 回归_有向图_52

增加模型参数

有时候显示的表达出模型的参数,对于问题的分析是有帮助的。包含模型参数的随机变量的联合分布表示如下。
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_53
在图模型中,模型参数表示为实心小圆点。

贝叶斯回归预测 python 贝叶斯网络 回归_有向图_54

observed variables

在模型训练过程中,所有的随机变量 贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_42 对于模型来说都是已知的,即观测到的变量(observed variables)。 相应的,贝叶斯回归预测 python 贝叶斯网络 回归_样本集_41

在贝叶斯网中,观测到的变量使用实心圆圈表示,隐变量使用空心圆圈表示。如下图所示:

贝叶斯回归预测 python 贝叶斯网络 回归_概率分布_57

增加预测变量

我们的最终目标是对新输入的变量进行预测。假设给定一个输如值贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_58,我们想找到以观测数据为条件的对应的贝叶斯回归预测 python 贝叶斯网络 回归_有向图_59的概率分布。描述这个问题的图模型如下图所示:

贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_60

这个模型的所有随机变量的联合分布为:
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_61

总结
  • 使用圆圈表示随机变量;
  • 观测到的变量使用实心圆圈表示,隐变量使用空心圆圈表示;
  • 使用一个方框(box)表示重复节点,其中右下角的贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_62
  • 模型参数表示为实心小圆点,连随机变量的联合分布中是条件变量部分,如贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_63
参数的后验分布

对于训练数据来说,所有随机变量的联合分布表示如下:
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_53
根据贝叶斯公式有参数贝叶斯回归预测 python 贝叶斯网络 回归_样本集_41的后验分布:
贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_66
其中贝叶斯回归预测 python 贝叶斯网络 回归_有向图_13是观察到的变量,贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_68 是一个常数,所以:
贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_69

预测分布

由公式
贝叶斯回归预测 python 贝叶斯网络 回归_样本集_61
对于新数据贝叶斯回归预测 python 贝叶斯网络 回归_有向图_59在给定训练数据集贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_72时的预测分布
贝叶斯回归预测 python 贝叶斯网络 回归_有向图_73
其中贝叶斯回归预测 python 贝叶斯网络 回归_有向图_13是观察到的变量,贝叶斯回归预测 python 贝叶斯网络 回归_贝叶斯回归预测 python_68 是一个常数,所以:
贝叶斯回归预测 python 贝叶斯网络 回归_有向图_76

参考资料

Pattern Recognition and Machine Learning