【西瓜书】 第十四章 概率图模型
本文是周志华老师《机器学习》第十四章概率图模型的学习笔记及部分习题答案。
概率模型是将学习任务归结为计算变量的概率分布的模型。在该模型中,利用已知的变量推测位置变量的分布称为推断。
假定关心的标量为
- 生成式 考虑联合分布
- 判别式 考虑条件分布
给定观测变量,推断就是由上述分布去推测条件概率分布
由于直接求解该模型的复杂度是指数级别的,因此我们需要有一套能够简洁紧凑表达变量关系的工具,其中的代表就是概率图模型。它利用图作为标识,用节点来表示随机变量, 边来表示随机变量之间的关系,概率图主要分为两类:
- 贝叶斯网,使用有向无环图(常用于变量间存在显式因果关系的情况)
- 马尔科夫网,使用无向图(常用于变量之间存在相关性但没有明显因果性)
隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model, HMM)是最简单的动态贝叶斯网。其中的变量分为两组,第一组是状态变量
状态变量
如下图所示,HMM中的依赖关系有两种:
- 观测变量的取值仅依赖于同一时刻的状态变量。
- 当前时刻的状态变量仅依赖于前一时刻的状态变量。即所谓的马尔可夫性质(在DP里叫无后效性)。
根据这种依赖关系,所有变量的联合概率分布就是:
确定了结构信息后,HMM还需要以下三组参数:
- 状态转移概率, 模型在各个状态之间转移的概率,记作
输出观测概率,即由状态导出观测的概率分布,记作
初始状态概率,模型初始时个状态的概率,记作
那么一个HMM可以通过状态空间
时,按照初始状态概率 选择初始状态- 由当前状态和输出观测概率
选择观测变量 - 由当前状态和状态转移矩阵
确定下一状态 - 若
,则 ,并转到第2步,否则停止
在应用中,人们会关注三个问题:
- 给定模型参数,如何计算其产生的观测序列的概率的概率
。 - 给定模型和观测序列,如何找到与该观测序列最匹配的状态序列,即由观测序列推断状态序列。
- 给定观测序列,如何调整模型参数,使得
最大
由于HMM的条件独立性,这三个问题都可以高效求解。
马尔科夫随机场
马尔科夫随机场(Markov Random Field, MRF)是一种典型的马尔可夫网络。
首先来介绍MRF中两个重要的概念:
- MRF其中有一组势函数(potential function),又称因子(factor),它是定义在变量子集上的非负实函数,用于定义概率分布函数。
- 对MRF中节点的自己,若其中任意两个节点之间都有边连接,则称该子集为团(clique),当团中加入任意一个节点都不能构成团,则称其为极大团。
有了团的概念,MRF中变量的联合概率分布能基于团分解为多个因子的乘积。当然,在变量个数较多时,团的数目会显著增加,所以我们往往基于极大团来定义联合概率,所有极大团组合集合为
其中
在MRF中,如果从结点集A到结点集B的路径都要经过结点集C,则成结点集A,B被C分离,C称作分离集(如下图):
那么对于MRF就有全局马尔可夫性质(global Markov property):给定两个变量子集的分离集,则这两个变量子集条件独立。 记作:
接着由该性质可以推出两个有用的推论:
- 局部马尔可夫性(local Markov property):给定某变量的邻接变量,则该变量独立于其他变量
- 成对马尔可夫性(pairwise Markov property):给定所有其他变量,两个非邻接变量条件独立
MRF中的势函数是用来刻画变量之间的相互关系,为了满足其非负性,势函数被定义为指数函数:
其中,常有:
其中
条件随机场
条件随机场(Conditional Random Field, CRF)是一种判别式模型,和前面生成式的MRF不同,它对条件分布进行建模。它可以看作给定观测值的MRF。
CRF的目标是构建条件概率模型
我们用
则
现实应用中,常用的是下图所示的链式结构,即链式条件随机场,我们就此展开讨论。
CRF也利用势函数和团来定义联合概率:
其中
定义好合适的两个特征函数后,就可以使用条件随机场了。
CRF和MRF形式上非常像,区别在于一个处理的是条件概率一个处理的是联合概率。
学习和推断
概率模型图中的推断是指由联合概率分布去推算边际分布或者条件分布。
学习则是指确定概率图模型中具体分布的参数。
在贝叶斯学派看来,参数和变量都看作随机变量,因此参数估计和变量推断可以统一起来(当然频率学派不这么看),那么接下来我们就主要讨论概率图的推断方法。
我们将模型的变量集分为两个不相交的变量集
大致上,推断方法可以分为两类,一类是精确推断,一类是近似推断。前者复杂度较高,不适合数据太大时应用,后者则希望在较低的复杂度下获得原问题的近似解。
下面介绍两种精确推断方法: 变量消去和信念传播。
变量消去
变量消去是最直观的精确推断算法,其主要思想是通过独立性将计算目标进行分解,然后利用乘法对加法的分配律,将多个变量积的求和问题,转换为对部分变量交替求和求积的问题。 由于每次求和/求积都限制在局部,因此仅和部分变量有关。
以下面的过程为例:
其中
但是变量消去会有大量的冗余计算(这取决于变量消去的顺序,但是最优顺序的求解是NP难的)。
信念传播
信念传播算法是将变量消去中的求和操作看作一个消息传递过程,从而较好的解决了求多个边际分布时候的重复计算问题。也就是说,对于一步变量消去来说,其操作为:
该式消去了变量$xi
整个信念传播算法分为两步:
- 指定根节点,从所有叶子节点开始向根节点传递消息,直到根节点收到消息。
- 根节点开始向叶子节点传播消息,直到所有叶子节点收到消息。
近似推断
由于精确推断需要很大的计算开销,因此实际中应用更多的是近似推断方法。该方法可以分为两类,一类是采样,使用随机化方法完成近似;一类是变分推断,使用确定性近似完成近似推断。
MCMC采样
在很多任务中,我们计算概率分布的目的是希望由此计算出期望,那么当直接计算或者逼近该期望比推断概率分布更容易时,我们就不妨直接去计算期望。
假设我们需要计算函数
我们可以用样本均值来逼近:
时该马尔可夫链达到平稳状态,
也就是说MCMC先构造一条马尔可夫链,使其收敛到的平稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链来产生符合后验分布的样本,并基于这些样本来进行估计。这里马尔可夫链的转移概率的构造至关重要,不同的构造方法也产生不同的MCMC方法。
M-H算法
Metropolis-Hastings算法是MCMC的重要代表,它基于拒绝采样来逼近平稳分布。
其基本过程是:
- 基于当前状态的分布进行采样,选出候选样本
- 基于均匀分布采样出阈值
- 若阈值
,则接受该采样结果,否则拒绝该结果。 - 回到步骤1,直到采样结束
这里那么状态转移概率写成先验转移概率
其中接受率设置为:
吉布斯采样可以被看作MH算法的特例,它也采用马尔可夫链来获取样本,其区别在于:没有拒绝采样;每次只更新变量的一个分量。
变分推断
变分推断通过已知简单分布来逼近复杂分布,并通过限制近似分布的类型得到一种局部最优但具有确定解的近似后验分布。
假设某个概率图中所有可观察变量
则似然函数为:
其中
这个模式似乎很常见哦,其实就可以对似然函数使用EM算法:
- E-step 固定参数,计算似然函数
- M-step 最大化对数联合似然函数在当前分布下的期望,来更新参数
参数更新如下:
但是,在实际任务中,E步往往因为z模型复杂而难以进行,此时可以借助变分推断。
首先假设多变量
通过恰当分割独立变量子集并选择其服从的分布,我们可对隐变量做高效推断,这种方法是通过联合近似函数
当然,实践中以下两点往往严重限制了变分推断的发挥:
- 隐变量的分割方式
- 变量子集的分布假设
主题模型
主题模型(topic model)是一种生成式有向图模型,主要用于离散型数据,其中典型代表是隐迪利克雷分配模型(Latent Dirichlet Allocation, LDA)。
其中的几个基本概念: 词(word)是待处理数据的基本离散单元;文档(document)是待处理的数据对象,它用词袋模型(bag-of-words)来表示,其中的词在文档中是不计顺序的;主题是一个概念,表现为一系列相关词及其它们在该概念下出现的概率。
那么按照LDA主题模型,一篇文档
- 根据参数为
的迪利克雷分布随机采样一个话题分布 。 - 按照以下步骤生成文档中的
个词:- 根据$\Thetat
t n z{t,n}$ - 根据指派的话题所对应的词频分布
随机采样生成词。
- 根据$\Thetat
用盘式标记的话,LDA的变量关系就如下:
其中文档的词频$w{t,n}
那么LDA模型的联合概率分布就是:
其中话题词频
给定训练数据,LDA的参数可以用极大似然法来估计,但是实践中往往采用变分法来求近似解。
当模型已知时(
但是实际中往往该式难以求解,因此常用吉布斯采样或者变分法来推断。
习题及参考答案
2. 试证明图模型中的局部马尔可夫性:给定某变量的邻接变量,则该变量独立于其他变量。
3. 试证明图模型中的成对马尔可夫性:给定其他所有变量,则两个非邻接变量条件独立
和上一题差不多,略。
4. 试述在马尔可夫随机场中为何仅需对极大团定义势函数。
因为所有非极大团中的变量关系都包含于其所属的极大团的势函数中。
5. 比较条件随机场和对率回归,比较其异同。
条件随机场可以看作是广义图连接上的LR,LR可以看作是CRF的一个特例。
有一个很有用的图可以说明这些模型之间的关系。
6. 试证明变量消去法的计算复杂度随图模型中极大团规模的增长而呈指数增长,但随节点数的增长未必呈指数增长。
这里给出了关于VE算法复杂度的讨论,并给出了一个实例进行演示。
7. 吉布斯采样可看作MH算法的特例,但是吉布斯采样中未使用“拒绝采样”策略,试述这样做的好处。
当数据维数很高时,拒绝采样消耗的计算时间非常多,使得算法效率很低。此时去掉它可以提高算法效率。
8. 平均场是一种近似推断方法。考虑式(14.32),试分析平均场方法求解的近似问题与原问题的差异,以及事件中如何选择变量服从的先验分布。
略。
9. 从网上下载或者自己编程实现LDA,试分析金庸作品《天龙八部》中每十回的话题演变情况。
具体代码和过程见github,需要注意的是,为了更精确来说,实际上应该将文本中所有人名当作停用词处理,否则主题倾向太明显。这里偷懒就省了这步处理。
10. 试设计一个无须事先指定话题数目的LDA改进算法。
在每轮迭代后,对两两主题算KL散度,如果两个主题很相近就合并。同时也可以检查,如果某个主题分布太过集中了,可以把这个主题去掉或是拆分。