一点简短的HMM笔记

Author: sandyzikun

如题, 希望我不会说得太啰嗦.

Intro

这是一种可用于标注问题的统计学模型, 其描述由隐藏的Markov链随机生成观测序贯的过程, 本质上属于生成模型.

或将从两个方面切入隐Markov模型: 隐Markov模型的基本概念, 与隐Markov模型的概率计算算法, 学习算法以及预测算法.

Definitions

Definition 10.1: HMM (Hidden Markov Model, 隐Markov模型) 1 2 是关于时间序贯的概率模型, 描述由一个隐藏的Markov链生成不可观测的状态随机序贯, 再由各个状态生成一个观测而产生观测随机序贯的过程.
隐藏的Markov链随机生成的状态所组成的序贯称为状态序贯 (State Sequence); 每个状态生成一个观测, 而由此产生的观测的随机序贯称为观测序贯 (Observation Sequence).
序贯的每一个位置又可以看作是一个时刻.

HMM由初始概率分布, 状态转移概率分布, 以及观测概率分布所确定.
其形式定义如下: 设

  • $ Q = \{ q_1, q_2, \cdots, q_M \} $ 是所有可能的状态的集合, $ V = \{ v_1, v_2, \cdots, v_N \} $ 是所有可能的观测的集合, 其中M为可能的状态数, N为可能的观测数;
  • $ I = (i_1, i_2, \cdots, i_T) $ 是长度为T的状态序贯, $ O = (o_1, o_2, \cdots, o_T) $ 为对应的观测序贯;
  • $ A = [a_{kl}]_{M \times M} = [ \Pr(i_{\tau + 1} = q_l | i_\tau = q_k) ]_{M \times M} $ 为状态转移概率矩阵, 其中k, l = 1, 2, ..., M, 同时 $ a_{kl} = \Pr(i_{\tau + 1} = q_l | i_\tau = q_k) $ 为在时刻 $ \tau $ 处于状态 $ q_k $ 的条件下在下一时刻( $ \tau + 1 $ )转移到状态 $ q_l $ 的概率;
  • $ B = [b_l(j)]_{M \times N} = [\Pr(o_\tau = v_j | i_\tau = q_l)]_{M \times N} $ 为观测概率矩阵, 其中j = 1, 2, ..., N, 同时 $ b_l(j) = \Pr(o_\tau = v_j | i_\tau = q_l) $ 为在时刻 $ \tau $ 处于状态 $ q_l $ 条件下生成观测 $ v_j $ 的概率;
  • $ \pi = (\Pr(i_1 = q_k))_{k=1}^M $ 为初始状态的概率矢量, 其中的第k个分量为处于状态 $ q_k $ 的概率;

如上文所属, 隐Markov模型由初始状态概率矢量 $ \pi $, 状态转移概率矩阵A, 与观测概率矩阵B所决定.
$ \pi $ 和A决定状态序贯, B决定观测序贯.
因此, 隐Markov模型可以用三元组 $ \lambda = (A, B, \pi) $ 表示, 这也称为隐Markov模型的三要素.

Instance: Boxes & Balls

Instance 10.1: 假设有4个盒子, 每个盒子里都装有青蓝两种颜色的球, 盒子里的青蓝球数如下

Box ID 1 2 3 4
Num of Cyan Balls 5 3 6 8
Num of Blue Balls 5 7 4 2

现按照如下方法抽选球, 产生一个球的颜色的观测序贯:

  • 开始, 从4个盒子里以等概率随机选取1个盒子, 从中随机抽选一个球, 记录颜色后放回;
  • 然后, 从当前盒子随即转移至下一个盒子, 规则是:
    • 如若当前盒子是盒子1, 则下一个盒子一定是盒子2,
    • 如若当前是盒子23, 则分别以概率0.40.6转移至左边(id-1)或右边(id+1)的盒子,
    • 如若当前是盒子4, 则各以0.5的概率停留在盒子4或转移至盒子3;
  • 确定转移的盒子后, 再从这个盒子里随机抽选1个球, 记录其颜色, 放回;

如此往复, 重复进行5次, 得到一个球的颜色的观测序贯:

在这个过程中, 观察者只能观测到球的颜色的序贯, 观测不到球是从哪个盒子取出的, 即观测不到盒子的序贯.
在这个例子中有两个随机序贯, 一个是盒子的序贯(状态序贯), 一个是球的颜色的观测序贯(观测序贯), 前者是隐藏的, 只有后者是可观测的.
这是一个隐马尔可夫模型的例子, 根据所给条件, 可以明确状态集合, 观测集合, 序贯长度, 以及模型的三要素.

盒子对应状态, 其集合为

球的颜色对应观测, 其集合为

状态序贯与观测序贯的长度T=5.

初始概率分布 $ \pi = (0.25, 0.25, 0.25, 0.25)^T $,

状态转移概率分布为

观测概率分布为

Generating Observation Sequence

根据HMM定义, 可以把一个长度为T的观测序贯 $ O = \{ o_1, o_2, \cdots, o_T \} $ 的生成过程描述如下:

Algorithm 10.1: 观测序贯的生成

  • Input: HMM $ \lambda = (A, B, \pi) $, 观测序贯长度T;
  • Output: 观测序贯 $ O = \{ o_1, o_2, \cdots, o_T \} $;
  1. 根据初始状态分布 $ \pi $ 产生状态 $ i_1 $;
  2. 令 $ \tau = 1 $;
  3. 根据状态 $ i_1 $ 的观测概率分布 $ b_{i_\tau}(j) $ 生成 $ o_\tau $;
  4. 根据状态 $ i_1 $ 的状态转移概率分布 $ \{ a_{ {i_\tau}{i_{\tau+1} } } \} $ 产生状态 $ i_{\tau + 1} $, 其值域为{1,...,M};
  5. 令 $ \tau += 1 $; 如若 $ \tau < T $ 则回到第3步, 否则终止.

3 Basic Problems

HMM有如下所述的三个基本问题:

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

后面会补充这些问题的解法.

References

1. 李航, 统计学习方法 (第一版), 清华大学出版社, 2012, ISBN: 978-7-302-27595-4
2. 参考 pinard的博客园文章 隐马尔科夫模型HMM(一)HMM模型 以及其它资料 3 4 5 6
3. liusisi_的CSDN博客 HMM(隐马尔可夫)简介
4. 百度百科词条 隐马尔可夫模型
5. Tecdat 隐马尔可夫模型hmm识别不断变化的市场条件
6. 「隐马尔可夫模型HMM1」你了解隐马尔可夫模型吗? Bilibili: av498230356