본문 바로가기

ML & DL

[논문] Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks (2006)

다음의 논문을 공부한 뒤 정리한 글 입니다

https://www.cs.toronto.edu/~graves/icml_2006.pdf

불러오는 중입니다...

ABSTRACT

많은 sequence learning tasks는 노이즈가 있고 unsegment 된 인풋 데이터로 부터 라벨의 sequence를 예측 해야한다. Unsegment data란, 음성인식을 예로 들면, 프레임 당 무슨 음운인지는 모르지만 전체 라벨인 단어는 아는 상태를 의미한다. RNN은 강력한 sequence learners라서 이러한 tasks에 적합해 보인다. 그러나, 데이터를 미리 segment 시켜야 하고, 아웃풋을 label sequence로 변환하는 사후 처리가 필요하기 때문에 이러한 접근은 제한되어왔다. 본 논문은 RNN이 unsegmented sequences에 직접 라벨링하도록  training하는 새로운 방법을 제시해, 언급한 문제들을 모두 해결한다. 


INTRODUCTION

Unsegment sequence를 라벨링 하는 것은 sequence learning에서 흔한 일이다. 최근까지는 HMM(hiden markov models), CRF(conditional random fields) 등이 지배적인 sequence labeling 프레임 워크였다. 이런 접근은 여러 tasks에서 성공적인 퍼포먼스를 보였지만, 다음과 같은 문제가 있다.

  • task를 특정하기 위한 상당한 양의 정보가 필요하다. e.g) HMM의 state 디자인
  • 유연한 inference를 위해 dependency한 가정들이 요구된다. e.g) HMM의 observation들의 독립
  • HMM은 generative model인데, sequence labeling은 discriminative model이다.

이와 다르게, RNN은 인풋, 아웃풋 외에 데이터에 대한 사전 지식이 필요하지 않다. Discriminative 하게 train 될 수 있고, 내부 구조는 시계열 모델링에 강하다. 또한 여러 noise에 robust한 경향이 있다. 하지만, 다음과 같은 문제점이 있다. NN objective functions are defined separately for each point in the training sequence > RNNs can only be trained to make a series of independent label classifications. 이는 최종 라벨 sequence를 위해 인풋 데이터가 pre-segmented 되어야 하고, 아웃풋이 사후처리 되어야 함을 의미한다.

최근까지, sequence labeling에 쓰이는 RNN의 가장 효과적인 사용은 HMM - RNN 하이브리드 모델이다. 하지만 언급한 HMM의 문제점으로, 이 모델은 RNN의 장점을 다 활용하지 못했다.

이 논문은, pre-segment/ post-processed 가 필요없는 RNN sequence labeling 방법을 제시한다. 이는 다음과 같은 아이디어로부터 출발한다.

  • 네트워크 아웃풋을 인풋 sequence에 대한 모든 가능한 label sequences의 조건부 확률분포 p(L | X)로 모델링 
  • 이 분포에서 objective function은 정답 라벨에 대한 확률을 최대화하는 방향으로 유도될 수 있다.
  • Objective function이 미분가능하면, 역전파를 통해 네트워크를 학습시킬 수 있다.
  • temporal classification : task of labelling un-segmented data sequences
  • connectionist temporal classification(CTC) : temporal classification을 위한 RNN 모델
  • framewise classification : 각 인풋 sequence에 대한 각 frame 별 독립적인 라벨링

구체적인 수식으로 들어가기 전에 CTC 개념을 다시 한 번 집고 넘어가자

위 그래프는 특정 구간에서의 phonemes의 관측 확률 의미한다. CTC는 phonemes만 예측했다. 그 사이는 'black' 로 구분하면서 spikes로 확률을 예측한다. 반면에 framewise는 segment(수식 점선)에 맞춰 확률을 예측한 모습이 보인다. 'dh' 와 같이 phonemes은 맞게 예측했지만, segment boundaries가 misalign 되는 에러가 발생할 수 있다. CTC는 제대로 학습이 안되면 blank만 나온다. 위에 그림과 같이 데이터가 얼마 없으면, CTC는 alingment가 안되는 문제가 있지만, 데이터가 충분히 크다면 aligment 문제를 해결할 수 있다.


Temporal Classification

 

한 time step 안에 black 확률값이 동일하다.

black에서 다른 black로 transition을 불가능하다

CTC의 label 끼리는 독립으로 가정한다.

 

 

input wave > 정답 label 과 alignment