隐马尔可夫模型
介绍隐马尔可夫模型的基本概念,包括模型定义、核心假设、示例应用及三个基本问题等内容
基本定义
隐马尔可夫模型(Hidden Markov Model, HMM)是用于描述带有隐含状态序列的随机过程的概率模型,其核心在于: 观察到的序列由未观测的隐状态序列生成,而隐状态之间满足马尔可夫性质。
HMM 的形式化定义(五元组)
一个 HMM 可表示为五元组 :
- :隐状态集合(如词性标签)
- :观测值集合(如单词)
- :初始状态分布
- :状态转移概率矩阵
- :观测概率矩阵(生成单词的概率)
联合概率可写为
三个核心假设
- 马尔可夫性:
- 齐次性(不动性):转移概率与时间无关
- 输出独立性: 仅依赖
这些假设使模型可 tractable 地进行推断与训练
示例:词性标注任务中的 HMM
以句子 “Time flies quickly” 为例,目标是推断最可能的词性序列
(1)初始状态概率
句子开头每个词性的概率:
(2)状态转移概率
词性之间的转移概率:
(3)观测概率
隐藏状态生成观测单词的概率:
求最优词性序列:维特比算法(Viterbi Algorithm)
维特比算法通过动态规划求解最大概率的隐状态路径
(1)构建动态规划表
- 行:各隐状态
- 列:各观测词
- 单元格:到当前位置的最佳路径概率及其前驱状态
(2)初始化
以 “Time” 为例:
(3)递推
例如计算第二个词 “flies” 的动词状态:
(4)回溯
根据记录的最优前驱状态重建整条最优路径,最终输出最可能的词性序列:
HMM 的三个基本问题
(1)评估问题
- 目标:计算序列出现概率
- 方法:前向算法 / 后向算法
- 示例:给定音频序列,判断是否属于某个单词模型
(2)解码问题
-
目标:找到概率最大的隐状态序列
-
方法:维特比算法
-
示例:词性标注任务:给定一个句子的单词序列(如 "Time flies quickly"),找到对应的最可能的词性序列(如 "Noun, Verb, Adverb")
(3)学习问题
- 目标:对于给定观察值序列 ,调整参数 ,使得观察值出现的概率 最大
- 方法:Baum–Welch 算法(EM 方法的一种)
- 示例:如 DNA 序列分析:给定一组 DNA 序列(观测序列),学习模型参数以区分不同的区域类型(隐藏状态,例如基因编码区和非编码区)
这篇文档有帮助吗?