-
Notifications
You must be signed in to change notification settings - Fork 2
CTC Loss
pingu605 edited this page Dec 21, 2023
·
1 revision
참고
- MFCC의 짧은 음성 프레임으로 인한 단점을 극복하기 위해 고안됨
- 다량의 레이블링으로 인한 비용 증가
- 레이블링 정확도 떨어짐
- target seq와 output seq의 길이가 다를 때(output의 길이가 target보다 길 때), loss gunction 정의하는 방법
- 레이블링 없이도 정보 없이도 학습 가능
- 모델 마지막에 loss 및 그래디언트 계산 레이어 추가됨 (CTC 레이어)
- ‘레이블수 + 1’의 차원수를 가짐 (한국어 : 전체음소(42) + 1 = 43층)
- hhelllllo → hello
-
합쳐도 되는 hhh는 상관 없지만 lll의 경우 문제가 생김
-
합쳐도 되는 character와 합치지 말아야 하는 character 구분 필요
-
-
blank(’-’)를 도입해 같은 character가 연속되는 경우 다룰 수 있게 함
- apple → ap-ple
- hello → hel-lo
- ap—ple 처럼 blank가 1개이상 들어갈 수 있음
-
예시
- target이 ‘a’ 라면 Prediction이 ‘a’되는 확률 합이 최대가 되도록 optimization
- 이를 위해 dynamic programming 기법 사용
-
dynamic programming을 통해 character에 맞는 경로가 생성될 확률 출력
-
다음과 같이 다양한 경로 모두가 이동규칙이 준수된 경로
-
예시 (egg)
-
표의 (1,1) or (2,1) → (5,6) or (5,7) 로 가는 이동규칙을 준수하면 egg 출력
-
다음과 맞는 경로의 확률을 구하고 합산 → log 씌우기
- CTC Loss = log(0.001054) = 6.854927
💡 CTC Loss
- log('맞는 경로의 합산확률')
-