【概率图模型】从贝叶斯网络到条件随机场

贝叶斯网络

定义:
  贝叶斯网络是一个有向无环图DirectedAcyclicGraphDAG(Directed Acyclic Graph,DAG)模型,有代表变量节点及连接这些节点的有向边构成。节点代表随机变量,节点间的有向边代表了节点间的相互关系(有父节点指向其子节点),用条件概率表达变量间的依赖关系,没有父节点的用先验概率进行信息表达。
在这里插入图片描述
  令GG为定义在{X1,X2,...,Xn}\{X_1,X_2,...,X_n\}上的一个贝叶斯网络,其联合概率分布可以表示为各个节点的条件概率分布的乘积:
P(X)=i=1npi(XiParG(Xi)) P(X) = \prod \limits_{i=1}^{n}p_i(X_i|Par_G(X_i))
  其中,ParG(Xi)Par_G(X_i)为节点XiX_i的父节点,pi(XiParG(Xi)p_i(X_i|Par_G(X_i)为节点条件概率。

结论:
  贝叶斯网络的联合概率分布可以表示为:局部 条件概率 连乘积的形式,(对比马尔可夫模型和因子模型,贝叶斯网络条件概率的值因为是概率,而不是势函数的大小值,所以不用归一化)。
在这里插入图片描述
  如上图,D代表试卷难度,I代表智商,G代表考试成绩,S代表高考成绩,L代表是否给该生推荐信。
所以上面这个例子的联合概率分布就可以表示为:
P(X)=P(D,I,G,S,L)=P(D)P(I)P(GI,D)P(SI)P(LG) P(X)=P(D,I,G,S,L) = P(D)·P(I)·P(G|I,D)·P(S|I)·P(L|G)
所以联合概率分布的其中的一项概率可以计算表示为:
P(d1,i0,g1,s1,l1)=P(d1)P(i0)P(g1I0,d1)P(s1i0)P(l0g1)=0.4×0.7×0.05×0.1=0.00007 P(d^1,i^0,g^1,s^1,l^1)=P(d^1)P(i^0)P(g^1|I^0,d^1)P(s^1|i^0)P(l^0|g^1)=0.4×0.7×0.05×0.1=0.00007
而所有的联合概率分布的项目和为1,就是概率和为1。

马尔可夫随机场:

定义:
  马尔可夫随机场(Markov Random Fields,MRF)的联合概率分布可以表示为一下分解形式
P(x1,x2,...,xn)=1ZΦi=1kϕi(Di) P(x_1,x_2,...,x_n)=\frac{1}{Z_\Phi}\prod \limits_{i=1}^{k}\phi_i(D_i)
  其中,ZΦZ_\Phi为联合概率分布的归一化因子,通常称之为配分函数(partition function),DiD_i是随机变量的集合,因子ϕi(Di)\phi_i(D_i)是从随机变量集合到实数域的一个映射,称之为势函数或者因子
Φ=(ϕ1(D1),ϕ2(D2),...ϕk(Dk)) \Phi = (\phi_1(D_1),\phi_2(D_2),...\phi_k(D_k))
ZΦ=i=1kϕi(Di) Z_\Phi=\sum \limits_{} ^{}\prod \limits_{i=1}^{k}\phi_i(D_i)
  联合概率分布可以表示为:局部势函数的连乘积的形式,并归一,局部势函数可以分为:点势函数与边势函数
在这里插入图片描述
所以
P(X)=P(A,B,C,D)=1ZΦi=1kϕi(Di)=1ZΦϕ1(A,B)ϕ1(B,C)ϕ1(C,D)ϕ1(D,A) P(X)=P(A,B,C,D) =\frac{1}{Z_\Phi}\prod \limits_{i=1}^{k}\phi_i(D_i)=\frac{1}{Z_\Phi}\phi_1(A,B)\phi_1(B,C)\phi_1(C,D)\phi_1(D,A)
  其中ϕ1(A,B)\phi_1(A,B)表示A,B的边对应的 边势函数,所以ϕ1(A,B)\phi_1(A,B)ϕ2(B,C)\phi_2(B,C)ϕ3(C,D)\phi_3(C,D)ϕ4(D,A)\phi_4(D,A)具体可以表示为下面的形式,其中分别是:边左取值 、边右取值、 势函数值:

[a0b030a0b15a1b01a1b110][b0c030b0c15b1c01b1c110][c0d030c0d15c1d01c1d110][d0a030d0a15d1a01d1a110]\left[ \begin{array}{ccc} a^0 & b^0 & 30\\ a^0 & b^1 & 5\\ a^1 & b^0 & 1\\ a^1 & b^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} b^0 & c^0 & 30\\ b^0 & c^1 & 5\\ b^1 & c^0 & 1\\ b^1 & c^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} c^0 & d^0 & 30\\ c^0 & d^1 & 5\\ c^1 & d^0 & 1\\ c^1 & d^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} d^0 & a^0 & 30\\ d^0 & a^1 & 5\\ d^1 & a^0 & 1\\ d^1 & a^1 & 10\\ \end{array} \right]

