天天看点

概率图模型入门(隐马尔可夫模型HMM、条件随机场CRF)

参考资料:周志华《机器学习》

隐马尔可夫模型

利用先验概率,贝叶斯分类器可以对给定的样本数据进行一次概率估计。而对于序列数据,如天气等时间序列、顾客的购买历史、自然语言的语句等,其变量之间显然具有相关性时,假设各变量始终独立同分布的朴素贝叶斯就不足以完成估计和预测了。对于一组顺序数据即序列,直觉上,我们会猜想,与历史的观测相⽐,当前的观测值会为预测未来值提供更多的信息,为此,我们拓展出了贝叶斯网以解决序列问题。

首先需要注意的是,序列中各观测值具有对应性质、类型等状态,比如语句中名词是“我”的词性或者说状态;而状态之间存在一定的相关性,比如语句中名词后是动词有较高的概率;并且每个观测值与其可能对应的状态之间也具有相关性,比如“我”是名词具有较高的概率。根据这样的联系,我们可以将序列的各节点构入一个图(graph)中,并用边表示节点之间的概率相关关系,这就是概率图模型。

根据边的性质不同,概率图模型大致分为两类:有向无环图表示的有向图模型或贝叶斯网、无向图表示的无向图模型或马尔可夫网。隐马尔可夫模型(Hidden Markov Model, 简称HMM)是结构最简单的动态贝叶斯网,应用于时序数据建模、语音识别、机器翻译、自然语言处理、拼写错误识别、手写体识别、图像处理、基因序列分析等多种领域。

隐马尔可夫模型拥有两组变量。第一组是状态变量 { y 1 , y 2 , y 3 , … , y n } \{y_1, y_2, y_3, \ldots, y_n\} {y1​,y2​,y3​,…,yn​},其中 y i ∈ Y y_i\in\mathcal{Y} yi​∈Y表示第 i i i时刻的系统状态,往往是不可被直接观测到的,因此又称隐变量。 Y \mathcal{Y} Y称为状态空间,通常是有 N N N个取值的离散空间, Y = { s 1 , s 2 , s 3 , … , s N } \mathcal{Y}=\{s_1, s_2, s_3, \ldots, s_N\} Y={s1​,s2​,s3​,…,sN​}. 第二组是观测变量 { x 1 , x 2 , x 3 , … , x n } \{x_1, x_2, x_3, \ldots, x_n\} {x1​,x2​,x3​,…,xn​},其中 x i ∈ X x_i\in\mathcal{X} xi​∈X表示第 i i i时刻的观测值,可以是连续型变量或者离散型变量。为便于讨论,假定 x i x_i xi​为离散型变量, X = { o 1 , o 2 , o 3 , … , o M } \mathcal{X}=\{o_1, o_2, o_3, \ldots, o_M\} X={o1​,o2​,o3​,…,oM​}

概率图模型入门(隐马尔可夫模型HMM、条件随机场CRF)

类似朴素贝叶斯模型,隐马尔科夫模型为减少复杂度做出两个基本假设。第一个假设是任一时刻观测值仅依赖于当前时刻对应状态值,即 x t x_t xt​仅依赖于 y t y_t yt​,而与其他时刻的状态节点和观测节点无关。第二个假设是各状态节点仅满足一阶马尔可夫性,即第 t t t时刻的状态 y t y_t yt​仅依赖于第 t − 1 t-1 t−1时刻的状态 y t − 1 y_{t-1} yt−1​,而与之前 t − 2 t-2 t−2个状态无关,即“未来只由现在决定”。因此,所有变量的联合概率分布为

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\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(x1​,y1​,…,xn​,yn​)=P(y1​)P(x1​∣y1​)∏i=2n​P(yi​∣yi−1​)P(xi​∣yi​)

