上一节对整个概率模型的划分进行了阶段性介绍,本节将系统介绍隐马尔可夫模型(Hidden Markov Model,HMM)。
动态概率图模型中的隐变量随着时间/序列信息的变化而变化,如下图所示(右)。相比于静态概率图模型(左),如高斯混合模型,样本点一旦固定下来,对应的隐变量参数不再发生变化。
如果 系统状态中的每一个隐变量状态 Z \mathcal Z Z的取值范围是离散的,以系统状态中 t t t时刻对应的隐变量 Z ( t ) \mathcal Z ^{(t)} Z(t)为例, z ( i ) t z^{(i)t} z(i)t表示 t t t时刻的样本点 x ( i ) x^{(i)} x(i)对应的隐变量,存在 K \mathcal K K个离散结果供 z ( i ) t z^{(i)t} z(i)t选择。即:
z ( i ) t ∈ { z 1 ( i ) t , z 2 ( i ) t , ⋯ , z K ( i ) t } z^{(i)t} \in \{z_1^{(i)t},z_2^{(i)t},\cdots,z_{\mathcal K}^{(i)t}\} z(i)t∈{z1(i)t,z2(i)t,⋯,zK(i)t}
满足上述条件的动态模型,其代表模型是隐马尔可夫模型。
对隐马尔可夫模型中出现的概念进行符号定义:
定义 观测变量(Observed Variable)使用符号 O \mathcal O O进行表示。各时刻的观测变量表示如下:
O = { o 1 , o 2 , ⋯ , o t , o t + 1 , ⋯ } \mathcal O = \{o_1,o_2,\cdots,o_t,o_{t+1},\cdots\} O={o1,o2,⋯,ot,ot+1,⋯}
同理,定义 状态变量(State Variable)使用符号 I \mathcal I I进行表示,各时刻的状态变量表示如下:
指的是隐变量,基于系统状态的另一种表达方式。
I = { i 1 , i 2 , ⋯ , i t , i t + 1 , ⋯ } \mathcal I = \{i_1,i_2,\cdots,i_t,i_{t+1},\cdots\} I={i1,i2,⋯,it,it+1,⋯}
根据上面提到的动态模型,任意时刻的状态变量 i s ∈ I ( s = 1 , 2 , ⋯ , t , t + 1 , ⋯ ) i_s \in \mathcal I(s = 1,2,\cdots,t,t+1,\cdots) is∈I(s=1,2,⋯,t,t+1,⋯),其取值范围是离散的,因而定义 状态变量取值范围的离散集合 为 Q \mathcal Q Q,并且 Q \mathcal Q Q集合中包含 K \mathcal K K个元素。具体表示如下:
Q = { q 1 , q 2 , ⋯ , q K } \mathcal Q = \{q_1,q_2,\cdots,q_{\mathcal K}\} Q={q1,q2,⋯,qK}
同理,定义观测变量的取值结果也是离散的,并定义 观测变量取值范围的离散集合 为 V \mathcal V V,并且 V \mathcal V V集合中包含 M \mathcal M M个元素。具体表示如下:
V = { v 1 , v 2 , ⋯ , v M } \mathcal V = \{v_1,v_2,\cdots,v_{\mathcal M}\} V={v1,v2,⋯,vM}
隐马尔可夫模型不同于其他静态模型的表达形式,其概率模型参数 λ \lambda λ表示如下:
λ = ( π , A , B ) \lambda = (\pi,\mathcal A,\mathcal B) λ=(π,A,B)
其中:
基于上述定义:
状态转移矩阵 A \mathcal A A 表示如下:
A = [ a i j ] a i j = P ( i t + 1 = q j ∣ i t = q i ) i , j ∈ { 1 , 2 , ⋯ , K } \mathcal A = [a_{ij}] \quad a_{ij} = P(i_{t+1}=q_j \mid i_t = q_i) \quad i,j \in \{1,2,\cdots,\mathcal K\} A=[aij]aij=P(it+1=qj∣it=qi)i,j∈{1,2,⋯,K}
其中, a i j a_{ij} aij表示状态转移矩阵 A \mathcal A A中 第 i i i行第 j j j列 的元素; P ( i t + 1 = q j ∣ i t = q i ) P(i_{t+1}=q_j \mid i_t = q_i) P(it+1=qj∣it=qi)表示 在 t t t时刻下的状态变量 i t i_t it取值 q i q_i qi的条件下,下一时刻的状态变量 i t + 1 i_{t+1} it+1取值 q j q_j qj的概率。
基于该定义,发现:状态转移矩阵 A \mathcal A A是一个方阵,并且是 K \mathcal K K阶方阵:
A = ( a 11 , a 12 , ⋯ , a 1 K a 21 , a 22 , ⋯ , a 2 K ⋮ a K 1 , a K 2 , ⋯ , a K K ) K × K \mathcal A = \begin{pmatrix}a_{11},a_{12},\cdots,a_{1\mathcal K} \\ a_{21},a_{22},\cdots,a_{2\mathcal K} \\ \vdots \\a_{\mathcal K1},a_{\mathcal K2},\cdots,a_{\mathcal K \mathcal K}\end{pmatrix}_{\mathcal K \times \mathcal K} A=⎝ ⎛a11,a12,⋯,a1Ka21,a22,⋯,a2K⋮aK1,aK2,⋯,aKK⎠ ⎞K×K
整个状态转移过程,共用同一个状态转移矩阵 A \mathcal A A,类似于查表。而方阵中的每一个元素均表示一个概率结果。
状态转移过程图像表示如下:
同理,发射矩阵 B \mathcal B B 表示如下:
B = [ b j ( k ) ] b j ( k ) = P ( o t = v k ∣ i t = q j ) j ∈ { 1 , 2 , ⋯ , K } ; k ∈ { 1 , 2 , ⋯ , M } \mathcal B = [b_{j}(k)] \quad b_j(k) = P(o_t = v_k\mid i_{t} = q_j) \quad j \in \{1,2,\cdots,\mathcal K\};k \in \{1,2,\cdots,\mathcal M\} B=[bj(k)]bj(k)=P(ot=vk∣it=qj)j∈{1,2,⋯,K};k∈{1,2,⋯,M}
其中 b j ( k ) b_j(k) bj(k)表示发射矩阵 B \mathcal B B中的第 j j j行第 k k k列元素;
P ( o t = v k ∣ i t = q j ) P(o_t = v_k\mid i_{t} = q_j) P(ot=vk∣it=qj)表示 t t t时刻下状态变量 i t i_t it取值 q j q_j qj的条件下,对应时刻的观测变量 o t o_t ot取值 v k v_k vk的概率。
和状态转移矩阵 A \mathcal A A不同的是,发射矩阵 B \mathcal B B是一个 K × M \mathcal K \times \mathcal M K×M的矩阵:
B = ( b 1 ( 1 ) , b 1 ( 2 ) , ⋯ , b 1 ( M ) b 2 ( 1 ) , b 2 ( 2 ) , ⋯ , b 2 ( M ) ⋮ b K ( 1 ) , b K ( 2 ) , ⋯ , b K ( M ) ) K × M \mathcal B = \begin{pmatrix}b_1(1),b_1(2),\cdots,b_1(\mathcal M) \\ b_2(1),b_2(2),\cdots,b_2(\mathcal M) \\ \vdots \\ b_{\mathcal K}(1),b_{\mathcal K}(2),\cdots,b_{\mathcal K}(\mathcal M)\end{pmatrix}_{\mathcal K \times \mathcal M} B=⎝ ⎛b1(1),b1(2),⋯,b1(M)b2(1),b2(2),⋯,b2(M)⋮bK(1),bK(2),⋯,bK(M)⎠ ⎞K×M
同上,每次求解 P ( o t = v k ∣ i t = q j ) P(o_t = v_k\mid i_{t} = q_j) P(ot=vk∣it=qj),均使用同一个发射矩阵。矩阵中的每一个元素也均表示一个概率结果。
状态发射过程图像表示如下:
π \pi π表示初始时刻的概率分布,当 t = 1 t=1 t=1时,状态 i 1 i_1 i1存在 K \mathcal K K种取值:
需要注意的点:这个初始概率分布是’状态变量‘(隐变量)的初始分布。
i 1 ∈ { q 1 , q 2 , ⋯ , q K } i_1 \in \{q_1,q_2,\cdots,q_{\mathcal K}\} i1∈{q1,q2,⋯,qK}
因此, π \pi π表示一个向量,向量元素表示 i 1 i_1 i1取各离散结果 q 1 , q 2 , ⋯ , q K q_1,q_2,\cdots,q_{\mathcal K} q1,q2,⋯,qK的概率值。即:
π = ( p 1 p 2 ⋮ p K ) = ( P ( i 1 = q 1 ) P ( i 1 = q 2 ) ⋮ P ( i 1 = q K ) ) K × 1 ∑ k = 1 K P ( i 1 = q k ) = 1 \pi = \begin{pmatrix}p_1 \\p_2 \\ \vdots \\ p_{\mathcal K}\end{pmatrix} = \begin{pmatrix}P(i_1 = q_1) \\ P(i_1 = q_2) \\ \vdots \\P(i_1 = q_{\mathcal K})\end{pmatrix}_{\mathcal K \times 1} \sum_{k=1}^{\mathcal K} P(i_1 = q_k) = 1 π=⎝ ⎛p1p2⋮pK⎠ ⎞=⎝ ⎛P(i1=q1)P(i1=q2)⋮P(i1=qK)⎠ ⎞K×1k=1∑KP(i1=qk)=1
齐次马尔可夫假设的核心是无后效性。它是关于 状态变量 I \mathcal I I后验概率的一个假设。具体表示为:某时刻状态变量 i t + 1 i_{t+1} it+1的后验概率,只和前一时刻的状态变量 i t i_t it相关,与其他变量无关。
数学符号表示如下:
P ( i t + 1 ∣ i t , i t − 1 , ⋯ , i 1 , o t , o t − 1 , ⋯ , o 1 ) = P ( i t + 1 ∣ i t ) P(i_{t+1} \mid i_t,i_{t-1},\cdots,i_1,o_t,o_{t-1},\cdots,o_1) = P(i_{t+1} \mid i_t) P(it+1∣it,it−1,⋯,i1,ot,ot−1,⋯,o1)=P(it+1∣it)
和齐次马尔可夫假设类似,它的核心是观测独立性。并且该假设是关于 观测变量 O \mathcal O O的一个假设。具体表示为: 某时刻观测变量 o t o_{t} ot的后验概率,只和对应时刻的状态变量 i t i_t it相关,与其他变量无关。
P ( o t ∣ i t , i t − 1 , ⋯ , i 1 , o t − 1 , ⋯ , o 1 ) = P ( o t ∣ i t ) P(o_t \mid i_t,i_{t-1},\cdots,i_1,o_{t-1},\cdots,o_1) = P(o_t \mid i_t) P(ot∣it,it−1,⋯,i1,ot−1,⋯,o1)=P(ot∣it)
下一节将介绍隐马尔可夫模型的求值问题 P ( O ∣ λ ) P(\mathcal O \mid \lambda) P(O∣λ)。
相关参考:
机器学习-隐马尔可夫模型1 -背景介绍
机器学习-隐马尔可夫模型2 -背景介绍