Alex_McAvoy

想要成为渔夫的猎手

隐马尔可夫模型

【概述】

隐马尔可夫模型(Hidden Markov Model,HMM)是由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由每个状态生成一个观测,由此产生观测的随机序列的过程

其中,随机生成的不可观测的状态随机序列被称为状态序列(State Sequence),每个状态生成一个观测,由此产生观测的随机序列被称为观测序列(Observation Sequence)

标注问题是给定观测序列来预测其对应的标记序列,当隐马尔可夫模型用于标注问题时,状态即对应着标记,因此可以假设标注问题的数据是由隐马尔可夫模型生成的,从而利用隐马尔可夫模型的学习与预测算法进行标注

【形式定义】

定义

隐马尔可夫模型是关于时序的概率模型,其由初始概率分布、状态转移概率分布、观测概率分布确定,形式定义如下:

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

其中,$N$ 是可能的状态数,$M$ 是可能的观测数

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

记 $A=[a_{ij}]_{N\times N}$ 为状态转移概率矩阵,其中

是在 $t$ 时刻处于状态 $q_i$ 的条件下,在 $t+1$ 时刻转移到状态 $q_j$ 的概率

又记 $B=[b_j(k)]_{N\times M}$ 为观测概率矩阵,其中

是在 $t$ 时刻处于状态 $q_j$ 的条件下,生成观测 $v_k$ 的概率

再记 $\pi=(\pi_i)$ 是初始状态概率向量,其中

是在 $t=1$ 时刻处于状态 $q_i$ 的概率

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

其中,$A$、$B$、$\pi$ 被称为隐马尔可夫模型三要素,$\pi$ 与 $A$ 确定隐藏的马尔可夫链,以生成不可观测的状态序列,$B$ 确定了如何从状态生成观测,与状态序列综合确定如何生成观测序列

实例

假设有 $4$ 个盒子,每个盒子里都装有红、白两种颜色的球,盒子中的红白球数由下表列出

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

  1. 从 $4$ 个盒子里以等概率随机选取 $1$ 个盒子,从这个盒子里随机抽取 $1$ 个球,记录其颜色后,放回
  2. 从当前盒子随机转移到下一个盒子,规则是:若当前是盒子 $1$,那么下一盒子一定是盒子 $2$;若当前是盒子 $2$ 或盒子 $3$,那么分别以概率 $0.4$ 和 $0.6$ 转移到左边或右边的盒子;若当前是盒子 $4$,那么各以 $0.5$ 的概率停留在盒子 $4$ 或转移到盒子 $3$
  3. 确定转移的盒子后,再从这个盒子里随机抽取 $1$ 个球,记录其颜色,放回
  4. 如此重复 $5$ 次,得到一个球的颜色的观测序列

在这个过程中,观察者只能观测到球的颜色序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列

在这个隐马尔可夫模型的例子中,有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列),前者是隐藏的,后者是可观测的

根据所给条件,可以明确状态集合、观测集合、序列长度,以及隐马尔可夫模型三要素

盒子对应状态,状态集合为:

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

状态序列和观测序列长度 $T=5$

初始概率分布为:

状态转移概率分布为:

观测概率分布为:

即隐马尔可夫模型为:

【两个基本假设】

从定义可知,隐马尔可夫模型作了两个基本假设:

1)齐次马尔可夫假设

假设隐藏的马尔可夫链是齐次马尔可夫链,故在任意时刻 $t$ 的状态 $i_t$ 只依赖于其前一时刻的状态 $i_{t-1}$,与其他时刻的状态以及观测无关,也与时刻 $t$ 无关,即:

2)观测独立性假设

假设任意时刻 $t$ 的观测 $o_t$,只依赖于该时刻的马尔可夫链的状态 $i_t$,与其他观测以及状态无关,即:

【观测序列的生成】

根据隐马尔可夫模型的定义,可以将一个长度为 $T$ 的观测序列 $O=(o_1,o_2,\cdots,o_T)$ 的生成过程描述如下

输入:隐马尔可夫模型 $\lambda=(A,B,\pi)$,观测序列长度 $T$

输出:观测序列 $O=(o_1,o_2,\cdots,o_T)$

算法流程:

Step 1:按初始状态分布 $\pi$ 生成初始状态 $i_1$,并令 $t=1$

Step 2:按状态 $i_t$ 的观测概率分布 $b_{i_t}(k)$ 生成 $t$ 时刻的观测 $o_t$

Step 3:按状态 $i_t$ 的状态转移概率分布 $\{a_{i_ti_{t+1}}\}$ 产生状态 $i_{t+1}$

Step 4:令 $t=t+1$

Step 5:若 $t=T$,输出观测序列 $O=(o_1,o_2,\cdots,o_T)$,否则转到 Step 2

【三个基本问题】

隐马尔可夫模型有三个基本问题:

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)预测问题(解码问题)

已知模型 $\lambda=(A,B,\pi)$ 和观测序列 $O=(o_1,o_2,\cdots,o_T)$,求对给定观测序列条件概率 $P(I|O)$ 最大的状态序列 $I=(i_1,i_2,\cdots,i_T)$,即给定观测序列 $O$,求最有可能的对应的状态序列

关于该问题,详见:隐马尔可夫模型的预测

感谢您对我的支持,让我继续努力分享有用的技术与知识点!