隐马尔可夫模型学习
基本概念
HMM五元组
- 观测序列-O
- 状态序列-I
- 初始状态概率向量-π
- 状态转移概率矩阵-A
- 观测概率矩阵-B
HMM三要素
- 初始状态概率向量-π
- 状态转移概率矩阵-A
- 观测概率矩阵-B
两个基本假设
- 齐次马尔科夫性假设
P ( i t ∣ i t − 1 , o t − 1 , … , i 1 , o 1 ) = P ( i t ∣ i t − 1 ) , t = 1 , 2 , … , T \begin{aligned} P(i_t|i_{t-1},o_{t-1},\ldots ,i_1,o_1)=P(i_t|i_{t-1}),~~~~t=1,2,\ldots ,T \end{aligned} P(it∣it−1,ot−1,…,i1,o1)=P(it∣it−1), t=1,2,…,T - 观测独立性假设
P ( o t ∣ i T , o T , i 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 ) \begin{aligned} P(o_t|i_T,o_T,i_{T-1},o_{T-1},\ldots ,i_{t+1},o_{t+1},i_t,i_{t-1},o_{t-1},\ldots ,i_1,o_1)=P(o_t|i_t) \end{aligned} P(ot∣iT,oT,iT−1,oT−1,…,it+1,ot+1,it,it−1,ot−1,…,i1,o1)=P(ot∣it)
案例
有三个骰子:
- 六面体: ( 1 , 2 , 3 , 4 , 5 , 6 ) (1,2,3,4,5,6) (1,2,3,4,5,6)
- 八面体: ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ) (1,2,3,4,5,6,7,8) (1,2,3,4,5,6,7,8)
- 四面体:
(
1
,
2
,
3
,
4
)
(1,2,3,4)
(1,2,3,4)
放到黑盒子,有放回的抽取骰子并投掷骰子观测此时的数字。
状态集合: Q = { D 4 , D 6 , D 8 } , N = 3 Q=\{D4,D6,D8\},N=3 Q={D4,D6,D8},N=3
观测集合: V = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } , M = 8 V=\{1,2,3,4,5,6,7,8\},M=8 V={1,2,3,4,5,6,7,8},M=8
观测序列: O = { 1 , 6 , 3 , 5 , 2 , 7 , 3 , 5 , 2 , 4 } O=\{1,6,3,5,2,7,3,5,2,4\} O={1,6,3,5,2,7,3,5,2,4}
初试概率分布: π = ( 1 3 , 1 3 , 1 3 ) T \pi =(\frac{1}{3},\frac{1}{3},\frac{1}{3})^{\text{T}} π=(31,31,31)T
状态转移概率分布: A = [ 0.1 0.5 0.4 0.4 0.1 0.5 0.3 0.5 0.2 ] A=\left[ \begin{matrix}0.1&0.5&0.4 \\ 0.4&0.1&0.5 \\0.3&0.5&0.2 \end{matrix}\right] A=⎣⎡0.10.40.30.50.10.50.40.50.2⎦⎤
观测概率分布: B = [ 0.25 0.25 0.25 0.25 0 0 0 0 1 6 1 6 1 6 1 6 1 6 1 6 0 0 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 ] B=\left[ \begin{matrix}0.25&0.25&0.25&0.25&0&0&0&0 \\ \frac{1}{6}&\frac{1}{6}&\frac{1}{6}&\frac{1}{6}&\frac{1}{6}&\frac{1}{6}&0&0 \\0.125&0.125&0.125&0.125&0.125&0.125&0.125&0.125\end{matrix}\right] B=⎣⎡0.25610.1250.25610.1250.25610.1250.25610.1250610.1250610.125000.125000.125⎦⎤
HMM三类问题
- 概率计算问题:给定模型 λ = ( π , A , B ) \lambda=(\pi ,A,B) λ=(π,A,B)和状态序列O的情况下,求在模型 λ = ( π , A , B ) \lambda=(\pi ,A,B) λ=(π,A,B)下观测序列O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)。(Forward-backward算法)
- 解码问题:已知模型 λ = ( π , A , B ) \lambda=(\pi ,A,B) λ=(π,A,B)和观测序列O,求对给定观测序列条件概率 P ( I ∣ O ) P(I|O) P(I∣O)最大的状态序列,即给定观测序列,求最有可能的对应状态序列。(viterbi算法)
- 学习问题:观测序列O已知的情况下,求解模型 λ = ( π , A , B ) \lambda=(\pi ,A,B) λ=(π,A,B)参数, 使得在该模型下观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)最大。(极大似然估计算法)