공부 정리 블로그
[Chapter8] 음향모델(1) - HMM 본문
Table of contents
8.2 Hidden Markov Model 관련알고리즘
2010년 modeling 기법들
8.2.1. 인식 forward -> CTC
8.2.2. segmentation Viterbi
8.2.3. HMM 에서 파생된 Decoding 공부
길이가 다른 Seq 제어를 하지 못했음
seq -> seq -> seq
corpus를 분석할 때, 군집화 된 영역 cluster의 index로 바꿀 때,
길이가 똑같은 cluster 번호의 열로 바꾼 classifier
음향모델용 classifier가 가져야 할 특성
- 모델의 구분단위를 정할 수 있어야 함(예: 음소,음을 낼 때 최소 단위)
phoneme(발음 기호 하나하나가 음소가 됨)
- 모델이 주어졌을 때 인식결과 생성이 가능해야 함
- 학습자료가 주어졌을 때 모델 학습이 가능해야 함
- 대용량 음성 코퍼스로 부터 모델 구분 단위 별 학습자료를 자동생성 할 수 있어야 함
모델을 어떻게 만들 것인가
- 모델 결합을 통한 문장인식 확장성
8.1.1 HMM 개요
바구니 예제
- 흰색, 노란색, 빨간색, 하얀색공이 3개의 바구니에 담겨있다.
- 각 바구니 별로 공들의 구성 비율은 서로 다르다.
- 임의의 바구니를 선택한다.
- 바구니에서 공을 확인한다.
- 공을 다시 넣는다.
- 위와 같은 과정을 반복한다.
- Ball sequence를 보고 바구니를 선택한 순서를 판단한다.
공의 색 seq를 알고 있는데,
바구니의 순서를 알고 싶음 -> HMM 문제
8.1.1 HMM 개요(구성 요소)
바구니 순서를 알게 되면, seq를 보고 silence, 여, 우, 를 알고 발성이 '여우'인 것을 알 수 있음
4개의 요소로 구성됨
1. N개의 상태 (State)
𝑸={𝒒𝟏,𝒒𝟐,…,𝒒𝑵}
2. 상태 간 천이 확률
(Transition probability)
𝑨=𝒂_𝒊𝒋,𝒂_𝒊𝒋 =𝑷𝒓(𝒒_𝒋𝒂𝒕𝒕+|𝒒_𝒊𝒂𝒕𝒕)
3. 출력확률분포
(Output probability distribution)
𝑩={𝒃𝒋(𝑶𝒕)}𝒃𝒋(𝑶𝒕) =𝑷𝒓(𝑶_𝒕 𝒂𝒕 𝒕|𝒒_𝒋 𝒂𝒕 𝒕)
4. 초기상태
(Initial state distribution)
𝝅={𝝅_𝒊},𝝅𝒊=𝑷𝒓(𝒒_𝒊 𝒂𝒕 𝒕=𝟏)
HMM으로부터 관측열을 발생시키는 과정
특정 time t 에서 어떤 state인지가 hidden(상태의 이동경로, 특정 time t에서 어떤 바구니를 선택했는가가 hidden)
아는 것은 Observation 뿐,
1st order markov assumption : 현재 바구니는 직전 어떤 state, 바구니에 속해있는지에 대해서만 종속됨
- 𝝅에 따라 첫 상태 i가 결정됨
- T=1
- 상태 i에서 bi(o1)에 따라 o1이 출력됨
- 상태 i에 대한 상태 천이 확률 aij(transition probability)에 따라 다음 상태 j로의 천이가 일어남
- 시간을 하나증가시키고(t=t+1), 최종 시간에 도달하지 못했으면(t < T) 3번 과정으로 돌아가고, 도달했으면 관측열 생성을 종료한다.
우리가 하고자 하는 것
arg_wMaxP(W|O) = arg_wMaxP(O|w)p(w)
arg_wMaxP(W|O) 우리가 하고자하는 Classification -> 그림(observation) label (사후확률)
arg_wMaxP(O|w)p(w) 고양이 그림, 강아지 그림좀 그려주세요 (사전 확률)
모델이 주어졌을 때, 모델로부터 나올수 있는 생성확률(입력으로부터 seq가 들어올 확률은?)
8.1.1 HMM개요
observation으로 들어온 것이 없을 때 initial station : q1
q1에서 20msec를 받아서 o1이 만들어 졌지만, non-deterministic이므로 q1, 2, 3로 갈 수 있음
HMM방식의 non-deterministic 특성으로 모든 경로를 찾아야하므로, 경우의 수가 많아짐
q3 -> q2는 없으므로 a_32 = 0, q_13 = 0
left2right model 은 ergodic model의 특수한 경우임
음성은 시계열 패턴이므로, 시간축 상에서 선후 관계가 있기 때문에
먼저 나온 것 모델링 -> 나중 나온 것 모델링(시계열 패턴 모델링 시 유리)
파악해야할 것들
state 개수, aij, bj(ot), initaial state 확률 pi
HMM이 주류를 이뤘던 이유
각각의 node가 state 로 decoding network를 만들기 쉬움
데이터가 적은 (단어 음성인식기일 때는 적절)시절에는 적절한 모델이었음
속도가 느림, non-deterministic, prameter 수가 적어 정교한 modeling 구조는 구현 불가
단어 node를 만든다음 dummy state(start, end)를 만듦
음성 파형의 길이는 20msec이므로, 17x 20msec = 0.34sec, 17frame
하나의 state 이동 경로 가정함.
8.2 HMM의 세 가지 기본문제
기본문제1: (인식) 관측열이 발생될 확률의 계산 인식 결과를 어떻게 결정 할 것인가?
모델 파라미터는 주어진 상황에서 관측열의 생성 확률을 최대로 하는 모델선정
알고리즘: Total likelihood method, forward algorithm
기본문제2: (Segmentation) 관측열이 어떤 상태 천이를 거쳐 발생되었는지를 추정
전체 음성신호 중 특정 단어를 찾아주는 segmentation 시 필요
전체 학습 자료에서 모델별학습에 필요한 자료 자동추출
알고리즘: Viterbi algorithm
wave - text file(대응되는 text)
어디서부터 어디까지가 'ㅏ', 'ㅎ' 인지 파악
사람이 하면 고된 작업
기본문제3: (학습) HMM의 파라미터 추정모델 학습 시 필요
- 알고리즘: Viterbi training algorithm, Baum-Welch algorithm
- 본자료는 expectation-maximization algorithm에 기초하여 작성되어있음
8.2.1.2 HMM의 세 가지 기본문제 (인식: 관측열 생성 확률 계산 예제)
time t에서 state의 이동 경로 hidden
내가 알고자 하는 것 : '서강대학교' 단어모델이 주어졌을 때, 생성확률을 구하고 싶은데, state 이동경로를 가정하고,
12233345로 이동했다고 가정,
8.2.1.3 HMM의 세가지 기본문제(인식: Total Likelihood Method)
따라서, Pr(𝑂|𝑀)은 가능한 모든 상태열에 대해, 각각의 Pr(𝑂,𝑆|𝑀)을 누적함으로써 구할 수 있음
Pr(𝑂,𝑆|𝑀) : 우리가 계산할 수 있는 것
가능한 모든 상태열의 개수가 𝑁𝑇가 되어, 시간 복잡도가 𝑂(2T𝑁T)가 됨
8.2.1.4 HMM의 세가지 기본 문제(인식: Forward algorithm)
Dynamic programming기법을 이용해서 total likelihood method의 시간 복잡도를 𝑂(𝑁2𝑇)로 줄이는 방법
'대학원 수업 > 음성인식' 카테고리의 다른 글
[Chapter8] 음향모델(3) - DNN 기반 (0) | 2023.06.17 |
---|---|
[Chapter8] 음향모델(2) - Viterbi Algorithm (0) | 2023.06.17 |
[Chapter7] multi-Head Attention (1) | 2023.06.17 |
[Chapter7] self-attention (0) | 2023.06.17 |
[Chapter9]언어모델(4)-DNN 기반 언어모델 (0) | 2023.05.31 |