码迷,mamicode.com
首页 > 其他好文 > 详细

隐马尔科夫模型—2

时间:2016-05-31 22:32:29      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

二 定义

(1) 基本定义

  在上一篇中,我们通过一个给母亲打电话预测天气的例子,来引入隐马尔科夫模型。下面我们将结合一中的例子来形式化的定义隐马尔可夫模型。隐马尔科夫模型是关于时序的概率模型,描述的由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。在我们这个例子中,就是由一个隐藏的马尔科夫链生成每天的天气(状态),再由每天的天气决定每天母亲下班以后做什么(观测)的随机过程。隐藏的马尔科夫链随机生成的状态的序列,称为状态序列,也就是最近一段时间(比如一个星期)内每天的天气;每个状态生成一个观测,也就是不同的天气会决定母亲下班以后做什么,而由此产生的观测的随机序列,称为成为观测序列,也就是最近一时间(比如一个星期)内母亲每天做什么。序列的每一个位置又可以看作一个时刻。

  隐马尔科夫模型由初始概率分布,比如我们根据母亲下班后的活动猜测从星期一开始接下来一周每天的天气,星期一这一天的天气是晴天,还是阴天,或者下雨的概率就是我们的初始概率分布。以及状态转移概率分布,在我们这里就是从阴天,晴天,下雨三者相互转化,(注意也可以一直阴天或者一直晴天)的概率。最后就是观测概率分布,也就是雨天呆在家,晴天逛商场的概率。 

  设Q是所有可能的状态集合,V是所有可能的观测的集合。

$$Q={q_1,q_2,...,q_N}, V = {v_1,v_2,...,v_M}$$ 

其中,$N$是所有可能的状态数,$M$是所有可能的观测数。在我们这里状态集合就是所有可能的天气组合{晴天,雨天,阴天},观测集合就是母亲下班以后所有可能的活动集合{呆在家,去商场}。

  $I$是长度为T的状态序列,$O$是对应的观测序列.在我们这里就状态序列就是一个星期内周一到周日每天的天气,观测序列就是一个星期内从周一到周日母亲每天下班以后的活动。

$$I = (i_1,i_2,...,i_T), O = (o_1,o_2,...,o_T)$$

  A 是状态转移概率矩阵:

\[A = [a_{ij}]_{N\times N}\]

其中, $$a_{ij} = P(i_{t+1} = q_j|i_t = q_i), i = 1,2,...,N; j = 1,2,...,N$$

是在t时刻由状态$q_i$向t+1时刻的状态$q_j$转移的概率。在我们这里状态转移概率就好比周一是阴天到周二是晴天的天气变化概率(为了简化,我们默认一天只有一种天气),而在定义中的简化就是一个时刻只有一种状态,状态之间的变化便是在相邻时刻发生,只考虑从前一时刻t的状态$q_i$向t+1时刻的状态$q_{i+1}$变化的概率,比如只考虑周一到周二的天气变化概率,不考虑周一到周三的天气变化概率。这里也是考虑到马尔科夫链的基本性质现在时刻的状态只和前一时刻的状态相关。

  B是观测概率矩阵    

$$B=[b_j(k)]_{N\times M}$$

其中,$b_j(k) = P(o_t =v_k|i_t = q_j), k = 1,2,3,...,M, j = 1,2,3,...,N$是在t时刻下处于状态$q_j$的情况下,观测为$v_k$的概率。在我们这里就是在知道周一是阴天情况下,母亲下班以后呆在家的概率以及去商场的概率。

  $\pi$是初始状态概率向量:

$$\pi =(\pi_i)$$

  其中,

$$\pi_i =p(i_1 = q_i), i = 1,2,3,...,N$$

是处在时刻t=1状态为$q_i$的概率。在我们这里就是周一是晴天,阴天还是雨天的概率。可以把这个看作一个种子,或者事件的开端。

  隐马尔科夫模型是由初始状态概率向量$\pi$, 状态转移矩阵A,状态观测矩阵B共同决定。其中$\pi$和状态转移矩阵A共同决定状态序列I,观测概率矩阵和状态序列I(或者说隐状态)共同决定观测序列B.如果$\lambda$表示隐马尔科夫模型。那么有:

$$\lambda = (A,B,\pi)$$

在我们这里就是周一的天气决定周一母亲下班以后做什么以及周二可能的天气。然后周二的天气决定周二母亲下班以后什么以及周三可能的天气。一直到周日。周日的天气由周六的天气决定,同时周日的天气也决定周日母亲下班以后做什么。就像一个顺序的多米诺骨牌一个接一个的倒下。

  接下来,我们要形式化的定义马尔科夫链的性质。通过总结上面的内容,我们可以得到两条性质,(1)当前时刻的状态之和前一时刻的状态相关(2)当前时刻的观测只和当前时刻的状态相关。用公式定义可得

$$p(i_t|i_1,i_2,...,i_{t-1}) = p(i_t|i_{t-1})$$

$$p(v_t|i_1,i_2,...,i_{t}, v_1,v_2,..., v_{t-1}) = p(v_t|i_{t})$$

(2) 基本应用

  在给定上述形式化定义以后,此模型会有三个基本应用

  (1) 概率计算问题。给定模型$\lambda = (A,B,\pi)$和观测序列$O= (o_1,o_2,...,o_T)$,计算在模型$\lambda\$下观测序列O出现的概率$P(O|\lambda)$出现的概率。将在这里引入前向后向算法

  (2)学习问题.已知观测序列$O = (o_1,o_2,...,o_T)$,估计模型$\lambda = (A,B,\pi)$参数,使得在该模型下观测序列$P(O|\lambda)$概率最大,即用极大似然估计的方法估计参数,这里由于有隐状态的存在,所以无法直接使用极大似然估计的方法。在这里我们将介绍EM算法。

  (3)预测问题,也称为解码问题,在给定模型$\lambda = (A,B,\pi)$和观测序列$O = (o_1,o_2,...,o_T)$,计算在模型$\lambda$以及观测序列O的条件下最有可能状态序列I出现的概率,$P(\lambda|O)$的概率,在这里我们将引入维特比算法。

(3) 总结

  在这里,我们形式化定义了,初始状态概率向量$\pi$,转移概率矩阵$A$,状态观测矩阵$B$。接下来,我们将就三个基本应用继续介绍。

隐马尔科夫模型—2

标签:

原文地址:http://www.cnblogs.com/ModifyRong/p/5542643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!