Hidden-Markov-Model
Hidden Markov Model using Python
算法和Overview都在这里:
https://www.cnblogs.com/pinard/p/6945257.html
测试用的样本是三枚硬币,其中两枚的概率不是0.5。并且附带有转移矩阵。
不知道为什么程序出错了,estimation并不是很接近真实值,甚至可以说发散。虽然由稳定解但是稳定解并不好。以下是总结失败的原因:
1)精度要求非常高,因为如果T>20以上,γ的值在10^-30左右。而电脑在这个精度下很容易出错。
2)隐藏序列的分布接近于稳定态,特别是当T越来越大时,越长的序列并不能给出更多的信息,相反初期的一些能够给出非稳定态的信息的权重会越来越少。当概率分布趋于稳定态的时候,模型实际上会很难分辨样本是从哪个隐藏状态里面抽取出来的。这个有点像弱大数定律里面的独立非同分布的情况,最终均值会收敛,但是收敛至各个隐藏状态的平均值。而参数是通过平均值得出的。