唯一最可能的故事
前向算法把所有隐含路径加起来,说明数据有多大可能。我们常常想要另一样东西:唯一最好的故事,即以最高概率解释数据的那一条状态序列。维特比解码就能找到它。思路是在前向算法上改一处:不对前一个状态求和,而是取最好的那个。保存一个得分 δt(j),即第 t 天结束于状态 j 的最佳路径的概率,并记住是哪个前一状态带来了它,也就是回溯指针。
δ1(j)=πjBj(o1),δt(j)=[imaxδt−1(i)Aij]Bj(ot),ψt(j)=argimaxδt−1(i)Aij(1) 最后一天之后,选出 δT 最大的状态,再沿指针 ψ 往回走,读出整条路径。有两点实际注意。第一,用对数:许多概率的乘积会趋近于零,取对数后变成求和,而对数单调递增,所以最优路径不变。第二,最优路径并不等于每天分别选最可能的状态。路径可能被后面发生的事情所决定,下面的例子会说明。
再看 小、大、大第 1 天:
δ1=(0.54, 0.12)。第 2 天(大):平静最好来自平静,
0.54⋅0.9⋅0.1=0.0486;动荡最好来自动荡,
0.12⋅0.8⋅0.7=0.0672,而不是来自平静(
0.54⋅0.1⋅0.7=0.0378)。第 3 天:动荡来自动荡,
0.0672⋅0.8⋅0.7=0.0376,平静只有
0.0044。最佳路径是 动荡、动荡、动荡,概率
0.0376。可单看第一天,它以
0.82 的概率像是平静。后面的大波动把整个故事拉向了动荡。这条路径比 平静、动荡、动荡(
0.0212)可能性高
1.78 倍。
- 维特比把前向算法中的求和换成取最大值,并保留回溯指针。
- 最优路径可能不同于逐日分别取的最可能状态。
- 使用对数:对数求和避免下溢,且最优路径不变。
实验:评分内容
- 第二天的维特比得分15 分
- 最佳路径的概率15 分
- 最佳路径的对数10 分
- 与另一条路径比较10 分
- 最佳路径的第一个状态15 分
- 维特比的步骤10 分
- 配对术语10 分
- 为什么使用对数15 分