所以变量的取值、因子乘积、归一化概率就可以表示为:

[a0b0c0d03000000.04a0b0c0d13000000.04a0b0c1d03000000.04a0b0c1d1300.0000041a0b1c0d05000.000069a0b1c0d15000.000069a0b1c1d050000000.69a0b1c1d15000.000069a1b0c0d01000.000014a1b0c0d110000000.14a1b0c1d01000.000014a1b0c1d11000.000014a1b1c0d0100.0000014a1b1c0d11000000.014a1b1c1d01000000.014a1b1c1d11000000.014]\left[ \begin{array}{ccc} 变 & 量 &取&值& 因子乘积&归一化概率\\ a^0 & b^0 &c^0&d^0& 300000&0.04\\ a^0 & b^0 &c^0&d^1& 300000&0.04\\ a^0 & b^0 &c^1&d^0& 300000&0.04\\ a^0 & b^0 &c^1&d^1& 30&0.0000041\\ a^0 & b^1 &c^0&d^0& 500&0.000069\\ a^0 & b^1 &c^0&d^1& 500&0.000069\\ a^0 & b^1 &c^1&d^0& 5000000&0.69\\ a^0 & b^1 &c^1&d^1& 500&0.000069\\ a^1 & b^0 &c^0&d^0& 100&0.000014\\ a^1 & b^0 &c^0&d^1& 1000000&0.14\\ a^1 & b^0 &c^1&d^0& 100&0.000014\\ a^1 & b^0 &c^1&d^1& 100&0.000014\\ a^1 & b^1 &c^0&d^0& 10&0.0000014\\ a^1 & b^1 &c^0&d^1& 100000&0.014\\ a^1 & b^1 &c^1&d^0& 100000&0.014\\ a^1 & b^1 &c^1&d^1& 100000&0.014\\ \end{array} \right]

因子乘积的和便是ZΦZ_\Phi,上面的每一行,都是概率分布函数的其中一项。
其中这个图只定义了A,B,C,D之间边的关系,没有定义节点变化的关系,所以可以在原有的式子基础上加上点对应的势函数,称之为 点势函数,加上点势函数后,这样联合概率分布就可以表示为:
p(X)=1ZΦpϕp(xp)p,qϕpq(xp,xq) p(X)=\frac{1}{Z_\Phi}\prod \limits_{p}^{}\phi_p(x_p)\prod \limits_{p,q}^{}\phi_{pq}(x_p,x_q)
  可以理解为A点取1,B点取1这个有一个概率,而A点取1或者0也有概率。
  势函数也称为因子,表示为多个点的取值限制的函数映射,如点A有两个取值0,1,他的势函数的取值可以是5,10,如点A,B的边,其中B的取值也是0,1,则边的势函数就有四个取值
每个取值对应势函数的一个数值,虽然这些数值不是概率,而且加在一起不是1,但是取值的大小可以代表一种概率发生的大小。

因子图:

