3.3.1 基本概念
1. 马尔可夫链
给定随机过程{X(t),t∈T},若它满足如下马尔可夫性质,则称{X(t),t∈T}为马尔可夫过程。状态离散的马尔可夫过程简称为马尔可夫链。假设=(X1,X2,…,Xn)是一马尔可夫链,根据贝叶斯规则,有
其中,,最后一个等式即为马尔可夫性质:
马尔可夫性质又称无后效性,即i时刻的条件概率分布只和其先前i-1时刻的状态有关。
以每日的天气状况为例,天气在晴、多云或阴雨几种状态下变化。若假设当天的天气状况只和前一天的天气状况有关,那么天气状况就可以用马尔可夫链表示。当然,实际天气状况可能远比这种假设复杂,可能要回溯好几天的天气状况。因此,也存在更为宽松的马尔可夫假设,即i时刻的条件概率分布只和其先前i-n时刻的状态有关,这种情况下的马尔可夫链称为n阶马尔可夫链。
当不考虑时间序号i时,可以将马尔可夫链描述成一个有限状态过程,状态Xi间的转移用概率函数P(s|s′)描述,这时可以用来对平稳系统进行建模:
P(Xi=s|Xi-1=s′)=P(s|s′)
(3-8)
考虑有N个离散状态{1,2,…,N}的马尔可夫链,时刻t时所处的状态记为st。该马尔可夫链共有N2种状态转移,每一个状态转移都有一个概率值,称为状态转移概率——这是从一个状态转移到另一个状态的概率。同时,每个状态还有一个初始概率,因此马尔可夫链的参数可以定义为
aij=P(st=j|st-1=i), 1≤i,j≤N
(3-9a)
πi=P(s1=i), 1≤i≤N
(3-9b)
其中,aij是从状态i变化到状态j的转移概率,πi是马尔可夫链从状态i开始的初始概率。所有的概率都满足约束条件:
仍以天气为例。经过观测,晴、多云和阴雨三个状态的转移概率如表3-1所示,那么根据某一天的观测,就可以计算出若干天后天气状况的概率了。例如,今天天气晴朗,那么明天还是晴天的可能性就为50%。
马尔可夫链之间的状态转移也常用图3-2所示的状态图表示,其中各节点之间的有向连线表示转移关系,连线旁的数字表示转移概率。指向节点自身的连线表示状态没有改变。使用状态图,可以很方便地分析多步转移的情况。例如,今天是晴天,那么后天依然是晴天的概率是多少呢?从图3-2中可以看出,从“晴”状态出发的路径有三条,再次回到“晴”的路径也是三条,因此经过两步返回晴天的情况就分为三种,即“晴、晴、晴”,“晴、多云、晴”和“晴、阴雨、晴”。那么根据加法原理和乘法原理,可以计算得到概率为0.5×0.5+0.2×0.3+0.3×0.3=0.4。
对于更长时间的状态转移,还可以利用状态转移网格图进行示意。图3-3所示即为对应图3-2的天气状况状态转移网格图。图3-2中同一时刻的所有状态按列排列,相邻时刻的状态通过连线相连,可以根据需要对该图延伸以涵盖足够长的时间片段。根据该图去分析状态间的转移,可以绘制出不同阶段的多条可能路径,便于分析和计算。图3-3中,用加粗线条标识了由“晴”状态经过两步以后到达“晴”状态的可能路径。
2. HMM
在上述例子中,天气的阴晴是可以直接观测到的。也就是说,在观测事件序列X和马尔可夫链状态序列S={s1,s2,…,sn}间存在着一一对应的关系。然而在更多的实际问题中,时间序列的状态输出都无法和状态一一对应,它们只在给定的状态下随机地输出观测。例如,如果只有湿度状态的记录,人们无法直接判断是否下雨,但可以直观地估计降雨的概率。此时,湿度状态是一个观测变量,而是否下雨这个事件就是一个隐含变量,它和观测变量之间存在着概率关系。
为描述上述过程,可将马尔可夫链推广为隐马尔可夫模型(HMM)。与基本马尔可夫链不同,HMM的输出观测值是根据每个状态对应的输出概率函数产生的随机变量X。因此,与基本马尔可夫链相比,HMM的参数多了输出概率矩阵。
O={o1,o2,…,oM}是输出的观测符号集。观测到的符号对应于模型描述的系统的物理输出;
Ω={1,2,…,N}表示系统的状态空间,时刻t时系统所处的状态st位于该集合中;
A={aij}是系统转移概率矩阵,其中aij是从状态i变化到状态j的转移概率,它满足aij=P(st=j|st-1=i),其中1≤i,j≤N;
B={bi(k)}是输出概率矩阵,其中bi(k)表示系统处于状态i时产生输出ok的概率,它的定义为bi(k)=P(Xt=ok|st=i),其中Xt表示HMM在时刻t的观测输出;
Π={πj}是初始分布,其中πj=P(s0=i),1≤i≤N。
由于aij、bi(k)和πj都是概率,因此它们必须满足归一化条件。
为便于表示,使用三元组记号Φ=(A,B,Π)来描述整个HMM,有时也可简记为Φ。
在HMM中,除了一个马尔可夫性质的假设外,还有一个输出独立假设,即P(Xt|)=P(Xt|st)。输出独立假设说明在时刻t产生的特定符号的概率只依赖于当前模型所处的状态,而与过去的模型输出观测值相独立。虽然采用上述两个假设降低了对实际过程建模的准确性,但由于它们最大限度地降低了HMM的记忆性,减少了需要估计的参数数量,因此在使用时非常有效。
下面举例说明。对于天气状况来说,依然可用三个状态(晴、多云、阴雨)来描述天气的变化。一般空气湿度可以分为干燥、舒适、潮湿三个等级,这与家用温湿度计上的常用标记方式相对应,可以直接观测到。构造一个包含三个隐含状态和三个观测状态的HMM模型来刻画天气状况。在实际系统中,隐含状态和观测状态的数量不一定相等,例如空气湿度可以采用干燥、稍干、舒适、潮湿、高湿等更多状态来描述。
图3-4显示了天气HMM中的隐含状态和观测状态。假设天气的阴晴变化可以用一个简单的马尔可夫链描述,那么隐含状态之间的转移使用有向曲线连接,隐含状态和观测状态之间的概率关系用无向连线连接。各条连线边的数值是对应的概率值。隐含状态转移概率取值和表3-1中的相同。输出概率取值如表3-2所示。
另一个实际的例子是语音识别。语音识别系统将语音作为观测数据,需要找到语音与其内容的对应关系。由于发声内容受声带、喉咙、舌头位置等发声器官状态的控制,直接采用这些器官的生理参数来描述发声状态较为复杂,并且麦克风也无法直接观测这些发声器官的状态,因此一般按照独立发音建立隐含状态,为语音构造HMM。例如,在英语语音识别中,可以用80个音素来描述,因此可以相应地选择80个隐含状态。在汉语语音识别中,也可以用音节来描述,因此也可以选择音节作为隐含基本单元。在建立HMM之后,语音识别的任务就变成根据观测到的状态序列去估计隐含状态序列的问题。