当我搞明白了要把隐马模型说清楚至少再需要3篇的时候,我觉得这是一个陷阱了。不过既然已经决定去做,也有着美好的愿望,就勇往直前吧。
有同学反映写的太难理解了,涉及太多的算法。我已经是很努力的写清晰了,那些算法的内里是很美妙的感觉,希望有兴趣的同学能够仔细品味,也可以找一些paper加深理解,实在看不懂,那我只能抱歉了。
脑中的数学是抽象的,手中的数学是简单的。
关于隐马模型,我大概需要分三篇来写,也可能会更多或者更少,尽量以最适合的篇幅来写吧。
这一篇我的目标是把隐马模型讲清楚,讲透彻。
先从字面理解一下,隐马尔科夫模型是隐含的马尔科夫模型的意思,那么什么是马尔科夫模型呢?为什么这个马尔科夫模型要隐含起来呢?显然,我们从马尔科夫模型的介绍开始是合适的。
如果一个过程的“将来”仅仅依赖于“现在”而不依赖于“过去”,那么这个过程具有马尔科夫性,或者称此过程为马尔科夫过程。数学表达为:X(t+1) = f(X(t))。
时间和状态都离散的马尔科夫过程称为马尔科夫链。链的状态空间记作I={a1,a2,...}。在时间集T={0,1,2,...}上对离散状态的过程相继观察的结果构成一个观察序列{X0,X1,...}。条件概率Pij(m,m+n)=P(Xm+n=aj|Xm=ai)为马尔科夫链在时刻m处于状态ai条件下,在时刻m+n转移到状态aj的转移概率。
由于链在时刻m从任何一个状态ai出发,到另一时刻m+n,必然转移到a1,a2,...,的其中某一个状态,所以有:Pi0(m,m+n)+Pi1(m,m+n)+..Pij(m,m+n)+..=1,i=1,2,...。当Pij(m,m+n)与m无关时(Pij(m,m+n)=Pij(s,s+n)),称马尔科夫链为齐次马尔科夫链,通常说的马尔科夫链都是指齐次马尔科夫链。
经过了教科书式的概念解释之后,我们来看看马尔科夫模型吧,马尔科夫模型的状态是有限的。可以记作N={0,1,2,..,n},每两个状态之间或者每个状态和自身的转移概率构成一个n*n的转移概率矩阵A。马尔科夫模型就是一个二元组{N,A}。例如,有三种天气分别为:晴天,阴天,下雨。其对应状态为:{1,2,3}。状态转移矩阵为:
0.50 0.25 0.25
0.375 0.25 0.375
0.25 0.125 0.625
可以看到,每一行的概率之和为1。我们还需要注意一点,假设我们有观察序列:{晴天,晴天,阴天,阴天,下雨}。那么很容易得到他的状态转移序列是:{1,1,2,2,3},因为状态和观察值是一一对映的。这是要特别留意的,因为我们下面介绍隐马尔科夫模型的时候,我们会知道隐马尔科夫模型的状态和观察值不是一一对映的,一个状态可能有多个观察值,这就是为什么叫做隐含马尔科夫的原因了。
我们下面详细讨论隐马尔科夫模型。
上面我们举了天气的例子来说明马尔科夫模型,那么隐马尔科夫模型我们也举一个例子说明,对比着理解会更清晰。这是一个经典的例子。
设有N个缸,每个缸中装有很多彩球,球的颜色共有M种,做如下实验:
房间内的人随机选择一个缸,然后从已经选择的缸中再随机取出一个小球,这个小球递给房间外的人记录他的颜色,重复这个过程,再随机选择一个缸,...
最终房间外的人会得到一个颜色序列O1,O2,...,称为观察值序列O。
在上述实验中,要注意几点:
1、不清楚房间内的人依次选择的是哪些缸。
2、每次从缸中取出的小球颜色不固定,也即是随机M种的其中一种。
如果我们把缸当作状态,把小球颜色当作观察值,对比马尔科夫模型来分析,我们得到一组观察值序列:O1,O2,...,我们并不能简单的得到状态转移序列,换句话说,房间外面的人只知道依次取出的球的颜色,而不知道房间内的人依次选择了哪些缸。
我们可以出结论了:
隐马尔科夫模型(HMM)的状态是不确定或不可见的,只有通过观察序列的随机过程才能表现出来。观察到的事件与状态不是一一对映的,而是通过一组概率分布想联系的。
HMM是一个双重随机过程,两个随机过程分别是:
马尔科夫链,描述状态的转移,用转移概率描述。
一般随机过程,描述在某个状态观察值的选取,用观察值概率描述。
即:
马尔科夫链-->状态序列q1,q2,..qT-->随机过程-->观察序列O1,O2,..OT-->
马尔科夫模型是一个五元组HMM=(N,M,PI,A,B)。N是状态集合,M是观察值集合,PI是初始状态空间的概率分布,对应就是第一次选择某个缸的概率,A是状态转移概率分布,B是给定状态下,观察值概率分布。PI和A描述了马尔科夫链,B描述了一般随机过程。
今天的内容就到这里吧,我们已经对隐马尔科夫模型有了一些感性的认识,而隐马尔科夫模型可解决的问题才是我们最关心的内容,下一篇就会对隐马尔科夫模型可以解决的问题做详细的讨论。至于N元模型就要压后了,没办法,时间关系,下个版本上吧。
待续...