- 隐马尔可夫模型
- 概述
- 概率图模型
- 隐马尔可夫模型
- 条件随机场
- 马尔可夫性
- 条件随机场
- 链式条件随机场
- 学习与推断
- 精确推断方法
- 变量消法
- 参考资料
- 精确推断方法
隐马尔可夫模型
概率模型(probabilistic model)提供了一种描述框架,将学习任务归结于计算变量的概率分布。
在概率模型中,利用已知变量推测未知变量的分布称为“推断”(inference),其核心是如何基于可观测变量推测出未知变量的条件分布。
概述
假定所关心的变量集合为\(Y\),可观测变量集合为\(O\),其他变量为\(R\)。
-
生成式(generative)模型考虑联合分布\(P(Y,R,O)\)。
- 联合概率分布简称联合分布,是两个及以上随机变量组成的随机向量的概率分布。
- 从结果而言,是概念导向的
-
判别式(discriminative)模型考虑条件分布\(P(Y,R|O)\)。
- 从结果而言的,是目的导向的
-
一种“推断”的暴力方法是利用概率求和规则(或称全概率公式)来消去R,即:
\[P(Y)=P(Y | R_1) P(R _1)+P(Y | R _2) P(R _2)+\ldots+P(Y | R _n) P(R _n) \]但是这样做是不可行的,理由是:
- R是难以观测的!
概率图模型
概率图模型(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。
- 它以图为表示工具。
- 结点:随机变量
- 结点之间的边:变量间的概率相关关系。
- 这个图称为:“变量关系图”
- 根据边的性质不同,概率图模型可大致分为两类
- 使用有向无环图,表示变量间的依赖关系,称为有向图模型或贝叶斯网(Bayesian network)
- 隐马尔可夫模型(Hidden Markov Model,简称HMM)是结构最简单的动态贝叶斯网(dynamic Bayesian network), 这是一种著名的有向图模型。主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。
- 使用无向图,表示变量间的相关关系,称为无向图模型或马尔可夫网(Markov network)
- 使用有向无环图,表示变量间的依赖关系,称为有向图模型或贝叶斯网(Bayesian network)
隐马尔可夫模型
-
隐马尔可夫模型中的变量可分为两组。
- 状态变量\(\{y_1, y_2,...,y_n\}\)其中\(y_i∈ Y\)表示第\(i\)时刻的系统状态。
- 通常假定状态变量是隐藏的、不可被观测的,因此状态变量亦称隐变量(hidden variable)
- 观测变量\(\{x_1,x_2,...,x_n\}\),其中\(x_i∈X\)表示第\(i\)时刻的观测值。
- 状态变量\(\{y_1, y_2,...,y_n\}\)其中\(y_i∈ Y\)表示第\(i\)时刻的系统状态。
-
在隐马尔可夫模型中,系统通常在多个状态\(\{s_1, s_2,...,s_N\}\)之间转换。相应的:
- 状态变量\(y_i\)的取值范围\(\mathcal{Y}\)(称为状态空间),通常是有N个可能取值的离散空间。
- 观测变量\(x_i\)可以是离散型也可以是连续型,为便于讨论,我们仅考虑离散型观测变量,并假定其取值范围\(\mathcal{X}\)为\(\{o_1,o_2,...,o_m\}\)。
-
隐马尔可夫模型对变量间的关系做了简化(相对于全概率公式)。马尔可夫链(Markov chain):系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态。
-
变量间的两条基本关系:
- 关系①:当前观测变量\(x_t\)只取决于当前状态变量\(y_t\)
- 关系②:当前状态变量\(y_t\)只取决于前一时刻的状态变量\(y_{t-1}\)
-
基于这种依赖关系,所有变量的联合概率分布为:
\[P\left(x_{1}, y_{1}, \ldots, x_{n}, y_{n}\right)=P\left(y_{1}\right) P\left(x_{1} | y_{1}\right) \prod_{i=2}^{n} P\left(y_{i} | y_{i-1}\right) P\left(x_{i} | y_{i}\right) \]- 关系①:\(P(x_1,y_1) = P(y_1)P(x_1|y_1)\)
- 关系②:\(P(x_1,y_1,y_2) = P(y_1)P(x_1|y_1)P(y_2|y_1)\)
- 关系①:\(P(x_1,y_1,x_2,y_2) = P(y_1)P(x_1|y_1)P(y_2|y_1)P(x_2|y_2)\)
- ……
- \(P\left(x_{1}, y_{1}, \ldots, x_{n}, y_{n}\right)=P\left(y_{1}\right) P\left(x_{1} | y_{1}\right) \prod_{i=2}^{n} P\left(y_{i} | y_{i-1}\right) P\left(x_{i} | y_{i}\right)\)
-
-
除了结构信息,欲确定一个隐马尔可夫模型还需以下三组参数:
-
状态转移概率:模型在各个状态间转换的概率。
- 通常记为矩阵\(A =[a_{ij}]_{N\times N}\),其中
\[a_{i j}=P\left(y_{t+1}=s_{j} | y_{t}=s_{i}\right), \quad 1 \leqslant i, j \leqslant N \]- 比如由W到N3的概率很低,而W到REM的概率就很高
-
输出观测概率:模型根据当前状态获得各个观测值的概率。
- 通常记为矩阵\(B=[b_{ij}]_{N \times M}\),其中
\[b_{i j}=P\left(x_{t}=o_{j} | y_{t}=s_{i}\right), \quad 1 \leqslant i \leqslant N, 1 \leqslant j \leqslant M \]- 这继承于一般的机器学习思路
-
初始状态概率:模型在初始时刻各状态出现的概率。
-
通常记为\(\pi = (\pi_1,\pi_2,...,\pi_N)\),其中
\[\pi_{i}=P\left(y_{1}=s_{i}\right), \quad 1 \leqslant i \leqslant N \] -
比如初始为W和N1的概率就很大
-
对于链状结构,初始状态往往是十分重要的!
-
-
-
给定隐马尔可夫模型\(\lambda=[A,B,\pi]\),它按如下过程产生观测序列\(\{x_1,x_2,...,x_n\}\)
- 开始。设置\(t= 1\),并根据初始状态概率\(π\)选择初始状态\(y_1\)
- 关系①。根据状态$ y_t\(和输出观测概率\)B\(选择观测变量取值\)x_t$
- 关系②。根据状态\(y_t\)和状态转移矩阵\(A\)转移模型状态,即确定\(y_{t+1}\)
- 循环。若\(t
,设置\(t=t+ 1\),并转到第(2)步,否则停止
-
应用中的三个基本问题
- 模型与观测序列之间的匹配程度
- 如何计算\(P(x|\lambda)\)
- 根据观测序列,推出隐藏的模型状态
- \(\lambda=[A,B,\pi]\)$\ and\ $$\mathbb{x} = {x_1,x_2,...,x_n}$ →\(\mathbb{y} = \{y_1,y_2,...,y_n\}\)
- 如何训练模型使其能最好地描述观测数据
- 给定\(\mathbb{x} = \{x_1,x_2,...,x_n\}\),如何调整\(\lambda=[A,B,\pi]\),使得\(P(x|\lambda)\)最大
- 模型与观测序列之间的匹配程度
条件随机场
条件随机场(Conditional Random Field, CRF)是一种判别式无向图模型。条件随机场试图对多个变量在给定观测值后的条件概率\(P( \mathbb{y} | \mathbb{x})\)进行建模。
马尔可夫性
分离集:若从结点集A中的结点到B中的结点都必须经过结点集C中的结点,则称结点集A和B被结点集C分离,C称为“分离集” (separating set)。
全局马尔可夫性(global Markov property):给定两个变量子集的分离集,则这两个变量子集条件独立。由全局马尔可夫性可以得到两个很有用的推论:
-
局部马尔可夫性(local Markov property):给定某变量的邻接变量,则该变量条件独立于其他变量。
- 形式化地说,令\(V\)为图的结点集,\(n(v)\)为结点\(V\)在图上的邻接结点,\(n^*(v) = n(v)∪{v}\),有
\[\mathbf{x}_{v} \perp \mathbf{x}_{V \backslash n^{*}(v)} | \mathbf{x}_{n(v)} \]
- 形式化地说,令\(V\)为图的结点集,\(n(v)\)为结点\(V\)在图上的邻接结点,\(n^*(v) = n(v)∪{v}\),有
-
成对马尔可夫性(pairwise Markov property):给定所有其他变量,两个非邻接变量条件独立。
- 形式化地说,令图的结点集和边集分别为\(V\)和\(E\),对图中的两个结点\(u\)和\(v\),若\((u,v)\notin E\),则
\[\mathbf{x}_{u} \perp \mathbf{x}_{v} | \mathbf{x}_{V} \backslash\langle u, v\rangle \]
- 形式化地说,令图的结点集和边集分别为\(V\)和\(E\),对图中的两个结点\(u\)和\(v\),若\((u,v)\notin E\),则
条件随机场
令\(G= \langle V, E\rangle\)表示结点与标记变量\(\mathbb{y}\)中元素一一对应的无向图。\(y_v\)表示与结点\(v\)对应的标记变量, \(n(v)\)表示结点\(v\)的邻接结点,若图G的每个变量\(y_v\)都满足马尔可夫性,即:
- (8)式为局部马尔可夫性。
链式条件随机场
链式条件随机场(chain-structured CRF)是最常用的。
条件随机场使用势函数和图结构上的团来定义条件概率\(P(\mathbb{y}|\mathbb{x})\).
-
势函数
- 势函数(potential functions),亦称“因子”(factor)。它定义在变量子集上的非负实函数,主要用于定义概率分布函数。
-
团
- 对于图中结点的一个子集,若其中任意两结点间都有边连接,则称该结点子集为一个“团”(clique)。
- 条件随机场包含两种关于标记变量的团
- \(\{y_i\}\)
- \(\{y_{i-1},y_i\}\)
-
条件随机场的条件概率\(P(\mathbb{y}|\mathbb{x})\)
\[P(\mathbf{y} | \mathbf{x})=\frac{1}{Z} \exp \left(\sum_{j} \sum_{i=1}^{n-1} \lambda_{j} t_{j}\left(y_{i+1}, y_{i}, \mathbf{x}, i\right)+\sum_{k} \sum_{i=1}^{n} \mu_{k} s_{k}\left(y_{i}, \mathbf{x}, i\right)\right) \]其中,Z是规范化因子,\(\lambda_j\)和\(\mu_k\)为参数,而\(t_{j}\left(y_{i+1}, y_{i}, \mathbf{x}, i\right)\)为转移特征函数,\(s_{k}\left(y_{i}, \mathbf{x}, i\right)\)为状态特征函数。
- 特征函数之举例
\[t_{j}\left(y_{i+1}, y_{i}, \mathbf{x}, i\right)=\left\{\begin{array}{ll} 1, & \text { if } y_{i+1}=[P], y_{i}=[V] \text { and } x_{i}={\text {“knock" }} \\ 0, & \text { otherwise } \end{array}\right. \]表示当第\(i\)个观测值为”knock“,第\(i\)个标记为[V]时,相应地下一个标记可能是[P]。\[s_{k}\left(y_{i}, \mathbf{x}, i\right)=\left\{\begin{array}{ll} 1, & \text { if } y_{i}=[V] \text { and } x_{i}={\text {“knock" }} \\ 0, & \text { otherwise } \end{array}\right. \]表示当第\(i\)个观测值为”knock“时,相应的标记很可能是[V]。
- 特征函数之举例
学习与推断
基于概率图模型定义的联合概率分布,我们能对目标变量的边际分布(marginal distribution)或以某些可观测变量为条件的条件分布进行推断。
-
边际分布
指的是对无关变量求和或积分后得到的结果。在(12)式中,y相对于x就是一个无关变量。
\[P(x) = \sum_{y}P(x,y) \]- 边际分布和条件分布的关系
\[P(x|y) = \frac{P(x,y)}{P(y)}=\frac{P(x,y)}{\sum_{x}P(x,y)} \]也就是说联合分布、条件分布和边际分布三者是可“知二求一”的。
- 边际分布和条件分布的关系
精确推断方法
变量消法
精确推断的实质是一类动态规划算法,它利用图模型所描述的条件独立性来削减计算目标概率值所需的计算量。
-
动态规划算法
动态规划(Dynamic Programming,DP)是求解决策过程(decision process)最优化的数学方法。它的核心思想是把一个大的、复杂的问题不断分解至可以解决的小问题进行处理。
- 自上而下——递归
- 自下而上——迭代
在后面,我们会发现,变量消去法符合自下而上的特点的。
-
举例
计算边际概率\(P(x_5)\)
\[\begin{aligned} P\left(x_{5}\right) &=\sum_{x_{4}} \sum_{x_{3}} \sum_{x_{2}} \sum_{x_{1}} P\left(x_{1}, x_{2}, x_{3}, x_{4}, x_{5}\right) \\ &=\sum_{x_{1}} \sum_{x_{2}} \sum_{x_{2}} \sum_{x_{2}} P\left(x_{1}\right) P\left(x_{2} | x_{1}\right) P\left(x_{3} | x_{2}\right) P\left(x_{4} | x_{3}\right) P\left(x_{5} | x_{3}\right)\\ &=\sum_{x_{3}} P\left(x_{5} | x_{3}\right) \sum_{x_{4}} P\left(x_{4} | x_{3}\right) \sum_{x_{2}} P\left(x_{3} | x_{2}\right) \sum_{x_{1}} P\left(x_{1}\right) P\left(x_{2} | x_{1}\right)\\ &=\sum_{x_{3}} P\left(x_{5} | x_{3}\right) \sum_{x_{4}} P\left(x_{4} | x_{3}\right) \sum_{x_{2}} P\left(x_{3} | x_{2}\right)m_{12}(x_i)\\ &=\sum_{x_{3}} P\left(x_{5} | x_{3}\right) \sum_{x_{4}} P\left(x_{4} | x_{3}\right) m_{23}\left(x_{3}\right)\\ &=\sum_{x_{3}} P\left(x_{5} | x_{3}\right) m_{23}\left(x_{3}\right) \sum_{x_{4}} P\left(x_{4} | x_{3}\right)\\ &=\sum_{x_{3}} P\left(x_{5} | x_{3}\right) m_{23}\left(x_{3}\right) m_{43}\left(x_{3}\right)\\ &=m_{35}\left(x_{5}\right) \end{aligned} \]-
等式理解
- 第一个等号给出边际概率的定义
- 第二个等号利用了联合分布与条件分布的关系
- 第三个等式利用了求和号的数乘交换律
- 第四个等式中\(m_{ij}\)表示对\(x_i\)求和后剩下与\(x_j\)相关的变量的函数
- 之后的等式进行迭代,直到得到一个只与\(x_5\)有关的函数,也就是边际概率\(P(x_5)\)
-
对于无向图也是类似的。
-
-
变量消去法的核心优势与不足
- 利用乘法分配律将多个变量积的和,变成了部分变量交替进行求积和求和的问题。使得每次求积运算限制在局部,简化了计算
- 若需要计算多个边际分布,如\(P(x_5)\)、\(P(x_4)\)、\(P(x)_3\)等等,会造成大量的冗余计算(体现在m函数上)。思考:是否可以将这个中间结果保存起来?
参考资料
[1] 周志华.机器学习[M].北京:清华大学出版社,2016