隐马尔可夫模型与卡尔曼滤波器:原理、应用与挑战
1. 隐马尔可夫模型(HMM)概述
隐马尔可夫模型(HMM)是一种用于描述具有离散状态变量的时序概率模型。在HMM中,系统的状态由一个单一的离散随机变量表示,该变量的可能取值代表了世界的各种可能状态。例如,之前提到的雨伞示例就是一个HMM,因为它只有一个状态变量“Raint”。
1.1 Viterbi算法
Viterbi算法用于寻找最可能的状态序列。在每个时间步,通过特定公式计算消息,在观察序列结束时,消息中会包含到达每个最终状态的最可能序列的概率。为了确定实际的序列,算法还需要记录每个状态的最佳前驱状态。该算法的时间复杂度与序列长度t呈线性关系,但其空间复杂度也与t呈线性关系,因为需要保存指向每个状态的最佳序列的指针。
Viterbi算法存在数值下溢的问题,尤其是在处理DNA分析或消息解码等具有大量步骤的实际应用时。解决方法有两种:一是在每一步对消息进行归一化;二是使用对数概率并将乘法替换为加法。
1.2 HMM的矩阵表示
对于单一离散状态变量Xt,其可能取值用整数1到S表示,S为可能状态的数量。转移模型P(Xt |Xt−1)可以表示为一个S×S的矩阵T,其中Tij表示从状态i转移到状态j的概率。传感器模型可以用对角观察矩阵Ot表示,Ot的第i个对角元素是在状态i下观察到证据et的概率。
使用列向量表示前向和后向消息后,前向和后向方程可以表示为简单的矩阵 - 向量运算:
- 前向方程:f1:t+1 = αOt+1T⊤f1:t
- 后向方程:bk+1:t = TOk+1bk+2:t
前向 - 后向算法的时间
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



