Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

A.2 隐马尔可夫模型

需要计算可观察事件序列的概率时,马尔可夫链很有用。然而,许多时候我们关注的事件是隐藏的,无法直接观察。例如,文本中的词性标签通常不可见;我们看到的是词,必须根据词序列推断标签。这些标签没有被观察到,因而称为隐藏状态。

隐马尔可夫模型(HMM)能够同时描述观察事件——例如输入中可见的词——以及隐藏事件——例如在概率模型中被视为观察结果之成因的词性标签。HMM 由以下组成部分指定:

Q=q1q2qNQ=q_1q_2\ldots q_N

NN 个状态组成的集合

A=a11aijaNNA=a_{11}\ldots a_{ij}\ldots a_{NN}

转移概率矩阵 AAaija_{ij} 表示从状态 ii 转移到状态 jj 的概率,且对所有 ii 都有 j=1Naij=1\sum_{j=1}^{N}a_{ij}=1

B=bi(ot)B=b_i(o_t)

观察似然序列,也称发射概率;每个值表示状态 qiq_i 生成观察 oto_t 的概率,其中 oto_t 来自词表 V=v1,v2,,vVV=v_1,v_2,\ldots,v_V

π=π1,π2,,πN\pi=\pi_1,\pi_2,\ldots,\pi_N

状态上的初始概率分布;πi\pi_i 是马尔可夫链从状态 ii 开始的概率。某些状态可有 πj=0\pi_j=0,并且 i=1Nπi=1\sum_{i=1}^{N}\pi_i=1

HMM 的输入为 O=o1o2oT\mathcal{O}=o_1o_2\ldots o_T,即由 TT 个观察构成的序列;每个观察都来自词表 VV

一阶隐马尔可夫模型采用两个简化假设。第一,与一阶马尔可夫链相同,某个状态的概率只取决于前一个状态:

P(qiq1qi1)=P(qiqi1)(A.4)P(q_i\mid q_1\ldots q_{i-1})=P(q_i\mid q_{i-1})\tag{A.4}

第二,输出观察 oio_i 的概率只取决于生成它的状态 qiq_i,不取决于其他状态或其他观察。这称为输出独立性假设(output independence):

P(oiq1qi,,qT,o1,,oi,,oT)=P(oiqi)(A.5)P(o_i\mid q_1\ldots q_i,\ldots,q_T,o_1,\ldots,o_i,\ldots,o_T)=P(o_i\mid q_i)\tag{A.5}

为说明这些模型,我们采用 Jason Eisner(2002)设计的一项任务。设想你是 2799 年的一名气候学家,正在研究全球变暖史。你找不到美国马里兰州 Baltimore 在 2020 年夏天的任何天气记录,却发现了 Jason Eisner 的日记,里面记载着他在那个夏天每天吃了多少个冰淇淋。我们的目标是利用这些观察估计每天的气温。为简化天气任务,假设一天只有两种状态:冷(C)或热(H)。于是 Eisner 任务为:

给定观察序列 OO——每个观察都是一个整数,表示某天吃掉的冰淇淋数——找出导致 Jason 吃这些冰淇淋的“隐藏”天气状态序列 QQ(H 或 C)。

图 A.2 给出冰淇淋任务的一个 HMM 示例。两个隐藏状态 H 和 C 对应炎热与寒冷天气;从字母表 O={1,2,3}O=\{1,2,3\} 取值的观察,则对应 Jason 某天吃掉的冰淇淋数。

图 A.2 把 Jason 吃掉的冰淇淋数量(观察变量)与天气 H 或 C(隐藏变量)联系起来的隐马尔可夫模型。

Rabiner(1989)在一篇颇具影响力的教程中——其基础是 Jack Ferguson 在 20 世纪 60 年代所作的教程——提出应通过三个基本问题刻画隐马尔可夫模型:

第 18 章已经给出问题 2 的一个例子。下面两节介绍用于解决问题 1 和问题 3 的前向算法与前向—后向算法,并进一步说明问题 2。