整个算法的目标是计算联合概率分布
。为了方便,我们把
简写做
,将
简写做
。直接计算
则需要计算所有状态序列
的边缘分布,而它的数量和
成指数相关。使用这一算法,我们可以利用HMM的条件独立性质,递归地进行计算。
我们令
.
利用链式法则来展开
,我们可以得到
.
由于
和除了
之外的一切都条件独立,而
又和
之外的一切都条件独立,因此
.
这样,由于
和
由HMM的输出概率和状态转移概率我们可以很快计算用
计算出
,并且可以避免递归计算。
前向算法可以很容易地被修改来适应其他的HMM变种,比如马尔可夫跳跃线性系统。