概率图模型提供了一种根据观察到的证据来对感兴趣的未知变量进行估计和推测的模型,将学习任务归结于计算变量的概率分布。具体来说,假定所关心的变量集合为Y,可观测变量集合为O,其他变量集合为R,“生成式”模型考虑联合分布P(Y,R,O),“判别式”模型考虑条件分布P(Y,R|O),给定一组观测变量值,推断就是要从P(Y,R,O)或P(Y,R|O)得到 P(Y|O)
直接利用概率求和规则消去变量R显然不可行,因为即便每个变量仅有两种取值的简单问题,复杂度也能达到O(2^(|Y|+|R|)),另一方面,属性变量之间往往存在复杂的联系,因此概率模型的学习基于训练样本来估计变量分布的参数往往很困难。而概率图模型是一类用图来表达变量相关关系的概率模型。在概率图中通常用结点表示一个或一组随机变量,结点之间的边表示变量之间的概率相关关系。
隐马尔可夫模型(HMM)是结构最简单的贝叶斯网络,一种著名的有向图模型。在HMM中变量可以分为两类,第一类是状态变量{y1,y2,,,yn},其中yi∈Y表示第i时刻的系统状态,通常系统状态是隐藏的、无法被观测到的,故又称为隐变量。第二类是观测变量{x1,x2,,,xn},其中xi∈X表示的是第i个状态下的观测值。在HMM中,系统通常在多个状态之间{s1,s1,,,sN}之间转化,因此状态变量yi的取值范围通常有N个可能取值的离散空间。观测变量xi在此仅考虑离散型观测变量,并假定其取值范围X为{o1,o2,,,oM}。HMM模型如下图所示:
在上图中,箭头表示了变量之间的依赖关系。在任意时刻,观测变量的取值仅仅依赖于系统的当前状态,即状态变量,xi仅仅由yi决定;同时下一时刻的状态仅仅由当前状态所决定,即yi+1仅仅依赖于yi,而与yi-1无关。这就是“马尔可夫链”,即系统下一时刻的状态仅由当前状态决定,不依赖于任何过往状态。基于这种依赖关系,所有变量的联合概率分布为:
在式中,表示系统的初始状态,初始的状态变量*观测变量
表示系统状态的转移:即下一状态仅仅依赖于当前状态
表示在当前状态下的观测值,即在状态yi下观测值为xi的概率。
除了结构信息,欲确实一个隐马尔可夫模型还需要如下三组参数:
1.状态转移矩阵。模型在各个状态之间转换的概率,通常记为矩阵A=[aij]N*N,其中:
表示当前状态为si,下一状态为sj的概率。
2.输出观测概率。模型在当前状态获得各个观测值的概率,通常记为矩阵B=[bij]N*M,其中:
表示当前状态为si,该状态下观测值为oj的概率。
3.初始状态概率。模型在初始时刻各状态出现的概率,通常记为Π=(Π1,Π2,Π3,,,ΠN),其中:
表示模型初始状态为si的概率
通过以上提到的状态空间Y,观测空间X和上述三组参数,就可确定一个隐马尔可夫模型,通常用其参数入=[A,B,Π]来表示,给定入,就可确定产生一组观测序列{x1,x2,,,xn}:
(1)设置t=1时刻的状态,根据Π选择初始状态y1;
(2)根据状态yt和输出的观测概率B选择观测变量xt;
(3)根据状态yt和状态转移矩阵B确定下一状态yt+1;
(4)若t<n,则进入下一个时间状态,重复(2)-(4)步,否则停止
在实际应用中,人们常关注隐马尔可夫模型的三个基本问题:
1.给定模型入=[A,B,Π],如何有效计算其产生观测序列x={x1,x2,,,xn}的概率P(x|入)?
2.给定模型入=[A,B,Π]和观测序列x={x1,x2,,,xn},如何找到与此观测序列最匹配的状态序列y={y1,y2,,,yn}?
3.根据观测序列x={x1,x2,,,xn},如何调整模型参数入=[A,B,Π]使得该参数序列出现的概率 P(x|入)最大?
上面的三个问题在现实中有非常重要的应用。第一个问题可用于解决:根据以往观察序列{x1,x2,,,xn-1}来推测当前时刻最有可能的观测值xn,显然转化为求取概率P(x|入)。第二个问题可用于解决:在语言识别中,观测值为语音信号,隐藏状态为文字,目标就是根据观测信号来推断最有可能的观测状态序列。第三个问题可以解决:人工指定模型参数已变得越来越不可行,如何根据训练样本学得最优的模型参数。
参考资料:《机器学习》周志华著,清华大学出版社