在马尔可夫模型中,每一个状态都是可观察的序列,是状态关于时间的随机过程,也成为可视马尔可夫模型(Visible Markov Model,VMM)。隐马尔科夫模型(Hidden Markov Model,HMM)中的状态是不可见的,我们可以看到的是状态表现出来的观察值和状态的概率函数。在隐马模型中,观察值是关于状态的随机过程,而状态是关于时间的随机过程,因此隐马模型是一个双重随机过程。
当考虑潜在事件随机生成表面事件时,可以用HMM解决。
举个例子,说明隐马模型:
有4个暗箱,放在暗处,每个箱子里有3种不用颜色的球(红、橙、蓝),从箱子往外拿球是有一定规律的,现在工作人员从暗处的箱子中取球,去了5次,我们看到额观察序列是:红蓝蓝橙红。这个过程就是一个隐马模型。暗处的箱子表示状态,箱子的个数表示状态的个数,球的颜色表示状态的输出值,球的颜色个数表示状态输出观察状态的个数,从一个箱子转换成另一个箱子表示状态转换,从暗处箱子中取出的球的观察颜色表示状态的输出序列。
因此可以归纳隐马模型的5个组成状态:
(1)模型中的状态个数N(例子中的箱子个数);
(2)每个状态的可以输出的不同观测值M(例子中的球的颜色数目);
(3)状态转移矩阵A= {aij}(例子中aij表示从第i个箱子转移到第j个箱子的概率),其中aij满足条件:
I. aij≥0, 1≤i,j≤N
II. aij= P(qt=sj|qt-1=si),
III. =1
(4)发射矩阵B={bj(k)},即从状态sj观察到符号vk的概率分布矩阵.(bj(k)在例子中表示从的j个箱子中拿出第k个颜色的概率),其中bj(k)满足条件:
I. bj(k)≥0, 1≤j≤N; 1≤k≤M
II. bj(k)= P(Ot=vk|qt=sj),
III. =1
(5)初始状态概率分布π = {πj}.(例子中一开始到第j个箱子的概率),其中πj满足条件:
I. πj(k)≥0, 1≤j≤N
II. πj= P(q1=sj),
III. =1
一般,一个HMM即为五元组μ={N,M,A,B,π},为了简便,常简记为三元组μ={A,B,π}。
HMM有三个基本问题:
(1)评估问题:给定一个观察序列O=O1O2...OT和模型μ={A,B,π},如何快速地计算给定模型μ的条件下,观察序列O=O1O2...OT的概率,即P(O|μ)?
(2)解码问题:给定一个观察序列O=O1O2...OT和模型μ={A,B,π},如何快速地选择在给定模型μ的条件下在一定意义下”最优“的状态序列Q=Q1Q2...QT,是该状态序列”最好地"解释观察序列?
(3)学习问题:给定一个观察序列O=O1O2...OT,如何调整参数μ={A,B,π},使得P(O|M)最大?
针对HMM的三个基本问题,相应的算法是:
(1)评估问题:前向后向算法
(2)解码问题:维特比算法(Viterbi)
(3)学习问题:前向后向算法(BAUM-WELCH)。