我正在寻找Rabiner(forward Algorithm on wikipedia)提出的前向算法的一些实际应用。
我更喜欢执行时间很重要的应用程序。
答案 0 :(得分:3)
如果你的意思是前向后向算法,那就是在Baum-Welch algorithm内部用于训练HMM,它用于各种领域,如NLP(词性标注,语音识别)和生物信息学。
答案 1 :(得分:1)
实际上,前向算法与Baum-Welch中使用的前向(EM)算法不同。前向算法用于确定处于给定观察序列的状态的概率。对于每次观察,您将获取针对先前观察计算的状态的概率,然后使用转移概率表将其延长一步。前向算法基本上是一种有效的方法,因为它缓存了所有中间状态概率,因此它们只计算一次。 (这是一种记忆或动态编程的形式......)
Baum-Welch算法用于从数据中导出过渡和发射概率,而前向算法(和Viterbi算法)使用这些数据来计算状态概率,并且最有可能是给定观测值的状态。
答案 2 :(得分:1)
澄清几点,因为我不同意维基百科对Forward算法的描述(见Durbin):
前向(和单独,后向)用于计算状态路径未知时观察/发射序列的概率,而且,比原始方法(非常快速地结束)更有效地计算该概率在组合爆炸中)。它们一起可以提供观察序列中每个位置的给定发射/观察的概率。根据该信息,计算最可能的状态路径的版本(“后验解码”)。维特比算法计算最可能的状态路径的另一个版本。
实际上,与计算给定序列w.r.t的概率的麻烦相比,前向或后向的良好实现将为您节省大量时间。 每个其他状态路径。
您将在任何您想要分离系统所处状态的上下文中看到这些应用,以及您可以测量系统的可观察量。最可雇佣(也很复杂)的可能是财务问题。简单地说,你的状态路径是由[Bull,Bear]的元素组成的,并且你在过去的几个月中从VIX或其他方面获得了后验解码的状态路径,其解决方案与您正在进行的商业/地缘政治事件相关试图抓住。这种计算可用于训练您的模型,因为您收到新的和更多的数据(通过Baum-Welch或更一般的EM算法),Forward会告诉您何时获得的数据(您的实时序列)观察结果相对于您对模型的期望(从那时开始训练)的概率变得非常低。从统计学上讲,这就是你买或卖的时候。