隐马尔可夫模型(HMM)是一种用于序列数据的统计模型,其中不可观测的状态序列生成可观测的输出。隐藏状态遵循马尔可夫链,每个观测值则从与其当前状态对应的分布中抽取。因此,隐马尔可夫模型既描述底层系统如何变化,也描述这些变化如何产生测量结果。当底层状态无法直接观测时,这种模型可用于统计学、机器学习和时间序列分析。(cs.ubc.ca)
数学结构
在标准的有限状态、离散时间隐马尔可夫模型中,隐藏随机变量 取 个可能值之一, 表示位置 处的观测值。隐藏序列是满足一阶马尔可夫假设的随机过程:
关于观测的假设是条件独立:给定完整的隐藏序列后,各观测相互独立,且 的分布仅取决于 。这些假设针对的是隐藏过程及给定隐藏状态后的观测;观测序列本身不一定是一阶马尔可夫链。(web.stanford.edu)
时间齐次模型具有三个主要组成部分:
- 初始分布: 。
- 转移矩阵: 。
- 发射分布: 。
转移矩阵每一行的元素之和均为一。发射分布可以描述离散符号、连续测量值或向量。连续发射分布可以采用正态分布或高斯混合模型;此时, 表示概率密度,而非某一点的概率。(cs.ubc.ca)
给定参数 ,联合分布可分解为
因此,隐马尔可夫模型是一种生成模型:它规定了如何生成状态和观测。其依赖结构也可表示为链式贝叶斯网络。(web.stanford.edu)
推断与解码
经典的计算问题分为三类:计算观测序列的似然、估计其隐藏状态,以及学习模型参数。直接枚举全部 个状态序列通常并不可行,而链式结构使高效的动态规划成为可能。(cs.ubc.ca)
前向算法通过对隐藏路径求和来计算观测序列的似然。定义 ,则
似然为 。对于稠密转移矩阵,不计计算发射分布值的开销,该递推所需的时间为 。对中间量进行缩放或采用对数运算,可以防止长序列计算中的数值下溢。(cs.ubc.ca)
前向—后向算法将前向量与描述后续观测的后向量结合起来,得到状态的后验概率 。滤波以截至当前位置的观测为条件;平滑还纳入后续观测。两者都对不确定性进行量化,而不是只选择一条状态路径。(cs.ubc.ca)
维特比算法则寻找概率最大的单条完整隐藏状态序列。它将求和替换为取最大值,并保存所选的前驱状态以便回溯。这种全局解码不同于在每个位置独立选择概率最大的状态:依据边缘概率作出的选择未必构成概率最大的路径,甚至可能违反转移约束。(web.stanford.edu)
参数估计
当训练数据附带隐藏状态标签时,监督学习可以通过归一化计数来估计离散的转移概率和发射概率。当只有观测数据时,无监督学习通常采用鲍姆—韦尔奇算法,它是期望最大化算法针对隐马尔可夫模型的一种形式。(web.stanford.edu)
在期望步骤中,前向—后向推断计算各状态的预期占用次数和状态转移的预期次数。在最大化步骤中,算法利用这些期望值更新参数。在精确更新的条件下,观测数据的似然不会下降,但最大似然估计可能达到局部最优,而非全局最优。因此,初始化会影响拟合结果。对于连续发射分布,更新过程还会估计所选概率密度族的参数。(cs.ubc.ca)
应用
在语音识别中,隐马尔可夫模型的状态可以表示语音音素的不同阶段,观测则为声学特征向量。从左到右的转移结构刻画音素内部的阶段推进,同时通过自转移允许持续时间发生变化。这将序列的组织方式与声学测量值的统计描述区分开来。(cs.ubc.ca)
在自然语言处理中,隐马尔可夫模型可以将语法类别视为隐藏状态,将词语视为观测。在生物序列分析中,轮廓隐马尔可夫模型描述各位置特有的序列模式,利用匹配、插入和删除状态来表示保守位置及空位。这类模型可用于搜索相关的蛋白质和脱氧核糖核酸序列。在此,序列索引表示位置,而非经过的时间。(web.stanford.edu)
假设与扩展
标准隐马尔可夫模型用当前状态概括相关的隐藏历史,并假设发射观测在给定状态后相互独立。如果观测之间仍存在当前状态无法解释的依赖关系,这些限制可能不足以描述数据。因此,状态空间的设计与发射分布决定了模型能够表示哪些结构。(cs.ubc.ca)
对于非吸收状态 ,恒定的自转移概率意味着连续驻留时间服从几何分布:
隐半马尔可夫模型以显式的持续时间分布替代这种隐式的持续时间机制。它可以描述这样的驻留时间:驻留结束的概率取决于系统已经在该状态中停留了多久,同时仍以隐藏状态来描述序列观测。(cs.ubc.ca)