分類、jahmm実装に隠れマルコフモデルを使用しています。
モデルをトレーニングするとき、初期モデルにkMeansクラスタリングを使用します。次に、iaは任意の反復ラウンドを使用してモデルを最適化します。私はこれらの反復で起こったのだろうかと思っていました。
私の内臓は、シーケンスが初期モデルに基づいて生成され、それがモデルを再度トレーニングするために使用されることなどを教えてくれます。
これは本当ですか、それとも何か他に起こることがありますか?
ありがとうございました!
分類、jahmm実装に隠れマルコフモデルを使用しています。
モデルをトレーニングするとき、初期モデルにkMeansクラスタリングを使用します。次に、iaは任意の反復ラウンドを使用してモデルを最適化します。私はこれらの反復で起こったのだろうかと思っていました。
私の内臓は、シーケンスが初期モデルに基づいて生成され、それがモデルを再度トレーニングするために使用されることなどを教えてくれます。
これは本当ですか、それとも何か他に起こることがありますか?
ありがとうございました!
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;
}