2012-04-21 7 views
0

私は分類のために隠れマルコフモデルを使用しています。なぜ隠れマルコフモデルを練習するのですか

モデルをトレーニングするときは、初期モデルに対してkMeansクラスタリングを使用します。それから私はモデルを最適化するために任意の反復ラウンドを使用します。私はこれらの反復で起こったと思っていた。

私は、シークエンスは初期モデルに基づいて生成され、モデルは再びモデルを訓練することなどを教えてくれます。

これは本当ですか、それとも何か他に何か起こりますか?

ありがとうございました!

答えて

0

BaumWelchLearner.java:

public <O extends Observation> Hmm<O> 
    learn(Hmm<O> initialHmm, List<? extends List<? extends O>> sequences) 
    { 
     Hmm<O> hmm = initialHmm; 

     for (int i = 0; i < nbIterations; i++) 
      hmm = iterate(hmm, sequences); 

     return hmm; 
    } 

実際には各反復で何度も繰り返し設けられた観察シーケンスを使用しています。モデルは時には局所的な最大値に収束することがあるので、反復が必要です。次のようなプログラムを書くと、繰り返しのたびにモデルが表示されます。

BaumWelchLearner bwl = new BaumWelchLearner(); 
for (int i=0; i<=bwl.getNbIterations(); i++) { 
    Hmm iteration = bwl.iterate(yourHmm, learningSequences); 
    System.out.println("\nIteration " + i + ":\n" + iteration.toString()); 
    yourHmm = iteration; 
} 
関連する問題