为理解HMM的含义,考虑如下简单例子。你在一个有遮挡(比如窗帘)的房间里,看不到它后面发生了什么。在遮挡的另一侧,有人在用一个(或多个)硬币做投掷实验。这个人不会告诉你他具体在做什么;他只告诉你每次扔硬币的结果。这样就有一系列隐藏的硬币投掷实验,而你只观测到这些扔硬币的结果,也就是说 O = H H T
HTTHH…T O1O2O3…………OT 其中H代表正面,T代表反面。 给出以上实验后,问题就是如何建立一个HMM来解释观测到的这一系列正面和反面。图1a给出了一个可能的模型。它叫做“1公平硬币”模型。此模型中有两个状态,但每个状态只和正面或反面有关。观测序列独立定义状态,因此这个模型不是隐藏的。它表示了“公平掷硬币”,因为在一个正面(或反面)后出现一个正面(或反面)的概率为0.5;因此当前观测值没有倾向性。这是一个退化模型,显示了像公平掷硬币这样的独立试验怎样可解释为一系列顺序事件。当然,如果实际上在遮挡后面的那个人在独立、公平地扔一个硬币,这个模型可以很好地解释它的结果。 图1b给出了可解释掷硬币观测结果序列的第二种可能的HMM。它称为“2公平硬币”模型。此模型中也有两个状态,但每个状态都不唯一与正面或反面相关。每个状态中正面(或反面)的概率为0.5。离开(或保持)每个状态的概率也是0.5。这样,在此情况下,可以将每种状态和一个公平的(无倾向)硬币相联系。虽然离开或保持每种状态的概率都是0.5,但2公平硬币模型的可观测输出序列统计值是独立于状态转移的,这一点应能令读者信服。这样的原因是,模型是隐藏的(即不知道在每次观测中具体是那个公平硬币(状态)导致了观测到的正面或反面),却本质上区别于(统计意义上)图1a的1公平硬币模型。 图1c及1d表示了另两种可能的HMM,可解释观测到的正面反面序列。图1c的模型,称之为2倾向硬币模型,它有两个状态(对应于两个不同的的硬币)。状态1中,硬币严重倾向于出正面。状态2中,硬币严重倾向于出反面。状态转移的概率均为0.5。这个2倾向硬币模型是一个区别于以上讨论的两个模型的隐马尔可夫模型。有趣的是,读者应能使自己相信,图1c的HMM观测序列在长时间统计上和图1a、图1b模型的是相同的。如果遮挡后所发生的如下所述,这个模型就非常合适。这个人有三个硬币,一个是公平的,两个如图1c描述的那样是倾向的。这两个倾向硬币分别与公平硬币的两面相关。为报告每次不可见掷硬币的结果,遮挡后的人先扔公平硬币,来决定用哪个倾向硬币,然后扔选出的那个倾向硬币从而得到结果。有了这个模型,就能考虑并解释上述微妙的特征变化(即扔倾向硬币)。 图1d模型称为3倾向硬币模型,有三个状态(对应三个不同的的硬币)。状态1中硬币略倾向于出正面;状态2中硬币严重倾向于出反面;状态3中硬币略倾向于出反面。图1d中没有状态转移概率的指定值;显然由这样模型产生的观测序列,其变化严重受转移概率影响。(读者为确信这一点,可考虑两个极端的例子,即保持在状态3的概率或极大(>0.95)或极小(<0.5)。由于状态3对应的硬币严重倾向,从这两种极端情况中可得到大不相同的序列统计。)至于2倾向硬币模型,建立对应于这种模型的遮挡后真实情景,读者自己应不难得出。 从掷硬币实验如何通过HMM建模的讨论中得到几个要点。首先注意到,建模程序中最难的部分之一是,决定模型的大小(状态的个数)。没有先验信息的情况下,通常难以作出这种决定,设置最适当的模型大小前还要涉及实验和错误。以上插图中止步于3硬币模型,尽管这个模型可能还是太小了。如何确定模型中真正需要多少硬币(状态)?问题的答案涉及到一个更大的问题,即如何选择模型参数(状态转移概率、每个状态中正面和反面的概率)来优化模型,以使其最合理地解释输出观测序列。在“HMM三个问题的解决”一节中将尝试回答这些问题,这也是成功应用隐马尔可夫模型解决现实世界问题的关键。最后一点涉及观测序列的大小。如果只限于一个小的有限观测序列,就可能无法可靠地估计优化模型的参数。(考虑实际用了10个硬币却只给出一组50-100个观测值的情况。)因此在某种意义上,根据已有的模型训练数据的量,某些HMM可能无法统计上地、可靠地不同。