寻找前向算法的用途



我正在寻找Rabiner提出的前向算法的一些实际应用(维基百科上的前向算法)。

我更喜欢执行时间很重要的应用程序。

如果你指的是前向-后向算法,那么它应用于Baum-Welch算法中用于训练HMM,该算法用于NLP(词性标记,语音识别)和生物信息学等各个领域。

实际上,前向算法与鲍姆-韦尔奇中使用的前向-后向(EM)算法不同。 前向算法用于确定给定一系列观测值处于某种状态的概率。 对于每个观测值,您获取为前一个观测值计算的状态的概率,然后使用转移概率表将其再扩展一步。 前向算法基本上是一种有效的方法,因为它缓存了所有中间状态概率,因此它们只计算一次。 (这是记忆或动态编程的一种形式...

Baum-Welch 算法用于从数据中推导出跃迁和发射概率,而前向算法(和维特比算法)使用此数据来计算状态概率和给定观测值的最可能状态。

澄清几点,因为我不同意维基百科对前向算法的描述(参见德宾):

前进(以及单独的后退)用于在状态路径未知时计算一系列观测/发射的概率,此外,计算该概率比朴素方法(很快就会以组合爆炸告终)更有效。它们可以共同提供观测序列中每个位置给定发射/观测的概率。正是根据此信息计算出最可能的状态路径的版本("后验解码")。维特比算法计算最可能的状态路径的另一个版本。

事实上,与计算给定序列的概率相比,向前或向后的良好实现将为您节省大量时间。

您将看到这些应用在您希望将系统可能处于的状态与可以测量的系统可观察量分开的任何上下文中。最容易就业(和最复杂)的可能是财务问题。简单地说,假设您的状态路径由 [牛市、熊市] 中的元素组成,并且您在过去几个月中以与您尝试捕获的商业/地缘政治事件类型相关的分辨率从 VIX 或其他东西中解码了状态路径。当您收到新的和更多的数据(通过 Baum-Welch 或更通用的 EM 算法)时,这种计算可用于训练您的模型,并且 Forward 会告诉您何时获得的数据(您的实时观察序列)相对于您对模型的期望(到目前为止经过训练)的概率变得非常低。从统计学上讲,那是你买入或卖出的时候。

最新更新