CTC 손실 함수

\(L\)을 label의 집합, \(L’\)을 공백이 포함된 label의 집합이라고 하자. 길이 T를 갖는 sequence에 대하여, 모든 가능한 paths(network output)의 집합을 \(L’^T = \pi\) 라 하자. 실제 labeling z를 갖는 input x에 대하여, 제대로 labelling이 될 확률을 최대화 하는 문제가 된다. 이후에 maximum likelihood estimation 을 이용해 최적화한다.

\(\hat\theta = arg \max_{\theta} \prod_{i=1}^N p(Z^{(i)} | X^{(i)} ; \theta)\)

output에서 얻은 labels에서 중복되는 label과 공백을 없애는 n:1 함수를 B라고 정의하자. 함수 B는 “Collapsing” operation한다고 칭한다. 예시는 다음과같다.
B(_A__AAAA_BBBCCCC) = B(A_A_BBBB_CC) = AABC

B의 역함수 B-1 가 정의 가능하며, 이 함수는 ground truth에 대하여 모든 possible paths로 map이 가능하다.
B-1(ABCC) = -A-AAA-BBBCCC, 등등등등등 (1:n 함수?형태)

역함수의 성질을 수식으로 표현하면 우측과 같다: \(\{ B(x)|x \in B^{-1}(z)\} = z \)

이제, 주어진 labelling z에 대한 가능도를 정의할 수 있으며, z로 Collapse 가능한 모든 paths가 나올 확률의 합으로 가능도를 정의할 수 있다.

\(p(Z|x ; \theta) = \sum_{\pi \in B^{-1}(z)} p(\pi | x ; \theta) \)

앞서 본 인풋x에 대해 labeling z 를 최적화 하려는 식(아래의 식) 안에 대입을 하고 합의 형태로 바꿔 minimazation 문제로 바꾸면 최종식은 다음과 같다.

\(\hat\theta = arg \max_{\theta} \sum_{i=1}^Nlog [ \sum_{\pi \in B^{-1}(z^{(i)})} p(\pi | x^{(i)} ; \theta) ] \)