定义:
  将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图。
  所谓factor graph(因子图),就是对函数因子分解的表示图,一种是变量节点,代表全局多元函数中的变量,一种是因子节点,代表因式分解中的局部函数。我们知道,一个全局函数能够分解为多个局部函数的积,因式分解就行了,这些局部函数和对应的变量就能体现在因子图上。在概率论及其应用中, 因子图是一个在贝叶斯推理中得到广泛应用的模型。
  因子图是概率图的一种,概率图有很多种,最常见的就是贝叶斯网络和马尔可夫随机场,在概率图中,求某个变量的边缘分布是常见的问题,这问题有很多求解方法,其中之一就是可以把贝叶斯网络和马尔可夫随机场转换成因子图,然后用sum-product算法求解。基于因子图可以用sum-product算法可以高效的求各个变量的边缘分布。

根据贝叶斯上面的例子,可以转换成因子图的形式,如下:
在这里插入图片描述
其中IDGSLI、D、G、S、L分别表示的是变量节点,而fIf_IfDf_DfGf_GfSf_SfLf_L分别表示因子节点,也就是局部函数, 则
所以:
p(I,D,G,S,L)=fI(I)fD(D)fG(G,I,D)fS(L,G)fL(S,I) p(I,D,G,S,L) = f_I(I)f_D(D)f_G(G,I,D)f_S(L,G)f_L(S,I)
  其中上面是贝叶斯网络转化过来的,所以不用归一化,函数值本身就是代表的概率,
所以因子图的联合概率通用表示为:
p(X)=1Zpϕp(Xp) p(X)=\frac{1}{Z}\prod \limits_{p}^{}\phi_p(X_p)

理解:联合概率分布可以表示为:局部势函数的连乘积的形式,并归一。

马尔可夫性质

定义:
  马尔可夫性质(英语:Markov property)是概率论中的一个概念,当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。

  • 具有马尔可夫性质随机过程 称之为 马尔可夫过程
  • 时间和状态都是离散马尔可夫过程 称之为 马尔可夫链

马尔可夫链:

定义:
  马尔可夫链又称离散时间马尔可夫链(discrete-time Markov chain,DTMC),为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关,这种特定类型的“无记忆性”称作马尔可夫性质。
在这里插入图片描述
  在这个马尔可夫链中,四个圈表示四个状态,每条边表示一个可能的状态转换,边上的权值是转移概率。
  下一刻状态如果只由当前状态决定,就叫一阶马尔可夫链,如果由当前和前一刻,那就叫二阶,同理。所以有m阶马尔可夫链。

隐马尔可夫模型:

定义:
  隐马尔可夫模型(Hidden Markov Model,HMM)是用来描述一个含有隐含未知参数的马尔可夫过程,是马尔可夫链的一种,HMM是关于时序的概率模型,是基于联合概率建模的生成式模型,描述一个隐藏的含有未知参数的马尔可夫链随机生成不可观测的状态随机序列,然后基于此再生成可观测随机序列的过程。不可观测的状态随机序列被称为状态序列(State Sequence),可观测随机序列被称为观测序列(Observation Sequence)。隐马尔可夫模型要求状态序列是离散的,观测序列可以是离散的,也可以是非离散的。
  在正常的马尔可夫模型中,状态对于观测者来说是可见的,这样状态的转移概率便是全部参数,而在隐马尔可夫模型中,状态并不是直接可见的,但是受状态影响的某些变量则是可见的,每一个状态在可见变量上都有一个概率分布,因此输出的可见状态序列能够透露出状态序列的信息。
  在这里插入图片描述
  隐含马尔可夫链是马尔可夫链的一个扩展:任一时刻 tt 的状态StS_t是不可见的。所以观察者没法通过观察到一个状态序列S1,S2,S3,,STS_1,S_2,S_3,…,S_T来推测转移概率等参数。但是隐含马尔可夫模型在每个时刻 tt 会输出一个OtO_t,而且OtO_tStS_t相关且仅和StS_t相关。这称为 独立输出假设。隐含马尔可夫模型的结构如上图,其中隐含的状态S1,S2,S3,S_1,S_2,S_3,…是一个典型的马尔可夫链。鲍姆把这种模型称为“隐含”马尔可夫模型。
  
在这里插入图片描述
其联合概率分布可以表示为:
p(y,x)=t=1Tp(ytyt1)p(xtyt) p(y,x) = \prod \limits_{t=1}^Tp(y_t|y_{t-1})p(x_t|y_t)

