【概述】
隐马尔可夫模型(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$ 个盒子,每个盒子里都装有红、白两种颜色的球,盒子中的红白球数由下表列出
按照如下的方法抽球,产生一个球的颜色的观测序列:
- 从 $4$ 个盒子里以等概率随机选取 $1$ 个盒子,从这个盒子里随机抽取 $1$ 个球,记录其颜色后,放回
- 从当前盒子随机转移到下一个盒子,规则是:若当前是盒子 $1$,那么下一盒子一定是盒子 $2$;若当前是盒子 $2$ 或盒子 $3$,那么分别以概率 $0.4$ 和 $0.6$ 转移到左边或右边的盒子;若当前是盒子 $4$,那么各以 $0.5$ 的概率停留在盒子 $4$ 或转移到盒子 $3$
- 确定转移的盒子后,再从这个盒子里随机抽取 $1$ 个球,记录其颜色,放回
- 如此重复 $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$,求最有可能的对应的状态序列
关于该问题,详见:隐马尔可夫模型的预测