抄录自 周志华. 机器学习 (北京: 清华大学出版社) 第 133− 137 页 Zhou ZH 2016[J]. Machine Learning, 2016.
隐马尔可夫模型是结构最简单的动态贝叶斯网,是一种有向图模型,主要用于时序数据建模。隐马尔可夫模型中变量可以分为两组。第一组谁状态变量,,其中
表示第i时刻的系统状态,通常假定状态变量是隐藏的,不可以 观测的,因此状态变量也称为隐变量(hidden variable)。第二组是观测变量
, 其中
表示第i时刻的观测值。系统通常在多个状态
之间转换,因此状态变量
的取值范围(状态空间)
通常有N个可能取值的离散空间。观测变量
可以 是离散型也可以是连续型的,这里仅考虑离散型观测变量,并假定取值范围
。
图中的箭头表示变量间的依赖关系。在任一时刻,观测变量的取值仅依赖于状态变量,即(观测变量)由(状态变量)
确定,与其他状态变量以及观测变量的取值无关。同时,t时刻的状态
仅依赖与t-1时刻的状态
,与其余n-2的状态无关,这就是所谓的马尔可夫链。即系统的下一时刻的状态仅由当前状态决定,不依赖任何以往的任何状态。基于这种依赖关系,所有变量的联合概率分布为:
除了结构信息,想要确定一个隐马尔可夫模型还需要以下三组参数。
- 状态转移概率:模型在各个状态之间转换的概率,通常记作矩阵
,其中
,
表示在任意时刻t,若状态为
,则在下一时刻状态为
的概率。
- 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记作为矩阵
,其中
,
表示在任意时刻,若状态为
,则观测值
被获取的概率。
- 初始状态概率:模型在初始时刻各个状态出现的概率,通常记作
,其中
,
,表示模型初始状态为
的概率。
通过指定状态空间,观测空间,和上述三组参数,就能确定一个隐马尔可夫模型,通常用来指代。给定隐马尔可夫模型,它按照如下过程产生观测序列:
:
(1) 设置t=1,根据初始状态概率选择初始状态
.
(2) 根据状态和输出观测概率B选择观测变量值
.
(3) 根据状态和状态转移矩阵A转移模型状态,即确定
。
(4) 若t<n,设置t=t+1,并转到第2步,否则停止。
其中,分别是t时刻的状态和观测值。
在实际应用中,人们常关注隐马尔可夫模型的三个基本问题:
(1)如何根据观测序列推断出隐藏的模型状态。即给定模型,和观测序列
,如何找到与此观测序列最匹配的状态序列
?
(2)如何训练模型,使它能够最好地描述观测数据?即给定观测序列,如何调整模型参数使该观测序列出现的概率
最大?
(3)如何评估模型与观测序列之间的匹配程度?即给定模型,如何有效计算其产生观测序列
的概率
?