一、隐马尔科夫模型
在马尔科夫模型中,每一个状态代表了一个可以观察的事件,所以,马尔科夫模型有时称为可视马尔科夫模型(visible Markov model,VMM),这在某种程度上限制了模型的适应性。在隐马尔科夫模型(HMM)中,我们不知道模型所经过的状态序列,而只知道状态的概率函数,也就是说观察到的事件是状态的随机函数,此模型是一个双重的随机过程。其中,模型的状态转换过程是隐蔽的,可观察事件的随机过程是隐蔽的状态转换过程的随机函数。
二、隐马尔科夫模型的基本原理
下图是一个隐马尔科夫模型的示意图,用此图来说明HMM的原理。假设一个暗室中有N个口袋,每个口袋中有
2.1 HMM的组成部分
- 模型中状态的数目N(口袋的数目)
- 从每个状态可能输出的不同符号的数目
M (球的不同颜色的数目) - 状态转移概率矩阵A={aij},其中
aij=P(qt=sj|qt−1,si),1≤i,j≤Naij≥0∑j=1Naij=1 - 从状态Sj观察到符号vk的概率分布B={bj(k)},其中
bj(k)=P(Ot=vk|qt=sj),1≤j≤N,1≤k≤Mbj(k)≥0∑k=1Mbj(k)=1
观察符号的概率又称为发射概率。 - 初始状态的概率分布π={πi},其中
πi=P(q1=si),1≤i≤Nπi≥0∑i=1Nπi=1
一般地,一个HMM记为一个五元组μ=(S,K,A,B,π),其中,S为状态集合,
2.2 观察序列的生成
当考虑潜在事件随机地生成表面事件时,HMM非常有用。假设给定模型μ=(A,B,π),那么观察序列O=O1O2…OT可由下面的步骤产生:
1. 根据初始的状态概率分布πi选择一个初始的状态q1=si
2. 设t=1
3. 根据状态si的输出概率分布bi(k)输出O_t=v_k
4. 根据状态转移概率分布aij,将当前t时刻的状态转移到新的状态
5. t=t+1, 如果t<T,重复执行步骤3,4.否则,算法结束。