为了计算,我们需要知道: P ( y 1 ) P\left(y_{1}\right) P(y1​)、 P ( y i ∣ y i − 1 ) P\left(y_{i} | y_{i-1}\right) P(yi​∣yi−1​)、 P ( x i ∣ y i ) P\left(x_{i} | y_{i}\right) P(xi​∣yi​),分别对应于

  • 初始状态概率:模型在初始时刻各状态出现的概率,通常记为矩阵 π = ( π 1 , π 2 , … , π N ) \pi=(\pi_1, \pi_2, \ldots, \pi_N) π=(π1​,π2​,…,πN​),其中 π i = P ( y i = s i ) , 1 ≤ i ≤ N \pi_i=P(y_i=s_i), 1\le{i}\le{N} πi​=P(yi​=si​),1≤i≤N.
  • 状态转移概率:模型在各个状态间转换的概率,通常记为矩阵 A = [ a i j ] N × N \Alpha=[a_{ij}]_{N\times{N}} A=[aij​]N×N​,其中 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\le{i,j}\le{N} aij​=P(yt+1​=sj​∣yt​=si​),1≤i,j≤N,

    表示在任意时刻 t t t,若状态为 s i s_i si​,则下一时刻状态为 s j s_j sj​的概率.

  • 输出观测概率:根据状态获得各观测值的概率,通常记为矩阵 B = [ b i j ] M × N \Beta=[b_{ij}]_{M\times{N}} B=[bij​]M×N​,其中 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\le{i}\le{N},1\le{j}\le{M} bij​=P(xt​=oj​∣yt​=si​),1≤i≤N,1≤j≤M,表示在任意时刻 t t t, 若状态为 s i s_i si​则观测值 o j o_j oj​被获取的概率.

已知状态空间 Y \mathcal{Y} Y、观测空间 X \mathcal{X} X,以及以上三组参数,就能确定一个隐马尔可夫模型,通常以 λ = [ A , B , π ] \lambda=[\Alpha, \Beta, \pi] λ=[A,B,π]指代。HMM应用中,我们主要解决三类基本问题:

  1. 概率计算问题,即给定模型 λ = [ A , B , π ] \lambda=[\Alpha, \Beta, \pi] λ=[A,B,π],计算观测序列 x = { x 1 , x 2 , … , x n } x=\{x_1, x_2, \dots, x_n\} x={x1​,x2​,…,xn​}产生时的概率 P ( x ∣ λ ) P(x|\lambda) P(x∣λ). 概率越高,模型与实际观测序列越匹配.
  2. 预测问题,即给定模型 λ = [ A , B , π ] \lambda=[\Alpha, \Beta, \pi] λ=[A,B,π]和观测序列 x = { x 1 , x 2 , … , x n } x=\{x_1, x_2, \dots, x_n\} x={x1​,x2​,…,xn​},推断最有可能的状态序列 { y 1 , y 2 , … , y n } \{y_1, y_2, \ldots, y_n\} {y1​,y2​,…,yn​}. 主要解决标注问题和解码问题,比如词性标注和拼音输入法.
  3. 学习问题,即给定观测序列 x = { x 1 , x 2 , … , x n } x=\{x_1, x_2, \dots, x_n\} x={x1​,x2​,…,xn​},调整模型参数 λ = [ A , B , π ] \lambda=[\Alpha, \Beta, \pi] λ=[A,B,π]使该序列出现的概率 P ( x ∣ λ ) P(x|\lambda) P(x∣λ)最大

这三类问题都有相对应的算法,具体内容将在(?.?)节介绍.

条件随机场

概率模型可以分为生成式模型和判别式模型。生成式模型直接对联合分布进行建模,HMM就是一种生成式模型,而判别式模型对条件分布进行建模,条件随机场(Conditional Random Field, 简称CRF) 利用给定观测值后的条件概率建模,就是一种判别式模型,并且是无向图模型。

条件随机场是对隐马尔科夫模型的进一步推广,也是最大熵模型在序列问题上的拓展。条件随机场的最终形式使用了和最大熵模型一样的抽象特征函数,其模型和最大熵模型几乎是一样的。

条件随机场理论上可以拥有任意的图结构,只要能标记变量之间的条件独立性关系即可,但最常研究的是链式图,这与HMM的图结构有些相似。条件随机场同样需要解决隐马尔可夫模型的三类问题。

概率图模型入门(隐马尔可夫模型HMM、条件随机场CRF)

继续阅读