与马尔可夫随机场的区别:
  马尔科夫随机场是指在一堆数据点(比如图像矩阵网点)中,每个点的取值只与其邻域(记得叫clique)有关系,而于更远的点无关,这种概率模型和马尔科夫链很像,是对复杂现象的简化,其实质是某种图模型,两个点距离越近,关系越密切。
  隐马尔科夫模型是指模型的真实参数是个马尔科夫链,但是这个链是隐藏在表现型下面不可见的,链中元素一旦确定,会显示出表现型这么一种模型,模型通过表现型估计隐藏参数

条件随机场:

定义:
  条件随机场(Conditional Random Fields)为给定一组输入随机变量条件下另外一组输出随机变量的条件概率分布模型,是基于条件概率建模的判别式模型。
在这里插入图片描述
其条件概率分布可以表示为:
P(YX)=1Z(X)P(X,Y) P(Y|X) = \frac{1}{Z(X)}P'(X,Y)
P(X,Y)=i=1ϕi(Di) P'(X,Y) = \prod \limits_{i=1}\phi_i(D_i)
Z(X)=YP(X,Y) Z(X) = \sum \limits_YP'(X,Y)
  其中,X为已知输入随机变量,Y为输出随机变量
  总把HMM和CRF进行比较,主要是因为CRF和HMM都利用了图的知识,但是CRF利用的是马尔科夫随机场(无向图),而HMM的基础是贝叶斯网络(有向图)。而且CRF也有:概率计算问题、学习问题和预测问题。大致计算方法和HMM类似,只不过不需要EM算法进行学习问题。

延伸:生成模型与判别模型的区别

生成模型:对联合概率建模
判别模型:对条件概率建模
这时候有一个问题,既然是要预测结果,肯定是有一部分知道,另外一部分需要预测,这也就是说,我们求的是条件概率才对呀?没错,其实生成模型建模的是联合概率分布,但是最终求的结果还是个条件概率的结果。
假设有如下若干样本x,y(x,y):
(x,y){(2,1),(2,1),(3,1),(3,1),(3,1)} (x,y) \in \{(2,-1),(2,-1),(3,-1),(3,1),(3,1)\}
求:当 x=3x=3 时,y=y=?
解:

  1. 生成模型的方式进行解题,此时应该对p(x,y)p(x, y)进行建模,则:
p(x,y)p(x,y) y=1y=-1 y=1y=1
x=2x=2 2/52/5 00
x=3x=3 1/51/5 2/52/5

所以:当x=3x=3时,p(y=1)p(y=-1)p(y=1)p(y=1)的概率分别为:
p(y=1x=3)=p(x=3,y=1)p(x=3)=1535=13 p(y=-1|x=3)= \frac{p(x=3,y=-1)}{p(x=3)}=\frac{\frac{1}{5}}{\frac{3}{5}}=\frac{1}{3}
p(y=1x=3)=p(x=3,y=1)p(x=3)=2535=23 p(y=1|x=3)= \frac{p(x=3,y=1)}{p(x=3)}=\frac{\frac{2}{5}}{\frac{3}{5}}=\frac{2}{3}
由此可以看出,虽然生成模型是对联合概率进行建模,但是最终还是要算出条件概率来得出结果的,所以说通过学习先验分布来推导后验分布而进行分类,这个条件概率是根据x,y(x,y)联合概率与 xx 的边缘概率计算出来的,有了联合概率分布,边缘概率也可以算得出来了,所以,最终是可以算出条件概率这个结果的,如果有几分类,就会有几个后验概率分布,这几个后验概率分布都是条件概率分布了,所以就有几个模型。
2. 判别式模型的方式进行解题,此时应该对 p(yx)p(y|x) 进行建模,则:

p(yx)p(y\mid x) y=1y=-1 y=1y=1
x=2x=2 11 00
x=3x=3 1/31/3 2/32/3

我们可以看出,判别是模型是直接对p(y|x)进行建模的,也就是,直接学习后验概率分布,对后验概率进行建模,所以这样的话,只需要一个模型就可以了,输入时一系列的已知参数,输出的结果就是我们要的条件概率

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章