2012-04-21 7 views
0

분류에 숨겨진 마코프 모델 인 jahmm 구현을 사용하고 있습니다.숨겨진 마르코프 모델을 학습 할 때 왜 반복할까요?

모델을 학습 할 때 초기 모델에 대해 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; 
} 
관련 문제