【问题描述】
隐式马尔可夫模型中,在给定参数下,求解观测序列O的出现概率,即求解
前向变量 : 在t时刻,观测序列为
那么t时刻为Si状态的概率
【求解过程】
t=1时刻
输出序列为O1 此时计算其发生的概率即: 其可能是三种隐含状态输出显示的结果即:从状态1发出;从状态2发出;从状态3发出;从状态1发出得到O1的概率由发射矩阵可知为
同理
因此在t1时刻输出序列为O1的概率计算表达式为:
t=2时刻
输出序列为O1O2 此时计算其发生的概率即:
当前的状态可能是1 2 3 并且可能是t=1时刻的三种状态转变而来,此时利用上前向变量
例如:
- t=1时刻为状态1 转变为t=2时刻的状态2 对外输出为O2 表达式:
- t=1时刻为状态2 转变为t=2时刻的状态2 对外输出为O2 表达式:
- t=1时刻为状态3 转变为t=2时刻的状态2 对外输出为O2 表达式:
因此t=2时刻为状态2的概率 即前向变量计算表达式:+
+
进一步
输出序列为O1O2的计算表达式根据加法原理:
【前向算法】
采取由前往后的迭代计算思想,根据无记忆性特点,逐步求解出
算法流程:
step1:初始化前向变量
i=1,2....n 其中n为隐含状态的种类数
step2:迭代计算
表示从上一个时刻i状态跳转到当前j状态的概率
step3:求和
将终止时刻T所有可能的状态前向变量根据加法原理求和
时间复杂度:每一次迭代计算中 输出结果可能为N种状态 而每种状态可能是上一时刻N种状态转移而来,即O(N*N)
总共T个时刻,所以总的时间复杂度 O(N*N*T)