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_Tq_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(QO, \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_iO, \lambda)\),\(\xi_t(i,j) = P(q_t = s_i, q_{t+1} = s_jO, \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,但需额外考虑持续时间分布