隐马尔可夫模型(Hidden Markov Model, HMM)

1. 隐马尔可夫模型的基本概念

1.1 定义

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而产生观测随机序列的过程。

  • 马尔可夫链:隐藏的马尔可夫链随机生成的状态的序列
  • 每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列

1.2 三要素

隐马尔可夫模型由初始状态概率向量 $\pi$ 、状态转移概率矩阵 $A$ 和 观测概率矩阵 $B$ 决定。 $ \pi $ 和 $A$ 决定状态序列,$B$ 决定观测序列。

1.3 两个基本假设

  • 齐次马尔可夫性假设:假设隐藏的马尔可夫链在任意时刻 $t$ 的状态只依赖于其前一时刻的状态,与其他时刻的状态集观测无关,也与时刻 $t$ 无关
  • 观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关

1.4 隐马尔可夫模型的3个基本问题

  • 概率计算问题。 给定模型 $\lambda=(A,B,\pi)$ 和观测序列$O=(o_1, o_2, … , o_T)$ ,计算在模型 $\lambda$ 下观测序列 $O$ 出现的概率 $P(O|\lambda)$
  • 学习问题。已知观测序列 $O=(o_1, o_2, … , o_T)$ ,估计模型 $ \lambda = (A, B, \pi)$ 参数,使得在该模型下观测序列概率 $P(O|\lambda)$ 最大。即用最大似然估计的方法估计参数。
  • 预测问题,也称为解码问题。已知模型 $\lambda=(A,B,\pi) $ 和观测序列$O=(o_1, o_2, … , o_T)$ ,求对给定观测序列条件概率 $P(I|O)$ 最大的状态序列 $I=(i_1, i_2, …, i_T)$ 。即给定观测序列,求最有可能的对应的状态序列。

2. 概率计算算法

2.1 直接计算法

给定模型 $\lambda=(A,B,\pi)$ 和观测序列 $O=(o_1, o_2, … , o_T)$ ,计算在模型 $\lambda$ 下观测序列 $O$ 出现的概率 $P(O|\lambda)$

通过列举所以可能的长度为 $T$ 的状态序列 $I=(i_1, i_2, …, i_T)$, 求各个状态序列 $I$ 与观测序列 $O=(o_1, o_2, … , o_T)$ 的联合概率 $ P(O, I | \lambda)$,然后对所有可能的状态序列求和,得到 $P(O|\lambda)$

  • 时间复杂度 $O(TN^T)$

2.2 前向算法

  • 前向概率:给定隐马尔可夫模型 $\lambda $,定义到时刻 $t$ 部分观测序列为 $o_1, o_2, … , o_t $ 且状态为 $q_i$ 的概率为前向概率,记作

  • 结合动态规划递推求解 $ \alpha_t(i) $ 即观测序列概率 $P(O|\lambda)$

  • 时间复杂度 $O(TN^2)$

2.3 后向算法

  • 后向概率:给定隐马尔可夫模型 $\lambda $,定义在时刻 $t$ 状态为 $qi$ 的条件下,从 $t+1$ 到 $T$ 的部分观测序列为 $o{t+1}, o_{t+2}, … , o_T $ 的概率为后向概率,记作

  • 结合动态规划递推求解 $ \beta_t(i) $ 即观测序列概率 $P(O|\lambda)$

  • 时间复杂度 $O(TN^2)$

3. 学习算法

3.1 监督学习方法

状态数据和观测序列都存在的训练数据,利用极大似然估计发来估计隐马尔可夫模型的参数

  • 转移概率
  • 观测概率
  • 初始状态概率

3.2 Baum-Welch算法

Todo

4. 预测算法

4.1 近似算法

贪心思想,在每个时刻 $t$ 选择该时刻最有可能出现的状态,优点是计算简单,缺点是不能保证预测的状态序列整体是最优可能的状态序列。

4.2 维特比算法

用动态规划求概率最大路径(最优路径),这时一条路径对应着一个状态序列。

下一步规划:补充EM算法,CRF

Donate comment here