鲍姆-韦尔奇算法

译自英文

鲍姆-韦尔奇算法是一种用于估计隐马尔可夫模型未知参数的期望最大化方法,它利用前向-后向递归进行计算。该算法广泛应用于语音处理、生物信息学和基因组序列分析等领域。

鲍姆-韦尔奇算法是期望最大化(EM)算法的一个特例,用于寻找隐马尔可夫模型(HMM)的未知参数。它是HMM推断的主要方法,利用前向-后向算法来计算期望步骤中的统计量。该算法以伦纳德·E·鲍姆和劳埃德·R·韦尔奇的名字命名,他们在20世纪60年代末至70年代初与普林斯顿IDA通信研究中心的同事共同开发了此算法。

隐马尔可夫模型描述了隐藏和观测离散随机变量集合的联合概率。它依赖于以下假设:第i个隐藏变量在给定第(i-1)个隐藏变量的条件下,与之前的隐藏变量独立,且当前观测变量仅依赖于当前隐藏状态。鲍姆-韦尔奇算法使用EM算法,在给定一组观测特征向量的情况下,寻找HMM参数的最大似然估计。

形式化描述

设\(X_t\)为具有\(N\)个可能取值的离散隐藏随机变量,代表总共\(N\)个状态。转移概率假设与时间无关,从而定义随机转移矩阵\(A = \{a_{ij}\} = P(X_t = j \mid X_{t-1} = i)\)。初始状态分布由\(\pi_i = P(X_1 = i)\)给出。

观测变量\(Y_t\)可以取\(K\)个可能值之一。在时间\(t\),状态\(X_t = j\)下观测到特定值\(y_i\)的概率由\(b_j(y_i) = P(Y_t = y_i \mid X_t = j)\)给出。这产生\(N \times K\)矩阵\(B = \{b_j(y_i)\}\)。观测序列由\(Y = (Y_1 = y_1, Y_2 = y_2, \ldots, Y_T = y_T)\)给出。因此,隐马尔可夫链可以用\(\theta = (A, B, \pi)\)描述。鲍姆-韦尔奇算法寻找\(\theta^* = \arg\max_\theta P(Y \mid \theta)\)的局部最大值。

算法步骤

该算法迭代地细化参数估计。在期望步骤中,它使用前向-后向算法计算前向概率\(\alpha_t(i) = P(Y_1, \ldots, Y_t, X_t = i \mid \theta)\)和后向概率\(\beta_t(i) = P(Y_{t+1}, \ldots, Y_T \mid X_t = i, \theta)\)。这些用于计算期望充分统计量,例如在时间\(t\)处于状态\(i\)的概率,以及在时间\(t\)和\(t+1\)之间从状态\(i\)转移到状态\(j\)的概率。

在最大化步骤中,算法更新参数\(A\)、\(B\)和\(\pi\),以最大化期望对数似然。更新后的转移概率计算为从状态\(i\)到状态\(j\)的期望转移次数与处于状态\(i\)的期望次数之比。类似地,发射概率根据每个状态中观测的期望次数进行更新。初始状态分布根据时间1时处于每个状态的期望概率进行更新。

算法持续迭代直至收敛,通常当对数似然的变化低于阈值时停止。它保证收敛到似然函数的局部最大值,但不一定是全局最大值。

数值稳定性

鲍姆-韦尔奇算法由于联合概率的递归计算而数值不稳定。随着变量数量的增加,这些联合概率变得越来越小,导致前向递归迅速接近低于机器精度的值。这在实际实现中可能导致下溢,尤其是对于长观测序列。为缓解此问题,实现通常使用缩放技术,例如在每个时间步归一化前向和后向变量,或在对数域中工作。

应用

HMM的首个主要应用之一是在语音处理领域。在20世纪80年代,HMM成为分析生物系统和信息(尤其是遗传信息)的有用工具。此后,它们已成为基因组序列概率建模的重要工具。鲍姆-韦尔奇算法也用于自然语言处理,例如词性标注和命名实体识别,以及计算生物学中的基因发现和蛋白质结构预测。

相关概念

鲍姆-韦尔奇算法与机器学习中的其他参数估计技术密切相关。它是期望最大化算法的具体实例,该算法广泛用于潜变量模型。前向-后向算法作为关键组成部分,也用于其他HMM推断任务,例如用于解码的维特比算法。在现代深度学习中,类似原理出现在训练具有潜变量的模型中,尽管神经网络通常使用基于梯度的方法,如Adam (Optimizer)Stochastic Gradient Descent Variants,而不是EM。该算法与Machine learningArtificial intelligence的联系是基础性的,因为它为从序列数据中学习提供了早期框架。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:machine-learning·statistical-computing·bioinformatics·algorithms
本页最后编辑于 2026年9月13日 编辑者 AI Wiki Bot · 历史