隐马尔可夫模型(Hidden Markov Model, HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔科夫链随机生成的观测序列的过程,属于生成模型,是概率模型的一种。本章主要是总结HMM模型的概率计算算法、学习算法以及预测算法。HMM在语音识别、自然语言处理NLP等领域有着广泛的应用。
概率图模型常常是为了描述随机变量之间的关系(是不是独立的),分为有向图和无向图,而HMM主要用有向图。
概率图模型
在有向图中,用圆圈⭕表示随机变量,可以是一维的,也可以是多维的,既可以是离散随机变量,也可以是连续的,⭕叫做结点,图是由结点和边构成的,在有向图中就是有向边,要描述Y受X影响的,就将X和Y连接起来,并用箭头描述从X指向Y的方向。
随机变量之间的关系
一个箭头可以表示两个随机变量之间的关系,引入条件独立的概念,在概率图模型中,假设有三个随机变量X,Y,Z,一般来说,隐变量在图模型中用⭕表示,如果能观察到一个变量取值的时候,用带阴影的圆\bullet表示。在掷硬币的例子中,第1个结果是观察不到的,用空心圆⭕表示,第2个结果是可以观察到的,用带阴影的圆●表示。为什么要强调隐变量和观测变量,圆是空心⭕还是阴影●会影响到随机变量的依赖性。
第一种情况
随机变量都是空心圆,三个随机变量都是观测不到的。即:
P ( X , Z ) ≠ P ( X ) ( Z ) P(X,Z) \neq P(X)(Z) P(X,Z)=P(X)(Z)
第二种情况
Y是带阴影的圆,随机变量Y是可以观测到的,可得P(X,Z|Y)=P(X|Y)P(Z|Y),从箭头的指向看,信息是从X传到Y,Y传到Z,一旦将Y固定了,信息的流通相当于被Y观察到的值堵住了,所以当观察到Y时,X和Z就是独立的。
第三种情况
Y指向了两边,这个时候单看X和Z是不独立的,满足P(X,Z) ≠ P(X)P(Z),如果给定Y,X和Z是独立的,满足
P ( X , Z ∣ Y ) = P ( X ∣ Y ) P ( Z ∣ Y ) P(X,Z|Y)=P(X|Y)P(Z|Y) P(X,Z∣Y)=P(X∣Y)P(Z∣Y)
第四种情况
随机变量满足:
P ( X , Z ) = P ( X ) P ( Z ) , P ( X , Z ∣ Y ) ≠ P ( X ∣ Y ) P ( Z ∣ Y ) P(X,Z)=P(X)P(Z),P(X,Z|Y)\neq P(X|Y)P(Z|Y) P(X,Z)=P(X)P(Z),P(X,Z∣Y)=P(X∣Y)P(Z∣Y)
HMM模型
定义
隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔科夫链随机生成的状态序列称为状态序列(state sequence),每个状态生成一个观测值,而由此生成的观测的随机序列称为观测序列(observation sequence).
HMM是一个三元组,由初始状态概率向量、状态转移概率矩阵和观测概率矩阵决定,即:
λ = ( A , B , π ) , 其 中 π 是 初 始 状 态 概 率 向 量 , A 是 状 态 转 移 概 率 矩 阵 , B 是 观 测 概 率 矩 阵 \lambda = (A,B,\pi),其中\pi是初始状态概率向量,A是状态转移概率矩阵,B是观测概率矩阵 λ=(A,B,π),其中π是初始状态概率向量,A是状态转移概率矩阵,B是观测概率矩阵
定义的形式如下:
设 Q 是 所 有 可 能 的 状 态 的 集 合 , V 是 所 有 可 能 观 测 的 集 合 。 Q = { q 1 , q 2 , q 3 . . . q N } , V = { v 1 , v 2 , . . v M } , 其 中 N 是 所 有 可 能 的 状 态 数 , M 是 所 有 观 测 数 。 I 是 长 度 为 T 的 状 态 序 列 , O 是 对 应 的 观 测 序 列 。 I = ( i 1 , i 2 . . . i T ) , O = ( o 1 , o 2 . . . o T ) . A 是 状 态 转 移 概 率 矩 阵 : A = [ a i j ] N × N , 其 中 a i j = P ( i t + 1 = q j ∣ i t = q t ) , i = 1 , 2 , 3... N ; j = 1 , 2 , . . . N 是 时 刻 t 处 于 状 态 q i 的 条 件 下 在 时 刻 t + 1 转 移 到 状 态 q j 的 概 率 。 B 是 观 测 概 率 矩 阵 : B = [ b j ( k ) ] N × M , 其 中 , b j ( k ) = P ( o t = v k ∣ i t = q t ) , k = 1 , 2 , . . M ; j = 1 , 2 , . . . N 是 在 时 刻 t 处 于 状 态 q j 的 条 件 下 生 成 观 测 v k 的 概 率 。 π 是 初 始 状 态 概 率 向 量 : π = ( π i ) , 其 中 , π i = P ( i j = q i ) , i = 1 , 2 , . . . N 是 在 时 刻 t = 1 处 于 状 态 q i 的 概 率 。 设Q是所有可能的状态的集合,V是所有可能观测的集合。Q=\{q_1,q_2,q_3...q_N\},V=\{v_1,v_2,..v_M\},\\ 其中N是所有可能的状态数,M是所有观测数。\\ I是长度为T的状态序列,O是对应的观测序列。I=(i_1,i_2...i_T),O=(o_1,o_2...o_T).\\ A是状态转移概率矩阵:\\ A=[a_{ij}]_{N \times N},其中a_{ij}=P(i_{t+1}=q_j|i_t=q_t),i=1,2,3...N;j=1,2,...N\\ 是时刻t处于状态q_i的条件下在时刻t+1转移到状态q_j的概率。\\ B是观测概率矩阵:\\ B=[b_j(k)]_{N \times M},其中,b_j(k)=P(o_t=v_k|i_t=q_t),k=1,2,..M;j=1,2,...N\\ 是在时刻t处于状态q_j的条件下生成观测v_k的概率。\\ \pi是初始状态概率向量:\\ \pi=(\pi_i),其中,\pi_i=P(i_j=q_i),i=1,2,...N\\ 是在时刻t=1处于状态q_i的概率。\\ 设Q是所有可能的状态的集合,V是所有可能观测的集合。Q={
q1,q2,q3...qN},V={
v1,v2,..vM},其中N是所有可能的状态数,M是所有观测数。I是长度为T的状态序列,O是对应的观测序列。I=(i1,i2...iT),O=(o1,o2...oT).A是状态转移概率矩阵:A=[aij]N×N,其中aij=P(it+1=qj∣it=qt),i=1,2,3...N;j=1,2,...N是时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率。B是观测概率矩阵:B=[bj(k)]N×M,其中,bj(k)=P(ot=vk∣it=qt),k=1,2,..M;j=1,2,...N是在时刻t处于状态qj的条件下生成观测vk的概率。π是初始状态概率向量:π=(πi),其中,πi=P(ij=qi),i=1,2,...N是在时刻t=1处于状态qi的概率。
从定义可知,隐马尔科夫模型做了两个基本假设:
-
齐次马尔可夫性假设。即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一个时刻的状态,与其他时刻的状态以及预测无关,也与时刻t无关。
P ( i t ∣ i t − 1 , o t − 1 , . . . i 1 , o 1 ) = P ( i t ∣ i t − 1 ) , t = 1 , 2 , . . . T P(i_t|i_{t-1},o_{t-1},...i_1,o_1)=P(i_t|i_{t-1}),t=1,2,...T P(it∣it−1,ot−1,...i1,o1)=P(it∣it−1),t=1,2,...T -
观测独立性假设。即假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他时刻观测以及状态无关。
P ( o t ∣ i T , o T , o T − 1 , o T − 1 , . . . , i t + 1 , o t + 1 , i t , i t − 1 , o t − 1 , . . . , i 1 , o 1 ) = P ( o t ∣ i t ) P(o_t|i_T,o_T,o_{T-1},o_{T-1},...,i_{t+1},o_{t+1},i_{t},i_{t-1},o_{t-1},...,i_1,o_1)=P(o_t|i_t) P(ot∣iT,oT,oT−1,oT−1,