HMM_Baum_Welch
算法原理简述:
Baum_Welch算法是在给定观测序列而不知道状态序列的情况下,如何估计HMM模型中的A,B,PI参数的算法。因为存在隐遍历状态序列所以我们可以利用EM算法来对参数进行估计。EM算法此处不再赘述,其中算法的迭代过程主要用到了先前博客中提到的前向函数(alpha_func)和后向函数(beta_func)以及根据这两个函数所计算得到gamma_func以及kesi_func;具体的参数迭代过程和公式可以参考李航老师的书籍的隐马尔科夫模型一章。
代码如下:
|
|
运行结果:
在程序中为了测试主要是利用了李航老师课本的原始数据来验证程序的正确性。在进行5轮的迭代后得到如下图的结果,通过和他人的博客结果进行比较可知程序结果的正确性。