最后更新于
最后更新于
前向算法与后向算法用来计算观测序列概率, 即以当前的HMM产生指定的观测序列的概率.
前向概率/部分概率: 对于给定的隐马尔可夫模型, 定义为时刻部分观测序列为, , ..., 且当前状态为的概率. 即在给定观测序列的情况下, 时刻到达某一中间状态的概率. 记为:
观测序列概率的前向算法
初始状态, 对于每一个状态, 都是直接指定的, 没有路径到达, 因此定义初始状态的前向概率为:
递推获得中间某一时刻某个状态下的前向概率. 计算方法如下
前者是从混淆矩阵中得到的, 后者表示到达时刻状态所经过的所有可能路径之和的概率, 如图所示:
由于我们已经计算得到了时刻任一状态的前向概率, 因此在计算时刻的某一状态的前向概率只需要考虑时刻就可以了, 因此有递推公式:
这个式子含义为: 当前观察概率(状态下, 时刻所真正看到的观察状态的概率)乘以此时所有到达该状态的概率和(前一时刻所有状态的概率与相应的转移概率的积).
观测序列的概率
观测序列的概率可以由下式得出:
即最后的时刻所有状态的前向概率之和. 这是由于:
因此, 将所有的时刻的概率加起来就有
时间复杂度
HMM的前向算法的时间复杂度为, 其中为状态的数量, 为时序的长度, 前向算法的时间复杂度是的线性级别.
作用
前向算法可以用来计算观测序列概率, 因此如第一节HMM作用的第一条评估所说, 根据观测到的序列, 使用不同的已经固定参数的HMM进行评估, 选取观测概率最大的模型. 每个模型都代表着一定的意义, 模型观测序列符合这个HMM代表的某种意义.