隐马尔可夫模型(一)
隐马尔科夫模型(HMM)是可用于标注问题的统计学方法。
隐马尔科夫模型的基本概念
隐马尔科夫模型的定义
- 隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
- 状态序列:隐藏的马尔可夫链随机生成的状态的序列
- 观测序列:每个状态产生一个观测
- 隐马尔可夫模型的形式定义:
- 相关参数
- 设
Q
Q
Q是所有可能的状态的集合,
V
V
V是所有可能的观测的集合,
Q = { q 1 , q 2 , ⋯   , q N } , V = { v 1 , v 2 , ⋯   , v M } Q = \left\{ {{q_1},{q_2}, \cdots ,{q_N}} \right\},V = \left\{ {{v_1},{v_2}, \cdots ,{v_M}} \right\} Q={q1,q2,⋯,qN},V={v1,v2,⋯,vM}
其中 N N N为可能的状态数, M M M为可能的观测数。 -
I
I
I是长度为
T
T
T的状态序列,
O
O
O是对应的观测序列
I = { i 1 , i 2 , ⋯   , i T } , O = { o 1 , o 2 , ⋯   , o T } I = \left\{ {{i_1},{i_2}, \cdots ,{i_T}} \right\},O = \left\{ {{o_1},{o_2}, \cdots ,{o_T}} \right\} I={i1,i2,⋯,iT},O={o1,o2,⋯,oT} -
A
A
A是状态转移概率矩阵
A = [ a i j ] N × N A = {\left[ {{a_{ij}}} \right]_{N \times N}} A=[aij]N×N
其中:
a i j = P ( i t + 1 = q j ∣ i t = q i ) , i = 1 , 2 , ⋯   , N ; j = 1 , 2 , ⋯   , N {a_{ij}} = P\left( {{i_{t + 1}} = {q_j}\left| {{i_t} = {q_i}} \right.} \right),i = 1,2, \cdots ,N;j = 1,2, \cdots ,N aij=P(it+1=qj∣it=qi),i=1,2,⋯,N;j=1,2,⋯,N
是在时刻 t t t处于状态 q i q_i qi的条件下在时刻 t + 1 t+1 t+1转移到状态 q j q_j qj的概率。 -
B
B
B为观测概率矩阵:
B = [ b j ( k ) ] N × N B = {\left[ {{b_j}\left( k \right)} \right]_{N \times N}} B=[bj(k)]N×N
其中
b j ( k ) = P ( o t = v k ∣ i t = q j ) , k = 1 , 2 , ⋯   , M ; j = 1 , 2 , ⋯   , N {b_j}\left( k \right) = P\left( {{o_t} = {v_k}\left| {{i_t} = {q_j}} \right.} \right),k = 1,2, \cdots ,M;j = 1,2, \cdots ,N bj(k)=P(ot=vk∣it=qj),k=1,2,⋯,M;j=1,2,⋯,N
是在时刻 t t t处于状态 q j q_j qj的条件下生成观测 v k v_k vk的概率。 -
π
\pi
π是初始状态概率向量:
π = ( π i ) \pi = \left( {{\pi _i}} \right) π=(πi)
其中
π i = P ( i 1 = q i ) , i = 1 , 2 , ⋯   , N {\pi _i} = P\left( {{i_1} = {q_i}} \right),i = 1,2, \cdots ,N πi=P(i1=qi),i=1,2,⋯,N
是时刻 t = 1 t=1 t=1处于状态 q i q_i qi的概率。
- 设
Q
Q
Q是所有可能的状态的集合,
V
V
V是所有可能的观测的集合,
- 隐马尔科夫模型表示
隐马尔科夫模型 λ \lambda λ可以用三元符号表示,即:
λ = ( A , B , π ) \lambda = \left( {A,B,\pi } \right) λ=(A,B,π)
A , B , π A,B,\pi A,B,π称为隐马尔科夫模型的三要素。
- 相关参数
隐马尔科夫模型的基本假设
- 齐次马尔可夫性假设
假设隐藏的马尔可夫链在任意时刻 t t t的状态只依赖于其前一时刻的状态,与其他均无关。 - 观测独立性假设
假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他均无关。
观测序列生成
- 输入:隐马尔科夫模型 λ = ( A , B , π ) \lambda = \left( {A,B,\pi } \right) λ=(A,B,π),观测序列长度 T T T
- 输出:观测序列 O O O
- 流程:
- 按照初始状态分布 π \pi π产生状态 i 1 i_1 i1
- 令 t = 1 t=1 t=1
- 按照状态 i t i_t it的观测概率分布 b i t ( k ) b_{i_t}\left(k\right) bit(k)生成 o t o_t ot
- 按照状态 i t i_t it的转移概率分布 { a i t i t + 1 } \left\{ {{a_{{i_t}{i_{t + 1}}}}} \right\} {aitit+1}产生状态 i t + 1 , i t + 1 = 1 , 2 , ⋯   , N i_{t+1},i_{t+1}=1,2,\cdots,N it+1,it+1=1,2,⋯,N
- 令 t = t + 1 t=t+1 t=t+1,如果 t < T t<T t<T,则返回第三步,否则终止。
隐马尔可夫模型的三个基本问题
- 概率计算问题
给定模型 λ = ( A , B , π ) \lambda = \left( {A,B,\pi } \right) λ=(A,B,π)和观测序列 O O O,计算在模型 λ \lambda λ下观测序列 O O O出现的概率 P ( O ∣ λ ) P\left( {O\left| \lambda \right.} \right) P(O∣λ)。 - 学习问题
已知观测序列 O O O,估计模型 λ = ( A , B , π ) \lambda = \left( {A,B,\pi } \right) λ=(A,B,π)参数,使得在该模型下观测序列概率 P ( O ∣ λ ) P\left( {O\left| \lambda \right.} \right) P(O∣λ)最大,即使用极大似然估计的方法估计参数。 - 预测问题(解码问题)
已知模型 λ = ( A , B , π ) \lambda = \left( {A,B,\pi } \right) λ=(A,B,π)和观测序列 O O O,求对给定观测序列条件概率 P ( I ∣ O ) P\left( {I\left| O \right.} \right) P(I∣O)最大的状态序列 I I I,即给定观测序列,求最有可能的对应的状态序列。
参考文献
《统计学习方法》