2019년 7월 13일 토요일

음성인식 메모(Kaldi) 11 - (learning rate Karel's DNN)

「原作者へ」

連絡先を存じ上げませんでしたので、不本意ながら無断で翻訳しました。 
正式に翻訳を許可されたいです。 
gogyzzz@gmail.comでご連絡ください。

아래 포스트의 번역입니다.

http://work-in-progress.hatenablog.com/entry/2018/05/01/223029


학습의 과정을 추적해보자.

스크립트 「steps/nnet/train.sh」를 실행하면 내부에서 「steps/nnet/train_scheduler.sh」가 호출되어 「nnetbin/nnet-train-frmshuff」를 실행한다.

이 예제에서는 "모시모시"라는 발화 (198프레임)의 음성 파일을 3개 준비하여, 미니 배치 사이즈는 128을 지정하여 진행해보았다.

학습에는 옵션으로 「--cross-validate=false --randomize=true」를 지정하여 「nnetbin/nnet-train-frmshuff」를 실행한다.

학습 데이터는 594 프레임 (=198프레임x3파일)로부터 128프레임을 랜덤하게 선택한다.

한편, validation에서는 옵션으로 「--cross-validate=true --randomize=false」을 지정하여 「nnetbin/nnet-train-frmshuff」을 실행한다.

randomize하지 않으므로, validation 데이터 (128프레임)은 고정이 된다.

학습 진행의 여부는 cross validation에서 cross entropy 값으로 판정된다.

  • input : 모델(학습전)
  • output : 모델(학습후)
  • AvgLoss(cv) : 학습 후 모델의 cross entropy 값

값이 악화된다면 learning rate를 줄여 다시 학습한다 (빨간색)

학습이 진행되지 않는다면 learning rate를 반으로 줄여 다시 시작한다 (녹색)

개선이 역치(0.001)보다 떨어지면 종료한다(청색)

댓글 없음:

댓글 쓰기