尽量以最少的符号去诠释模型,对公式推导的每个步骤也会详细解读,因为是按自己的思路理解的,所以符号应用上会与网上常见教程有出入。
一、定义模型
一个隐马尔可夫模型(Hidden Markov Model, HMM)包含以下概念和参数:
- 按一定概率生成不可观测的隐含状态序列 H 链;
- 由各个隐含状态生成一个可观测结果序列 V 链;
- H 之间存在一个状态转换概率函数矩阵 A;
- H 到 V 存在一个映射概率函数矩阵 B;
- H 的初始状态生成概率变量 C;
- S 为所有隐含状态的集合,有 n 种可能的状态;
- R 为所有可观测结果的集合,有 m 种可能的结果;
下图为包含以上参数的可视化模型:
用实际的例子套用的话,可以用自然语言处理里的词性标注做例子,这也是 HMM 比较常见的应用。
在词性标注中,把实际词语序列(一个句子)看作 V 链,把对应的词性标注序列看作 H 链。
比如
I watched the play last night.
是一条 V 链,对应的 H 链即为:
(代词-动词-限定词-名词-形容词-名词)
c(x1) 即为 “代词出现的概率”;
b(x1y1) 即为 “在出现代词的情况下,出现单词 ‘I’ 的概率”;
a(x1x2) 即为 “在出现代词的情况下,下一个出现的单词为动词的概率”;
在没给定句子的原始模型中,x 和 y 都是变量,分别有 n 种和 m 种可能。
另外,HMM 有以下几个约束条件:
-
根据马尔可夫性假设:H 链在任一时刻 t 的状态只依赖于其前一个时刻的状态。可得 a 之间没有依赖关系。
-
根据观测独立