공부 정리 블로그
[Chapter8] 음향모델(2) - Viterbi Algorithm 본문
8.2.2.1 HMM의 세가지 기본 문제(Segmentation: Viterbi Algorithm)
하나의 주제별로 1m 40sec 분량으로 자름
이것에 대한 transcription 이 나오고 'ㅏ', 'ㅗ' 에 대한 걸 각각 떼서 학습
우리가 모르는 것 : 어디서부터 어디까지가 'ㅣ'인지를 모르니, 음성인식기 학습할 때 사전 정보를 줄 수 없음
이걸 어떻게 할 수 있을까?
작업이 힘들고 정답이 없음(사람에 따라 답이 달라지고, 시점에 따라 달라짐 -> 일관성의 문제)
하지만 순서를 알고 있음 -> 'ㄱ' -'ㅏ' ....
해당 정보를 가지고 기계를 학습하게 함
음성 : 시간축 상에 선후 관계가 있음
문장 HMM을 가지고, x축: 음성 파형, y축 : 문장 HMM
best path는 항상 우상향하는가? -> 여러가지 path들이 있는데, 항상 우상향함 !
왜? 시계열 pattern 이기 때문 , 마이크를 통해 입력이 들어오는데, 여기에 대해서 transcription HMM인데,
self transition(y값 안 바뀜), 그대로 넘어가거나(y+1)
x가 증가함에 따라 y가 동일하거나, 증가하거나
best path는 transcription HMM 일 때 우상향 함
◼Dynamic programming 기법으로 Ф(𝑡−1)을 이용하여, Ф(𝑡)를 결정
𝚽_𝒋(𝒕)=max_𝟏≤𝒊≤𝑵[𝚽_𝒊(𝒕−𝟏)𝒂_𝒊𝒋]𝒃_𝒋(𝒐_𝒕)
최적 상태열에서의 likelihood 값은 아래와 같이 계산됨
𝑷𝒓_𝒎𝒂𝒙(𝐎|𝓜) = max_𝟏≤𝒊≤𝑵[𝚽_𝒊(𝑻)𝒂_𝒊𝑵]
◼각 격자 점에서의 local decision의 결과를 기록했다면, 최적의 상태열은 𝑇로부터 trace back하면서 결정 가능
◼인식의 문제에도 적용 가능함 Viterbi algorithm으로 계산한 likelihood로써 모델로부터의 생성 확률을 근사함
binary(0,1) : 매 time t 마다 best path에 있으면 1, 없으면 0
흔적을 남김 : P(O|M) 최적의 경로를 알고 싶은데, 앞에 P시점에서 뭐가나오는지에 대한 pointer를 보고 백트래킹하면서 성적을 비교하면서
forward & Viterbi 비교
forward : sigma 계산 / Viterbi : max 계산
8.2.3 HMM의 세 가지 기본 문제(학습)
적당히 하고 넘어가 -> 실무에서 많이 안 쓰임
ㅇ 알고리즘
- Viterbi training algorithm: 근사치로 학습 진행. 속도가 빨라 실무에서 많이 사용됨
best path 상은 1, 아니면 0
- Baum-Welch algorithm: 정확한 방법이지만, 수식이 복잡하고, 시간이 많이 소요됨
HMM 학습 후 segmentation 결과를 남겨놓고 이것을 딥러닝 학습에 이용
ㅇ Expectation(현재까지 학습 모델에 대한 학습자료된 자료에 대한 Expectation 을 최대화) maximization algorithm은 아래의 생성확률을 최대가 되도록 파라미터 값을 수정함
- R: 전체 학습자료에서 모델 M에 대응되는 데이터의 수
- 학습 자료로 부터 모델파라미터의 업데이트는 자동으로 진행
학습 자료 구성의 예
(예: 음성인식 학습용 SiTEC CleanWord01 코퍼스)
- 화자 수 500명
- 화자 당 평균 417 단어 발성
ㅇ 단어 당 평균 음소의 수를 10개로 가정할 경우
음소 : 최소 단위('ㄷ', 'ㅐ', 'ㅎ')
음절 : 초성 중성 종성으로 구성('대','한')
- 코퍼스 전체에서 나타난 음소의 수
- 500명 x 417단어x 10개= 2,085,000 개
ㅇ 인식 단위가 음소이고, 전체 음소 수가 40개이면,
- 평균 R = 2,085,000 / 40 = 52,125
ㅇ Viterbi training algorithm
- 현재의 모델로 Viterbi algorithm에 따라 전체 학습자료에 대해 segmentation을 수행
- Segmentation 결과를 바탕으로 다음 장과 같이 모델파라미터를 업데이트 함
- expectation(likelihood) 증가하지 않을 때 까지 위의 과정을 반복
최초 모델을 어떻게 만들 것인가
공개된 데이터의 양은 작지만 가격이 비싼 corpus 는 manual
사람이 보고 label한 경우,
녹음 file을 들으면서 labeling -> initial model 만듦
'대학원 수업 > 음성인식' 카테고리의 다른 글
[Chapter9] 언어모델(3)- 카테고리 기반 언어모델 (0) | 2023.06.17 |
---|---|
[Chapter8] 음향모델(3) - DNN 기반 (0) | 2023.06.17 |
[Chapter8] 음향모델(1) - HMM (1) | 2023.06.17 |
[Chapter7] multi-Head Attention (1) | 2023.06.17 |
[Chapter7] self-attention (0) | 2023.06.17 |