从零开始-Machine Learning学习笔记(30)-概率图模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kabuto_hui/article/details/84575725


概率模型:(probabilistic model)提供了一种描述框架,将学习任务归结于计算变量的概率分布。
生成式模型:对联合概率建模;
判别式模型:对条件概率建模。
概率图模型:(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即"变量关系图"根据边的性质不间,概率图模型可大致分为两类:
第一类是使用 有向无环图表示变量间的依赖关系,称为有向图模型或 贝叶斯网(Bayesian network);
第二类是使用 无向图表示变量间的相关关系,称为无向图模型或 马尔可夫网(Markov network)。

1. 隐马尔可夫模型(Hidden Markov Model,HMM)

  隐马尔可夫模型是结构最简单的动态贝叶斯网,一种著名的有向图模型

其中 y i y_i 称为第i时刻的状态,也称为隐变量; x i x_i 是观测变量。在任意时刻, x t x_t y t y_t 确定, y t y_t y t 1 y_{t-1} 确定,与其他时刻的状态无关。
基于上述的情况,状态变量y与观测变量x的联合概率分布可以写为:
P ( x 1 , y 1 , . . . , x n , y n ) = P ( y 1 ) P ( x 1 y 1 ) i = 2 n P ( y i y i 1 ) P ( x i y i ) P(x_1,y_1,...,x_n,y_n) = P(y_1)P(x_1|y_1)\prod_{i=2}^{n}P(y_i|y_i-1)P(x_i|y_i)
几个重要的概率:
状态转移概率: 表示在任意时刻t,若状态为 s i s_i ,则在下一时刻状态为 s j s_j 的概率
a i j = P ( y t + 1 = s j y t = s i ) ,     1 i , j N a_{ij}=P(y_{t+1}=s_j|y_t=s_i), \ \ \ 1 \leq i,j \leq N
输出观测概率: 表示在任意时刻t,若状态为 s i s_i ,则观测值 o j o_j 被获取的概率
b i j = P ( x t = o j y t = s i )     1 i N , 1 j M b_{ij} = P(x_t=o_j|y_t=s_i) \ \ \ 1 \leq i \leq N,1 \leq j \leq M
初始状态概率: 表示模型的初始状态为 s i s_i 的概率:
π i = P ( y 1 = s i )     1 i N \pi_i=P(y_1=s_i) \ \ \ 1 \leq i \leq N
通过指定状态空间Y,观测空间X,及 a i j , b i j , π i a_{ij}, b_{ij}, \pi_i 就可以确定一个隐马尔科夫模型:
[1]:设置t=1,并根据初始状态概率 π \pi 选择初始状态 y 1 y_1 ;
[2]:根据状态 y t y_t 和输出观测概率B选择观测变量的取值 x t x_t ;
[3]:根据状态 y t y_t 和状态转移矩阵A转移状态模型,即确定 y t + 1 y_{t+1} ;
[4]:若t<n,设置t=t+1,并转移到[2],否则停止。

  隐马尔科夫主要关注的三个基本问题:
1.给定[A,B,π],计算产生观测序列 x = { x 1 , x 2 , . . . , x n } x=\{x_1,x_2,...,x_n\} : 评估模型与序列间的匹配关系
2.给定[A,B,π]和观测序列 x = { x 1 , x 2 , . . . , x n } x=\{x_1,x_2,...,x_n\} ,推断出状态序列 y = { y 1 , y 2 , . . . , y n } y=\{y_1,y_2,...,y_n\} : 根据观测序列推断隐藏的模型状态
3.给定观测序列 x = { x 1 , x 2 , . . . , x n } x=\{x_1,x_2,...,x_n\} ,计算[A,B,π]使得产生x的概率最大: 如何训练模型以更好的描述观测数据。

2. 马尔科夫随机场(Markov Random Field, MRF)

  马尔科夫随机场是典型的马尔科夫网,是一种典型的无向图模型每个节点代表一个或一组变量,边代表变量间的依赖关系在图中有两个概念:
:图中节点的某一子集中任意两点间都连接,叫“团”;
极大团:加入任意另外的节点都不能成为团的团叫做“极大团”。

则该图的联合概率由极大团定义:
P ( x ) = 1 Z Q C ψ Q ( x Q ) P(x) = \frac{1}{Z}\prod_{Q∈C}\psi_Q(x_Q)
其中C为所有团构成的集合;Z是精确因子(精确计算很困难,很多任务都不需要获得Z的精确值); ψ Q \psi_Q 为团Q对应的势函数,为满足非负性,指数函数常被用于定义势函数:
ψ Q ( x Q ) = e H Q ( x Q ) H Q ( x Q ) = u , v Q , u v α u v x u x v + v Q β v x v \psi_Q(x_Q) = e^{-H_Q(x_Q)} \\ H_Q(x_Q) = \sum_{u,v∈Q,u \neq v}\alpha_{uv}x_ux_v+\sum_{v∈Q}\beta_vx_v
其中 a u v β v a_{uv}和\beta_v 是参数,第一项考虑每对节点的关系,第二项只考虑单节点。

  如果从节节点集A中的节点到节点集B中的节点都必须经过节点集C中的节点,则称节点集A和B被C分离,C称为分离集。于是有以下的几个概念:
全局马尔科夫性: 给定两个变量子集的分离集,则这两个变量子集条件独立。
局部马尔科夫性: 给定某变量的邻接变量,则该变量条件独立于其他变量。
成对马尔科夫性: 给定所有其他变量,两个非邻接变量条件独立。

3. 条件随机场(Conditional Random Field, CRF)

  条件随机场是一种判别式无向图模型,即对条件概率进行建模。如果 x = { x 1 , x 2 , . . . , x n } x=\{x_1,x_2,...,x_n\} 是观测序列, y = { y 1 , y 2 , . . . , y n } y=\{y_1,y_2,...,y_n\} 是状态序列,条件随机场就是构建条件概率模型 P ( y x ) P(y|x)
  令 G = ( V E ) G = (V,E) 表示结点与标记变量y中元素一一对应的无向图, y v y_v 表示与结点v对应的标记变量,n(v)表示结点v的邻接结点,图G的每个变量 y v y_v 都满足马尔可夫性,即:
P ( y v x , y V { v } ) = P ( y v x , y n ( v ) ) P(y_v|x,y_{V \\ \{v \}}) = P(y_v|x,y_{n(v)})
则(y,x)构成一个条件随机场。最常用的是链式条件随机场(chain-structured CRF):

其条件概率被定义为:
P ( y x ) = 1 Z e x p ( j i = 1 n 1 λ j t j ( y i + 1 , y i , x , i ) + j i = 1 n μ k s k ( y i , x i ) ) P(y|x) = \frac{1}{Z}exp(\sum_{j}\sum_{i=1}^{n-1}\lambda_jt_j(y_{i+1},y_i,x,i)+\sum_{j}\sum_{i=1}^{n}\mu_ks_k(y_i,x_i))
其中 t j ( y i + 1 , y i , x , i ) t_j(y_{i+1},y_i,x,i) 是定义在观测序列的两个相邻标记位置上的转移特征函数,用于刻画相邻标记变量之间的相关关系以及观测序列对它们的影响; s k ( y i , x i ) s_k(y_i,x_i) 是定义在观测序列的标记位置i上的状态特征函数,用于刻画观测序列对标记变量的影响。

CRF和MRF在形式上并没有显著的区别,只不过CRF是对条件概率建模,而MRF是对联合概率建模。

4. 学习与推断

  根据建好的模型,对于给定参数,求解某个变量的分布,就可以对其他无关的变量进行积分,得到这个变量的边缘分布,这个过程就是边缘化

4.1 变量消去

  变量消去法是最直观的精确推断算法,也是构建其他精确推断算法的基础。以以下的有向图模型为例:

假设推断目标是边际概率 P ( x 5 ) P(x_5) ,只需要使用加法消去 { x 1 , x 2 , x 3 , x 4 } \{x_1,x_2,x_3,x_4\} :
P ( x 5 ) = x 1 x 2 x 3 x 4 P ( x 1 , x 2 , x 3 , x 4 , x 5 ) = x 1 x 2 x 3 x 4 P ( x 1 ) P ( x 2 x 1 ) P ( x 3 x 2 , x 1 ) P ( x 4 x 3 , x 2 , x 1 ) P ( x 5 x 4 , x 3 , x 2 , x 1 ) t t 1 = x 1 x 2 x 3 x 4 P ( x 1 ) P ( x 2 x 1 ) P ( x 3 x 2 ) P ( x 4 x 3 ) P ( x 5 x 4 ) P(x_5) = \sum_{x_1}\sum_{x_2}\sum_{x_3}\sum_{x_4}P(x_1,x_2,x_3,x_4,x_5) \\ =\sum_{x_1}\sum_{x_2}\sum_{x_3}\sum_{x_4}P(x_1)P(x_2|x_1)P(x_3|x_2,x_1)P(x_4|x_3,x_2,x_1)P(x_5|x_4,x_3,x_2,x_1) \\ 【马尔科夫性质:t时刻的状态只与t-1时刻有关】\\ =\sum_{x_1}\sum_{x_2}\sum_{x_3}\sum_{x_4}P(x_1)P(x_2|x_1)P(x_3|x_2)P(x_4|x_3)P(x_5|x_4)

可以看出,通过改变求和顺序,就可以将每次的求和求积运算限制在局部,仅仅与部分变量有关,从而简化了计算。其缺点是:在计算多个边际分布的时候,会造成大量的冗余计算。

4.2 信念传播(Belief Propagation)

  信念传播算法将变量消去法中的求和操作看作一个消息传递过程,较好地解决了求解多个边际分布时的重复计算问题。
在变量消去法中:
m i j ( x j ) = x i ψ ( x i , x j ) k n ( i ) j m k i ( x i ) m_{ij}(x_j) = \sum_{x_i}\psi(x_i,x_j)\prod_{k∈n(i)\\j}m_{ki}(x_i)
在信念传播算法中,一个结点仅在接收到来自其他所有结点的消息后才能向另一个结点发送消息,且结点的边际分布正比于它所接收的消息的乘积,即:
P ( x i ) k n ( i ) m k i ( x i ) P(x_i)\propto \prod_{k∈n(i)}m_{ki}(x_i)
所以若圈结构中没有环,则信念传播算法经过两个步骤即可完成所有消息传递,
进而能计算所有变量上的边际分布:
[1]:指定一个根结点,从所有叶结点开始向根结点传递消息,直到根结点收到所有邻接结点的消息;
[2]:从根结点开始向叶结点传递消息,直到所有叶结点均收到消息。

5. 近似推断

  其目的就是为了解决精确推断计算量大的问题。其方法主要可以分为两类:
采样(Sampling): 通过使用随机化的方法完成近似;
变分推断(Variational inference): 通过确定性近似完成近似推断。

5.1 马尔科夫链蒙特卡罗方法(MCMC采样)

  在很多任务中,我们其实不是对某些概率分布感兴趣,而是对他们的期望感兴趣,获得概率分布只是为了用于求期望,所以基于大数定律,可以通过采样来获得其近似值。
  概率图模型中最常使用的采样技术是马尔科夫链蒙特卡罗方法(Markov Chain Monte Carlo, MCMC)。假定平稳马尔可夫链T的状态转移概率(即从状态x转移到状态x’的概率)为T(x’|x),t时刻状态的分布为 P ( x t ) P(x_t) ,则若在某个时刻马尔可夫链满足平稳条件:
P ( x t ) T ( x t 1 x t ) = P ( x t 1 ) T ( x t x t 1 ) P(x_t)T(x_{t-1}|x_t) = P(x_{t-1})T(x_t|x_{t-1})
则称P(x)为该马尔科夫链的平稳分布,且马尔可夫链在满足该条件时已收敛到平稳状态。
  MCMC方法先设法构造一条马尔可夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链来产生符合后验分布的样本,并基于这些样本来进行估计。这里马尔可夫链转移概率的构造至关重要,不同的构造方法将产生不同的MCMC算法。以Metropolis-Hastings(MH)方法为例:算法每次根据上一轮采样结果 x t 1 x^{t-1} 来采样获得候选状态样本 x x^{*} ,但这个候选样本会以一定的概率被"拒绝"掉。假定从状态 x t 1 x^{t-1} 到状态 x x^{*} 的转移概率为 Q ( x x t 1 ) A ( x x t 1 ) Q(x*|x^{t - 1})A(x*|x^{t - 1}) ,其中 Q ( x x t 1 ) Q(x*|x^{t - 1}) 是用户给定的先验概率, A ( x x t 1 ) A(x*|x^{t - 1}) x x^{*} 被接受的概率。若 x x^{*} 最终收敛到平稳状态,于是有以下的状态平衡方程:
P ( x t 1 ) Q ( x x t 1 ) A ( x x t 1 ) = P ( x ) Q ( x t 1 x ) A ( x t 1 x ) A ( x x t 1 ) = m i n ( 1 , P ( x ) Q ( x t 1 x ) P ( x t 1 ) Q ( x x t 1 ) ) P(x^{t-1})Q(x^*|x^{t-1})A(x^*|x^{t-1})=P(x^*)Q(x^{t-1}|x^*)A(x^{t-1}|x^*) \\ A(x^*|x^{t-1}) = min(1,\frac{P(x^*)Q(x^{t-1}|x^*)}{P(x^{t-1})Q(x^*|x^{t-1})})
以下是MH算法的描述:

有时通过循环执行以下步骤来完成采样:
[1]:随机或以某个次序选取某变量 x i x_i
[2]:根据x中除 x i x_i 外的变量的现有取值,计算条件概率 P ( x i x i ) P(x_i|x_{i^*}) ,其中 x i = x 1 , x 2 , . . . , x i 1 , x i + 1 , . . . , x N x_{i^*} = {x_1,x_2,...,x_{i-1},x_{i+1},...,x_N}
[3]:根据 P ( x i x i ) P(x_i|x_{i^*}) 对变量 x i x_i 采样,用采样值代替原值。

5.2 变分推断

  变分推断通过使用己知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。是一种确定性近似

对于上图b中所能观察到的变量x的联合概率分布为:
P ( x Θ ) = i = 1 N z P ( x i , z Θ ) P(x|\Theta)=\prod_{i=1}^{N}\sum_{z}P(x_i,z|\Theta)
其对数似然为:
l n P ( x Θ ) = i = 1 N l n { z P ( x i , z Θ ) } ln P(x|\Theta) = \sum_{i=1}^{N}ln\{\sum_{z}P(x_i,z|\Theta)\}
在用EM算法求z的分布的时候,可能由于z过于复杂而求取困难,此时可将z拆解:
q ( z ) = i = 1 M q i ( z i ) q(z) = \prod_{i=1}^{M} q_i(z_i)

6. 话题模型(Topic Model)

  话题模型是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合) ,在信息检索、自然语言处理等领域有广泛应用。隐狄利克雷分配模型(Latent Dirichlet Allocation, LDA)是话题模型的典型代表。话题模型中的几个基本概念:
词(Word):是待处理数据的基本离散单元;
文档(Document):是待处理的数据对象,由一组词构成;
话题(Topic):表示一个概念,具体表示为一系列相关的词,以及它们在该概念下出现的概率。
  LDA认为每篇文档包含多个话题,通过以下步骤来生成文档:
[1]:根据参数为α的狄利克雷分布随机采样一个话题分布 Θ t \Theta_t ;
[2]:按如下步骤生成文档中的N 个词:
  a. 根据 Θ t \Theta_t 进行话题指派,得到文档t中词n的话题 z t , n z_{t,n}
  b. 根据指派的话题所对应的词频分布 β k \beta_k 随机采样生成词。

猜你喜欢

转载自blog.csdn.net/kabuto_hui/article/details/84575725
今日推荐