EM in HMM
- hmm training 은 EM-EM-EM-….-EM의 반복 과정이다.
- Maximization: 현재의 Expectation, 즉 align 정보를 fixed 해 놓고, 각 phone의 hmm의 내부 확률 (transition & observation)을 Baum-Welch방법을 써서 업데이트함.
- 예를 들어, /a/에 대해, 현재의 align 정보를 기반으로 코퍼스 전체에서 모든 /a/로 label된 sounds을 그 대상으로 한다.
- 모든 /a/ sounds를 가장 잘 반영하는 hmm이 되도록 그 transition과 observation 확률을 업데이트한다.
- /a/의 hmm이 3개의 state를 가지고 있다고 하면, 모든 /a/의 sounds를 가장 만족시키도록 하는 적절히 나누어진 3개의 구간이 transition 확률이 되고, 그 구간에 해당되는 sectral 정보의 분포(GMM)가 observation 확률이 됨.
- Expectation: Maximization으로 부터 계산된 hmm 내부 확률 정보를 fixed 해 놓고 (기반으로 하여), sound+text에 대해 align을 시켜 봄 (=forced alignment).
- Kaldi에서 Maximization은 train_xxx 에 의해서 되고, Expectation은 align_si에 의해서 된다고 생각하면 된다.
- Kaldi의 train_xxx은 내부적으로 EM iteration이 포함되어 있다. 이 iteration의 횟수는 train_xxx 의 input으로 realign_iter에 specify 할수 있다.
- EM iteration의 최초 E는 uniform align으로 시작할 수도 있고, 음성학자들의 정답에 해당하는 align일 수도 있다.
- 최초의 E로 음성학자들의 정답에 해당하는 align을 준다고 할지라도 훈련의 반복이 진행될 수록 align은 변질 된고, 결국은 정답이 있거나 없거나 거의 비슷한 결과에 이른다.
Hosung Nam