高冷贵族: 隐马尔可夫模型

旧街凉风 提交于 2019-12-04 04:12:24


分别为状态序列与观测序列, 因状态序列是一个马尔可夫链,故 所有变量的联合概率分布为:

𝑃(𝑥1,𝑦1,,𝑥𝑛,𝑦𝑛)=𝑃(𝑦1)𝑃(𝑥1|𝑦1)Π𝑛𝑖=2𝑃(𝑦𝑖|𝑦𝑖1)𝑃(𝑥𝑖|𝑦𝑖)


欲得到联合概率分布,其需要右边三个部分,𝑃(𝑦1)𝑃(𝑥1|𝑦1) 为初始条件; 𝑃(𝑦𝑖|𝑦𝑖1) 为转移条件; 𝑃(𝑥𝑖|𝑦𝑖)

则为观测条件. 因此,

设:

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

𝑄={𝑞1,𝑞2,,𝑞𝑁},𝑉={𝑣1,𝑣2,,𝑣𝑀}


其中,N 是所有可能的状态数, M 是所有可能的观测数.

I 是长度为T 的状态序列, O 是对应的观测序列:

𝐼={𝑖1,𝑖2,,𝑖𝑇}𝑂=(𝑜1,𝑜2,,𝑜𝑇)


A 是状态转移概率矩阵:

𝐴=[𝑎𝑖𝑗]𝑁𝑋𝑁


其中,

𝑎𝑖𝑗=𝑃(𝑖𝑖+1=𝑞𝑗|𝑖𝑡=𝑞𝑖),𝑖=1,2,,𝑁,𝑗=1,2,,𝑁


是在 t 时刻 处于状态 qi 的条件下在 时间 t+1 转移到状态 qj 的概率.

B 是观测概率矩阵

𝐵[𝑏𝑗(𝑘)]𝑁𝑋𝑀


其中

𝑏𝑗(𝑘)=𝑃(𝑜𝑡=𝑣𝑘|𝑖𝑡=𝑞𝑗),𝑘=1,2,,𝑀,𝑗=1,2,,𝑁


是在 t 时刻 处于状态 q_j 的条件下生成观测数 vk 的概率.

𝜋

是初始状态概率向量

𝜋=(𝜋𝑖)


其中

𝜋𝑖=𝑃(𝑖1=𝑞𝑖),𝑖=1,2,,𝑁


是时刻 t = 1处于状态 qi 概率.

有了上述准确, HMM就基本上搞定了:

定义

 

𝜆=(𝐴,𝐵,𝜋)

 

这就是HMM,其中括号内的三个部分称为HMM三元素.

基本假设

  1. 齐次马尔可夫性假设, 即假设 在任意时刻 t 的状态 只有前一状态有关,与其他任何状态,观测都无关:

    𝑃(𝑖𝑡|𝑖𝑡1,𝑜𝑡1,,𝑖1,𝑜1)=𝑃(𝑖𝑡|𝑖𝑡1)
  1.  

基本问题

  1. 概率计算问题, 给定定 𝜆=(𝐴,𝐵,𝜋)

和观测序列𝑂=(𝑜1,𝑜2,,𝑜𝑇) , 计算在模型 𝜆 下 观测序列 O 出现的概率𝑃(𝑂|𝜆) ,估计模型 𝜆=(𝐴,𝐵,𝜋) 使得在该模型下, 𝑃(𝑂|𝜆) 和观测序列𝑂=(𝑜1,𝑜2,,𝑜𝑇) , 求使 𝑃(𝑂|𝜆) 最大的状态序列 𝐼=(𝑖1,𝑖2,,𝑖𝑇)

  1. ,即最有可能的状态序列.

接下来,对于这三个问题,我们将各个击破.

前向,后向算法

对于第一个问题, 最简单的方法就是暴力计算,把每种情况都考虑一遍, 不用我说,你也知道这不可行. 倒不是因为复杂,是因为算不起,它的时间复杂度是恐怖的 𝑂(𝑇𝑁𝑇)

.

不过还真有比较不错的算法,而且还有两种!

上图可表示为一HMM列.左,右两边虚线内我们分别用𝛼𝑡(𝑗),𝛽𝑡(𝑗)

来表示,其中

𝛼𝑡(𝑗)=𝑃(𝑜1,𝑜2,,𝑜𝑡,𝑖𝑡=𝑞𝑗|𝜆);𝛽𝑡(𝑗)=𝑃(𝑜𝑡+1,𝑜𝑡+2,,𝑜𝑇|𝑖𝑡=𝑞𝑗,𝜆)


这两个就是我们分别用于前向,后向算法的关键因子.

再明确一下,我们的目标是求解 𝑃(𝑂|𝜆)

.

前向算法

  1. 初始状态 𝑜1

, 考虑出现𝑜1 概率:

𝑃(𝑜1|𝜆)=𝑗=1𝑁𝑃(𝑜1,𝑖1=𝑞𝑗|𝜆)=𝑗=1𝑁𝛼1(𝑗)=𝑗=1𝑁𝜋𝑗𝑏𝑗(𝑜1)

, 现在要求𝑃(𝑜1,𝑜2,,𝑜𝑡,𝑜𝑡+1|𝜆) ,可以先从𝛼𝑡+1(𝑗)

  1. 出发:

 

𝛼𝑡+1(𝑗)=====𝑃(𝑜1,𝑜2,,𝑜𝑡,𝑜𝑡+1,𝑖𝑡+1=𝑞𝑗|𝜆)𝑁𝑘=1𝑃(𝑜1,𝑜2,,𝑜𝑡,𝑜𝑡+1,𝑖𝑡+1=𝑞𝑗,𝑖𝑡=𝑞
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!