王一依 2019302130032
假设我们的观测对象是高维随机变量$(x_1,x_2,...,x_p)$,对于这样的一个高维随机变量而言,在实际操作过程中,我们往往需要知道的是它的边缘概率$p(x_i)$,以及条件概率$p(x_j|x_i)$。
首先,我们来看下对于高维随机变量(下面以二维为例),两个基本运算法则:
加法法则:$p(x_1)=\int p(x_1,x_2)dx_2$
乘法法则:$p(x_1,x_2)=p(x_1|x_2)p(x_2)=p(x_2|x_1)p(x_1)$
根据两个基本法则可以推出两个常用的法则:
链式法则:$p(x_1,x_2,...,x_p)=p(x_1)\prod_{a}^{b}p(x_i|x_1,x_2,...x_{i-1})$
贝叶斯法则:$p(x_2|x_1)=\frac{p(x_2,x_1)}{\int p(x_2,x_1)x_2}=\frac{p(x_1|x_2)p(x_2)}{\int p(x_2,x_1)x_2}=\frac{p(x_1|x_2)p(x_2)}{\int p(x_1|x_2)p(x_2)x_2}$
概率图模型(Probabilistic Graphical Model,PGM),简称图模型(Graphical Model,GM),是指一种用图结构来描述多元随机变量之间条件独立性的概率模型,从而给研究高维空间的概率模型带来了很大的便捷性。
概率图模型的表示是指用图结构来描述变量之间的依赖关系,研究如何利用概率网络中的独立性来简化联合概率分布的方法表示。常见的概率图模型可以分为两类:有向图模型和无向图模型。
有向图模型使用**有向非循环图(Directed Acyclic Graph,DAG)**来描述变量之间的关系。如果两个节点之间有连边,表示对应的两个变量为因果关系,即不存在其他变量使得这两个节点对应的变量条件独立。
有向图又称贝叶斯网络,从模型的条件独立性依赖的个数上看,可以分为单一模型和混合模型,单一模型条件依赖的集合就是单个元素,而混合模型条件依赖的集合则是多个元素。如果给模型加上时间概念,则可以有马尔科夫链和高斯过程等。从空间上,如果随机变量是连续的,则有如高斯贝叶斯网络这样的模型。混合模型加上时间序列,则有隐马尔科夫模型、卡尔曼滤波、粒子滤波等模型。
无向图模型使用无向图(Undirected Graph)来描述变量之间的关系。每条边代表两个变量之间有概率依赖关系,但是并不一定是因果关系。
下图给出了两个代表性图模型(有向图和无向图)的示例,分别表示了四个变量${X_1,X_2,X_3,X_4}$之间的依赖关系。图中带阴影的节点表示可观测到的变量,不带阴影的节点表示隐变量,连边表示两变量间的条件依赖关系。
有向图模型(Directed Graphical Model),也称为贝叶斯网络(Bayesian Network)或信念网络(Belief Network,BN),是一类用有向图来描述随机向量概率分布的模型。常见的有向图模型:很多经典的机器学习模型可以使用有向图模型来描述,比如朴素贝叶斯分类器、隐马尔可夫模型、深度信念网络等。
贝叶斯网络:对于一个$K$维随机向量$X$和一个有
贝叶斯网络模型的概率分解,在贝叶斯网络中,变量间存在如下四种关系:
(1)间接因果关系,即图(a):当$X_2$已知时,$X_1$和$X_3$为条件独立,即$X_1\bot X_3|X_2$。
(2)间接果因关系,即图(b):当$X_2$已知时,$X_1$和$X_3$为条件独立,即$X_1\bot X_3|X_2$。
(3)共因关系,即图(c):当$X_2$未知时,$X_1$和$X_3$是不独立的;当$X_2$已知时,$X_1$和$X_3$条件独立,即$X_1\bot X_3|X_2$。
(4)共果关系,即图(d):当
实例:经典的机器学习模型——朴素贝叶斯分类器
朴素贝叶斯(Naive Bayes,NB)分类器是一类简单的概率分类器,在强(朴素)独立性假设的条件下运用贝叶斯公式来计算每个类别的条件概率。
给定一个有$M$维特征的样本$x$和类别$y$,类别$y$的条件概率为 $$ p(y|x;\theta)=\frac{p(x_1,...,x_M|y;\theta)p(y;\theta)}{p(x_1,...,x_M)}\\propto p(x_1,...,x_M|y;\theta)p(y;\theta) $$ 其中$\theta$为概率分布的参数。
在朴素贝叶斯分类器中,假设在给定$Y$的情况下,$X_M$之间是条件独立的。下图给出了朴素贝叶斯分类器的图模型表示。
条件概率分布$p(y|x)$可以分解为 $$ p(y|x;\theta)\propto p(y|\theta_c)\prod_{m=1}^{M}p(x_m|y;\theta_m) $$ 其中$\theta_c$是$y$的先验分布概率的参数,$\theta_m$是条件概率分布$p(x_m|y;\theta_m)$的参数。若$x_m$为连续值,$p(x_m|y;\theta_m)$可以用高斯分布建模;若$x_m$为连续值,$p(x_m|y;\theta_m)$可以用多项分布建模。
虽然朴素贝叶斯分类器的条件独立性假设太强,但是在实际应用中,朴素贝叶斯分类器在很多任务上也能得到很好的结果,并且模型简单,可以有效防止过拟合。
无向图模型,也称为马尔可夫随机场(Markov Random Field,MRF)或马尔可夫网络(Markov Network),是一类用无向图来描述一组具有局部马尔可夫性质的随机向量$X$的联合概率分布的模型。常见的无向图模型有:最大熵模型、条件随机场、玻尔兹曼机、受限玻尔兹曼机等。
马尔可夫随机场:对于一个随机向量
有向图和无向图可以相互转换,但将无向图转为有向图通常比较困难。在实际应用中,将有向图转为无向图更加重要,这样可以利用无向图上的精确推断算法,比如联合树算法。
无向图模型可以表示有向图模型无法表示的一些依赖关系,比如循环依赖; 但它不能表示有向图模型能够表示的某些关系,比如因果关系。
以下图(a)中的有向图为例,其联合概率可以分解为 $$ p(x)=p(x_1)p(x_2)p(x_3)p(x_4|x_1,x_2,x_3) $$ 其中$p(x_4|x_1,x_2,x_3)$和四个变量都相关。如果要转化为无向图,需要将这四个变量都归属于一个团中,因此,需要将$x_4$的三个父节点之间都加上连边,如下图(b)所示。这个过程称为道德化。转换后的无向图称为道德图。在道德化的过程中,原来有向图的一些独立性会丢失。
图模型的学习可以分为两部分:一是网络结构学习,即寻找最优的网络结构;二是网络参数估计,即已知网络结构,估计每个条件概率分布的参数。
网络结构学习比较困难,一般是由领域专家来构建。所以只讨论在给定网络结构条件下的参数估计问题。图模型的参数估计问题又分为不包含隐变量时的参数估计问题和包含隐变量时的参数估计问题。
不含隐变量的参数估计:如果图模型中不包含隐变量,即所有变量都是可观测的,那么网络参数一般可以直接通过最大似然来进行估计。
含隐变量的参数估计:如果图模型中包含隐变量,即有部分变量是不可观测的,就需要用EM算法进行参数估计。
精确推断包括(变量消除法,信念传播算法),近似推断包括(环路信念传播,变分推断,采样法)
在已知部分变量时算其它变量的后验概率分布。在图模型中,推断(Inference)是指在观测到部分变量$e=\left{e_1,e_2,...e_M\right}$时,计算其他变量的某个子集
精确推断算法是指可以计算出条件概率$p(q|e)$的精确解的算法。在实际应用中,精确推断一般用于结构比较简单的推断问题。当图模型结构比较复杂时,精确推断的计算量会比较大。此外,如果图模型中的变量时连续的,并且其积分函数没有闭式解,那么也无法使用精确推断。因此,在很多情况下也常常采用近似的方法来进行推断。
下图是一个简单的贝叶斯网络的例子。$C$表示通常的感冒,$R$表示流鼻涕,$H$表示头疼,$B$表示接触过有禽流感的家禽,$A$是禽流感,$N$是一般抗生素无效。下面代码构造并生成此例子的贝叶斯网络图。
library(Rgraphviz)
bl.av<-model2network('[C][B][A|B][R|C:A][H|C:A][N|A]')
graphviz.plot(bl.av)
定义本例中贝叶斯网络的概率。
C<-array(dimnames = list(C=ny),dim=2,c(0.90,0.10))
B<-array(dimnames = list(B=ny),dim=2,c(0.999,0.001))
A<-array(dimnames = list(A=ny,B=ny),dim=c(2,2),c(1,0,0.99,0.01))
R<-array(dimnames = list(R=ny,A=ny,C=ny),dim=c(2,2,2),c(0.95,0.05,0.5,0.5,0.1,0.9,0.02,0.98))
H<-array(dimnames = list(H=ny,A=ny,C=ny),dim=c(2,2,2),c(0.94,0.06,0.03,0.97,0.4,0.6,0.01,0.99))
N<-array(dimnames = list(N=ny,A=ny),dim=c(2,2),c(0.7,0.3,0.001,0.999))
cpts<-list(C=C,B=B,A=A,R=R,H=H,N=N)
bn.av.fit=custom.fit(bl.av,cpts)
bn.av.fit
输出三个节点的概率和条件概率。
B
A no yes
no 1.00 0.99
yes 0.00 0.01
Parameters of node B (multinomial distribution)
Conditional probability table:
B
no yes
0.999 0.001
Parameters of node C (multinomial distribution)
Conditional probability table:
C
no yes
0.9 0.1
Parameters of node H (multinomial distribution)
Conditional probability table:
, , C = no
A
H no yes
no 0.94 0.03
yes 0.06 0.97
, , C = yes
A
H no yes
no 0.40 0.01
yes 0.60 0.99
Parameters of node N (multinomial distribution)
Conditional probability table:
A
N no yes
no 0.700 0.001
yes 0.300 0.999
Parameters of node R (multinomial distribution)
Conditional probability table:
, , C = no
A
R no yes
no 0.95 0.50
yes 0.05 0.50
, , C = yes
A
R no yes
no 0.10 0.02
yes 0.90 0.98
生成两个节点的条件概率图如下。







