1 基本概念
1.1 马尔可夫链与隐马尔可夫链
马尔可夫链是一种随机过程,其未来状态仅依赖于当前状态,而与过去状态无关(马尔可夫性)。隐马尔可夫链则扩展了该概念:系统存在一组隐藏状态,这些状态构成一个马尔可夫链,但观测者无法直接看到状态,只能观察到由每个隐藏状态按概率生成的观测符号。因此,HMM是一个双重随机过程:隐藏状态间的转移是随机的,观测符号的生成也是随机的。
1.2 HMM的组成要素
1.2.1 状态集与观测集
状态集是一组有限的隐藏状态,记为 \(S = \{s_1, s_2, \dots, s_N\}\)。观测集是可能的观测符号集合,记为 \(V = \{v_1, v_2, \dots, v_M\}\)。在应用时,观测序列通常是离散的符号序列或连续向量的量化结果。
1.2.2 状态转移概率矩阵
状态转移概率矩阵 \(A = [a_{ij}]\) 描述了从状态 \(s_i\) 转移到状态 \(s_j\) 的概率,满足 \(\sum_{j=1}^N a_{ij} = 1\)。矩阵维度为 \(N \times N\)。
1.2.3 观测发射概率矩阵
观测发射概率矩阵 \(B = [b_j(k)]\) 表示在隐藏状态 \(s_j\) 下生成观测符号 \(v_k\) 的概率,满足 \(\sum_{k=1}^M b_j(k) = 1\)。维度为 \(N \times M\)。
1.2.4 初始状态概率分布
初始状态概率分布 \(\pi = [\pi_i]\) 表示在时间 \(t=1\) 时系统处于状态 \(s_i\) 的概率,满足 \(\sum_{i=1}^N \pi_i = 1\)。
2 三个基本问题
2.1 评估问题
| 评估问题:给定模型参数 \(\lambda = (A, B, \pi)\) 和观测序列 \(O = (o_1, o_2, \dots, o_T)\),计算该观测序列由模型生成的概率 \(P(O | \lambda)\)。常用前向算法和后向算法求解。 |
|---|
2.1.1 前向算法
| 前向算法通过定义前向变量 \(\alpha_t(i) = P(o_1, o_2, \dots, o_t, q_t = s_i | \lambda)\),利用递推关系计算所有时刻的概率,最终得到 \(P(O | \lambda) = \sum_{i=1}^N \alpha_T(i)\)。该算法时间复杂度为 \(O(N^2 T)\),避免直接枚举所有状态序列。 |
|---|
2.1.2 后向算法
| 后向算法定义后向变量 \(\beta_t(i) = P(o_{t+1}, o_{t+2}, \dots, o_T | q_t = s_i, \lambda)\),从时间 \(T\) 向后递推。其计算结果与前向算法一致:\(P(O | \lambda) = \sum_{i=1}^N \pi_i b_i(o_1) \beta_1(i)\)。 |
|---|
2.2 解码问题
| 解码问题:给定模型 \(\lambda\) 和观测序列 \(O\),寻找最可能的隐藏状态序列 \(Q^* = (q_1^*, q_2^*, \dots, q_T^*)\),即最大化 \(P(Q | O, \lambda)\)。常用维特比算法。 |
|---|
2.2.1 维特比算法
| 维特比算法利用动态规划,定义维特比变量 \(\delta_t(i) = \max_{q_1, \dots, q_{t-1}} P(q_1, \dots, q_{t-1}, q_t = s_i, o_1, \dots, o_t | \lambda)\),并记录路径回溯指针。算法递推到 \(t=T\) 后,通过回溯得到最优路径。 |
|---|
2.3 学习问题
| 学习问题:给定观测序列 \(O\)(或一组观测序列),估计模型参数 \(\lambda\),使 \(P(O | \lambda)\) 最大化。常用鲍姆-韦尔奇算法。 |
|---|
2.3.1 鲍姆-韦尔奇算法(EM算法)
鲍姆-韦尔奇算法是期望最大化(EM)算法在HMM中的具体应用。通过迭代计算期望(E步)和最大化(M步),更新 \(A, B, \pi\) 直至收敛。E步利用前向-后向算法计算状态占用概率和转移概率的期望;M步据此重估参数。
3 算法详解
3.1 前向算法
3.1.1 前向变量的定义与递推
| 初始化:\(\alpha_1(i) = \pi_i b_i(o_1)\),\(1 \leq i \leq N\)。递推:\(\alpha_{t+1}(j) = \left[ \sum_{i=1}^N \alpha_t(i) a_{ij} \right] b_j(o_{t+1})\),\(1 \leq t \leq T-1\)。终止:\(P(O | \lambda) = \sum_{i=1}^N \alpha_T(i)\)。递推式的含义是将所有前一时状态的概率加权转移到当前状态,再乘以当前观测发射概率。 |
|---|
3.2 后向算法
3.2.1 后向变量的定义与递推
| 初始化:\(\beta_T(i) = 1\),\(1 \leq i \leq N\)。递推:\(\beta_t(i) = \sum_{j=1}^N a_{ij} b_j(o_{t+1}) \beta_{t+1}(j)\),\(t = T-1, \dots, 1\)。终止:\(P(O | \lambda) = \sum_{i=1}^N \pi_i b_i(o_1) \beta_1(i)\)。后向变量表示给定当前状态,未来观测序列的概率。 |
|---|
3.3 维特比算法
3.3.1 维特比路径与回溯
初始化:\(\delta_1(i) = \pi_i b_i(o_1)\),\(\psi_1(i) = 0\)。递推:\(\delta_t(j) = \max_{1 \leq i \leq N} [\delta_{t-1}(i) a_{ij}] b_j(o_t)\),\(\psi_t(j) = \arg\max_{1 \leq i \leq N} [\delta_{t-1}(i) a_{ij}]\)。终止:最优路径概率 \(P^* = \max_i \delta_T(i)\),最优末状态 \(q_T^* = \arg\max_i \delta_T(i)\)。回溯:\(q_t^* = \psi_{t+1}(q_{t+1}^*)\),\(t = T-1, \dots, 1\)。
3.4 鲍姆-韦尔奇算法
3.4.1 Q函数与参数重估公式
| 定义辅助变量:\(\gamma_t(i) = P(q_t = s_i | O, \lambda)\),\(\xi_t(i,j) = P(q_t = s_i, q_{t+1} = s_j | O, \lambda)\)。E步利用前向-后向变量计算 \(\gamma_t(i)\) 和 \(\xi_t(i,j)\)。M步重估:\(\hat{\pi}_i = \gamma_1(i)\);\(\hat{a}_{ij} = \frac{\sum_{t=1}^{T-1} \xi_t(i,j)}{\sum_{t=1}^{T-1} \gamma_t(i)}\);\(\hat{b}_j(k) = \frac{\sum_{t=1, o_t = v_k}^T \gamma_t(j)}{\sum_{t=1}^T \gamma_t(j)}\)。迭代直至参数收敛。 |
|---|
4 应用领域
4.1 语音识别
HMM是语音识别的基础技术之一。每个音素或单词对应一个隐藏状态序列,语音信号的帧作为观测序列。通过训练得到每个词的HMM模型,识别时将未知语音特征序列与模型匹配,采用维特比算法解码出最可能的词序列。
4.2 自然语言处理
4.2.1 词性标注
词性标注任务中,隐藏状态为词性标记(如名词、动词),观测为词语本身。利用HMM模型,结合大规模语料训练转移概率和发射概率,实现对新句子词性序列的自动标注。
4.2.2 命名实体识别
命名实体识别中,隐藏状态表示实体类型(人名、地名等)或非实体,观测为单词或字符序列。HMM能够捕捉实体标签间的转移规律,结合特征工程提高识别准确率。
4.3 生物信息学
4.3.1 基因预测
在DNA序列中,隐藏状态可表示编码区、非编码区、内含子、外显子等,观测为碱基序列。HMM可以建模基因组结构,识别基因边界和功能区。
4.3.2 蛋白质序列分析
蛋白质序列分析中,隐藏状态代表不同的二级结构(α螺旋、β折叠等),观测为氨基酸残基。HMM被用于预测蛋白质的二级结构、结构域以及远程同源检测。
4.4 其他领域
HMM还应用于金融时间序列分析(如股票市场状态识别)、手势识别、手写文字识别、机器人定位(如蒙特卡洛定位方法的变体)以及气象学中的隐状态建模等。
5 扩展与变体
5.1 连续型隐马尔可夫模型
标准HMM假设观测符号是离散的。连续型HMM使用概率密度函数(如高斯混合模型)代替发射概率矩阵,适用于连续特征(如语音频谱参数)。模型参数包括均值、协方差和混合权重,学习算法仍可用EM框架。
5.2 高阶隐马尔可夫模型
高阶HMM放宽了马尔可夫性假设,当前状态依赖于前 \(k\) 个状态。这增加了模型复杂度,但能捕捉更长期的时间依赖。通常通过状态扩展(将 \(k\) 个状态组合成元状态)降阶为一阶模型处理。
5.3 隐半马尔可夫模型
隐半马尔可夫模型(HSMM)取消了HMM中状态持续时间的几何分布假设,允许显式建模状态驻留时间(如泊松分布)。每个隐藏状态可停留任意整数时长,更符合实际应用(如语音音素时长)。其算法类似HMM,但需额外考虑持续时间分布。