马尔可夫模型
在介绍隐马尔可夫模型之前,先来介绍马尔可夫模型。
我们知道,随机过程又称随机函数,是随时间而随机变化的过程。 马尔可夫模型(Markov model)描述了一类重要的随机过程。我们常常需要考察一个随机变量序列,这些随机变量并不是相互独立的,每个随机变量的值依赖于这个序列前面的状态。如果一个系统有N个有限状态S={s1,s2,…,sN},那么随着时间的推移,该系统将从某一状态转移到另一状态。Q=(q1,q2,…,qT)为一个随机变量序列,随机变量的取值为状态集S中的某个状态,假定在时间t的状态记为qt。对该系统的描述通常需要给出当前时刻t的状态和其前面所有状态的关系:系统在时间t处于状态sj的概率取决于其在时间1,2,…,t-1的状态,该概率为
P(qt=sj|qt-1=si,qt-2=sk,…)
如果在特定条件下,系统在时间t的状态只与其在时间t-1的状态相关,即
则该系统构成一个离散的一阶马尔可夫链(Markov chain)。
进一步,如果只考虑式(6-1)独立于时间t的随机过程:
该随机过程为马尔可夫模型。
显然,有N个状态的一阶马尔可夫过程有N^2次状态转移,其N^2个状态转移概率可以表示成一个状态转移矩阵。例如,一段文字中名词、动词、形容词三类词性出现的情况可由三个状态的马尔可夫模型描述:
状态s1:名词
状态s2:动词
状态s3:形容词
假设状态之间的转移矩阵如下:
如果在该段文字中某一句子的第一个词为名词,那么根据这一模型M,在该句子中这三类词的出现顺序为O=“名动形名”的概率为:
马尔可夫模型又可视为随机的有限状态机。如下图所示,圆圈表示状态,状态之间的转移用带箭头的弧表示,弧上的数字为状态转移的概率,初始状态用标记为start的输入箭头表示,假设任何状态都可作为终止状态。图6-4中省略了转移概率为0的弧,对于每个状态来说,发出弧上的概率和为1。从图可以看出,马尔可夫模型可以看作是一个转移弧上有概率的非确定的有限状态自动机。
一个马尔可夫链的状态序列的概率可以通过计算形成该状态序列的所有状态之间转移弧上的概率乘积而得出,即
根据上图给出的状态转移概率,我们可以得到:
根据之前介绍的n元语法模型,当n=2时,实际上就是一个马尔可夫模型。但是,当n≥3时,就不是一个马尔可夫模型,因为它不符合马尔可夫模型的基本约束。不过,对于n≥3的n元语法模型确定数量的历史来说,可以通过将状态空间描述成多重前面状态的交叉乘积的方式,将其转换成马尔可夫模型。在这种情况下,可将其称为m阶马尔可夫模型,这里的m是用于预测下一个状态的前面状态的个数,那么,n元语法模型就是n-1阶马尔可夫模型。
隐马尔可夫模型(HMM)
在马尔可夫模型中,每个状态代表了一个可观察的事件,所以,马尔可夫模型有时又称作可视马尔可夫模型(visible Markov model, VMM),这在某种程度上限制了模型的适应性。在隐马尔可夫模型(HMM)中,我们不知道模型所经过的状态序列,只知道状态的概率函数,也就是说,观察到的事件是状态的随机函数,因此,该模型是一个双重的随机过程。其中,模型的状态转换过程是不可观察的,即隐蔽的,可观察事件的随机过程是隐蔽的状态转换过程的随机函数。
可以用下面的图6-5说明隐马尔可夫模型的基本原理。
我们可以通过如下例子来说明HMM的含义。假定一暗室中有N个口袋,每个口袋中有M种不同颜色的球。一个实验员根据某一概率分布随机地选取一个初始口袋,从中根据不同颜色的球的概率分布,随机地取出一个球,并向室外的人报告该球的颜色。然后,再根据口袋的概率分布选择另一个口袋,根据不同颜色的球的概率分布从中随机选择另外一个球。重复进行这个过程。对于暗室外边的人来说,可观察的过程只是不同颜色的球的序列,而口袋的序列是不可观察的。在这个过程中,每个口袋对应于HMM中的状态,球的颜色对应于HMM中状态的输出符号,从一个口袋转向另一个口袋对应于状态转换,从口袋中取出球的颜色对应于从一个状态输出的观察符号。
通过上例可以看出,一个HMM由如下几个部分组成:
(1) 模型中状态的数目N(上例中口袋的数目);
(2) 从每个状态可能输出的不同符号的数目M(上例中球的不同颜色的数目);
(3) 状态转移概率矩阵A={aij}(aij为实验员从一个口袋(状态si)转向另一个口袋(sj)取球的概率)
(4) 从状态sj观察到符号vk的概率分布矩阵B