关于HMM的训练困惑

searover 2007-12-01
以下数据使用java的开源项目   jahmm   测试得出,版本 0.6.1

程序执行步骤:
1.先构建一个HMM
2.根据这个HMM生成10000个随机观察序列
3.根据生成的观察序列用k-Means算法得到一个初始模型
4.使用Baum-Welch算法对生成的观察序列以及这个初始模型进行训练得到学习后的模型
5.然后用了一个观察序列{3 1 2 1 3 0}来检测原始模型和训练后的模型得到的结果是否一样。

训练序列数:10000
观察序列:3   1   2   1   3   0

原始HMM(该模型为手动构建,用于生成10000个随机观察序列,也就是说,是正确的HMM):
队列概率:   1.143374199295044E-4
状态序列:2   1   2   1   2   1
HMM   with   3   state(s)

State   0
    Pi:   0.63
    Aij:   0.5   0.25   0.25
    Opdf:   Integer   distribution   ---   0.6   0.2   0.15   0.05

State   1
    Pi:   0.17
    Aij:   0.375   0.125   0.375
    Opdf:   Integer   distribution   ---   0.25   0.25   0.25   0.25

State   2
    Pi:   0.2
    Aij:   0.125   0.675   0.375
    Opdf:   Integer   distribution   ---   0.05   0.1   0.35   0.5

学习后的HMM:
队列概率:   9.816993989119631E-5
状态队列:2   0   1   0   2   0
HMM   with   3   state(s)

State   0
    Pi:   0.620299999999948
    Aij:   0.51   0.242   0.249
    Opdf:   Integer   distribution   ---   0.622   0.378   0   0

State   1
    Pi:   0.20129999999999415
    Aij:   0.477   0.252   0.271
    Opdf:   Integer   distribution   ---   0   0   1   0

State   2
    Pi:   0.17839999999999667
    Aij:   0.465   0.256   0.279
    Opdf:   Integer   distribution   ---   0   0   0   1

结果发现,两个模型出入很大。所以得到的结果{2   1   2   1   2   1   }-- 正确的 和 {2   0   1   0   2   0   } -- 错误的 也差距不
小。

想请教有这方面经验的朋友,是训练的样本太少还是本来就是这样的结果,或者说我什么地方做错了?
qwjcool 2008-11-16
很复杂的样子~
linliangyi2007 2009-07-23
没头没脑的一个帖子,知道的在说隐码模型,不知道的就是天书
searover 2009-09-20
LS有头脑?

不知道的问了也没用, 我需要解释这么清楚吗? 知道的看解释是浪费人家时间, 有必要吗?
lsshappy007 2010-07-01
楼主,能把代码贴出来吗?我也正在学习这个。
Global site tag (gtag.js) - Google Analytics