Hidden Markov Model 隐马尔可夫模型
隐马尔可夫模型也是一个生成模型。是一个用来描述系统隐性状态的转移和隐性状态的表现概率的概率模型。
概念
什么是隐性状态?
隐性的马尔科夫链随机生成一个状态序列,其中状态是隐性的,也即是外界观察不到的状态。我们称为隐性状态。下文简称状态。
状态之间转移的概率,由一个状态转移概率矩阵 A A A 表示:
A = [ a i j ] N × N a i j = P ( i t + 1 = q j ∣ i t = q i ) , i = 1 , . . . , N ; j = 1 , . . . , N A=[a_{ij}]_{N\times N} \\ a_{ij}=P(i_{t+1}=q_j|i_t=q_i),i=1,...,N;j=1,...,N A=[aij]N×Naij=P(it+1=qj∣it=qi),i=1,...,N;j=1,...,N
a i j a_{ij} aij 表示t时刻下的状态 q i q_i qi 在 t + 1 t+1 t+1 时刻转移到状态 q j q_j qj的概率。
什么是观测?
隐性状态的表现,也就是每个状态会生成一个对应的观测 observation,由此也产生一个观测序列。
观测概率矩阵用 B B B 表示:
B = [ b j ( k ) ] N × N b j ( k ) = P ( o t = v k ∣ i t = q t ) , k = 1 , . . . , M ; j = 1 , . . . , N B=[b_{j}(k)]_{N\times N} \\ b_j(k)=P(o_t=v_k|i_t=q_t),k=1,...,M;j=1,...,N B=[bj(k)]N×Nbj(k)=P(ot=vk∣it=qt),k=1,...,M;j=1,...,N
b j ( k ) b_j(k) bj(k) 表示t时刻下状态 q j q_j qj 生成观测 v k v_k vk 的概率。
初始状态概率分布,用 π \pi π 表示,表示初始时刻下每个状态的概率。
实际上,HMM观测不到系统状态的转移序列,只能观测到系统状态的表现序列。HMM模型可用一个三元组来表示,即 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) 。
HMM需满足的条件:
- 状态的转移必须满足马尔可夫性,即假设的马尔可夫链在任意t时刻下的状态都只与前一时刻相关,与其它时刻的状态及观测无关。
- 观测独立性假设。即观测之间是独立的。
- 状态必须能够大概被估计。
概率计算
给定HMM模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和当前 T T T 时刻的观测序列 O = ( o 1 , . . . o T ) O=(o_1,...o_T) O=(o1,...oT),计算观测序列出现的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)。
前向算法
前向概率:给定模型 λ \lambda λ, t t t 时刻观测序列为 o 1 , . . . , o t o_1,...,o_t o1,...,ot,且状态为 q i q_i qi 的概率。其实就是时序上从 t = 1 t=1 t=1 开始往后推
a t ( i ) = P ( o 1 , o 2 , . . . , o t , i t = q i ∣ λ ) a_t(i)=P(o_1,o_2,...,o_t,i_t=q_i|\lambda) at(i)=P(o1,o2,...,ot,it=qi∣λ)
观测序列的概率:
t = 1 : a 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . . , N t = 1 , 2 , . . . , T − 1 : a t + 1 ( i ) = [ ∑ j = 1 N a t ( j ) a j i ] b i ( o t + 1 ) , i = 1 , 2 , . . . , N P ( O ∣ λ ) = ∑ i = 1 N a T ( i ) t=1:\; a_1(i)=\pi_ib_i(o_1),i=1,2,...,N \\ t=1,2,...,T-1:\;a_{t+1}(i)=[\sum_{j=1}^N a_t(j) a_{ji}]b_i(o_{t+1}),i=1,2,...,N \\ P(O|\lambda)=\sum_{i=1}^N a_T(i) t=1:a1(i)=πibi(o1),i=1,2,