隐马尔可夫模型

北战南征 提交于 2019-12-03 07:05:55

一、基本思想

隐马尔可夫模型是基于时序的概率模型,由初始状态概率向量Π、状态转移概率矩阵A和观测概率矩阵B组成。
隐马尔可夫做了两个基本假设:

  1. 齐次马尔可夫性假设:任意时刻的状态只与上一时刻的状态有关
  2. 观测独立性假设:任意时刻的观测值只与该时刻的状态有关

隐马尔科夫模型主要用来解决三个问题:

  1. 概率计算问题:给定模型λ=(Π,A,B)和观察序列O,求在模型λ下观测序列O出现的概率P(O|λ)
  2. 学习问题:已知观察序列O,求模型λ的三个参数,使得P(O|λ)最大
  3. 预测(解码)问题:给定模型λ=(Π,A,B)和观察序列O,求在给定观察序列O的基础上,最有可能对应的状态序列I,即P(I|O)

二、算法流程

1. 概率计算问题

1)前向算法

图来源《统计学习方法》
其中前向概率\(\alpha_t(i)\)表示t时刻产生观察序列\(o_1,o_2,o_3...o_t\)且t时刻的状态为i的概率。

  1. 公式10.15表示状态为i,观察序列为\(o_1\)的联合概率
  2. 公式10.16中[]里面的内容表示状态为i,观测序列为\(o_1,o_2,o_3...o_t\)的联合概率,最后乘以\(b_i(o_{t+1})\)得到状态为i,观察序列为\(o_1,o_2,o_3...o_{t+1}\)的联合概率
  3. 公式10.17表示将所有可能的状态i且对应的观察序列为\(o_1,o_2,o_3...o_T\)联合概率累加可以得到在模型λ下观测序列O出现的概率P(O|λ)

2)后向算法

图来源《统计学习方法》
其中后向概率\(\beta_t(i)\)表示t+1时刻到T时刻产生观察序列\(o_{t+1},o_{t+2},o_{t+3}...o_T\)且t时刻的状态为i的概率。

2. 学习问题

Baum-Welch算法(EM算法)

  1. EM算法的E步:求Q函数
    累加对数似然函数logP(O,I|λ)
  2. EM算法的M步:极大化Q函数
    通过拉格朗日乘子法求参数A,B,Π
  3. 不断迭代,最后得到满足终止条件的的三个参数A,B,Π

3. 预测问题

维特比算法

用动态规划求最优路径(一条路径对应一个状态序列)
图来源《统计学习方法》
其中\(\delta_t(i)\)表示t时刻观察序列为\(o_1,o_2,o_3...o_t\)和t时刻状态为i的联合概率,\(\varphi _t(i)\)存储t-1时刻对应的概率最大的状态。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!