给定模型 以观测序列计算出现的概率
1.暴力求解
要求给定模型下观测序列出现的概率,观测状态由隐藏状态生成。故如果我们能把所有的隐藏状态序列都给列出来,再结合生成观测状态概率 (B) 即可求得观测序列出现概率:
当前状态只和前一状态有关
: 在给定模型下,一个隐藏状态序列出现的概率,则可由初始状态 (π) 、隐藏状态转移概率 (A) 即可求得:
某个观测只和生成他的状态有关
: 对于固定的隐藏序列及模型,结合生成观测状态概率 (B) 即可求得:
综上所述:
复杂度分析:假设状态数为 N 个,观测状态序列长为 T,则则共有种隐藏状态序列,每种序列都需要计算相应概率,故 。
2.前向算法
给定 t 时刻的隐藏状态为 i ,观测序列为 的概率叫做前向概率
当 时,,此式子表示在最后一个时刻,观测序列为且最后一个隐藏状态位于 i 号上时的概率。
假设状态数为 N ,那么:
当前状态只和前一状态有关,故可由前一时刻的前向概率递推获得,这个看起来就是一个动态规划的问题了。
在第一个时刻:
表示在第一个时刻,观测序列为 且 的前向概率。
现在已知第 t 时刻,状态为 j 的前向概率为,则第 t + 1 时刻,状态为 i 的前向概率为:
有第一时刻的前向概率,根据 t 时刻到 t + 1 时刻的递推公式即可求得,从而得到:
计算复杂度分析:每一个时刻有 N 种状态,每种状态可以由前一时刻的 N 中状态求得,一共有 T 个时刻,故为。