Robocikowo>ROBOCIKOWO
Trening

CTC

2006AktywnyOpublikowany
Funkcja straty i metoda dekodowania do uczenia sekwencja-do-sekwencji bez wyrównania (alignment-free), sumująca po wszystkich wyrównaniach z użyciem symbolu pustego (blank).
Kluczowa innowacja
Umożliwił trening sieci neuronowych na niezsegmentowanych danych sekwencyjnych bez ręcznego wyrównania wejścia do etykiet, sumując prawdopodobieństwo po wszystkich możliwych wyrównaniach z użyciem symbolu pustego (blank).
Kategoria
Trening
Poziom abstrakcji
Building block
Poziom operacji
TreningInferencja
Zastosowania
Rozpoznawanie mowy (ASR)Rozpoznawanie pisma ręcznegoOCR / rozpoznawanie tekstu w obrazieRozpoznawanie fonemówKeyword spotting

Jak działa

1) Sieć generuje dla każdego z T kroków czasowych rozkład softmax nad etykietami plus symbol blank. 2) Definiuje się regułę zwijania ścieżki: scalenie kolejnych identycznych etykiet, a następnie usunięcie wszystkich blanków. 3) Prawdopodobieństwo docelowej sekwencji etykiet to suma prawdopodobieństw wszystkich ścieżek zwijających się do niej. 4) Sumę i gradienty oblicza algorytm forward-backward na rozszerzonej sekwencji etykiet (z blankami wstawionymi między i wokół etykiet). 5) Strata to ujemny logarytm tego prawdopodobieństwa; obliczenia prowadzi się w przestrzeni logarytmicznej dla stabilności numerycznej. 6) Przy inferencji dekoduje się wynik przez wybór najbardziej prawdopodobnej ścieżki (greedy/best-path) lub beam search (często z zewnętrznym modelem językowym).

Rozwiązany problem

Tradycyjne uczenie sekwencyjne wymagało wyrównania wejścia do etykiet na poziomie pojedynczych ramek (np. który fragment nagrania odpowiada której fonemie), co jest kosztowne i często niedostępne. CTC eliminuje potrzebę takiego wyrównania, ucząc model bezpośrednio z par (sekwencja wejściowa, sekwencja etykiet).

Komponenty

Symbol pusty (blank)Umożliwia wyrównanie wiele-do-jednego i rozróżnienie powtórzonych etykiet

Dodatkowa etykieta oznaczająca brak wyjścia w danym kroku czasowym oraz separująca powtórzone etykiety, umożliwiająca poprawne zwijanie ścieżek.

Warstwa softmax per krok czasowy

Warstwa wyjściowa produkująca rozkład prawdopodobieństwa nad zbiorem etykiet powiększonym o blank, dla każdego kroku czasowego.

Algorytm forward-backward

Programowanie dynamiczne sumujące prawdopodobieństwa wszystkich wyrównań zgodnych z docelową sekwencją i obliczające gradienty.

Dekoder CTC

Procedura mapująca wyjścia sieci na końcową sekwencję etykiet (best-path lub beam search, opcjonalnie z modelem językowym).

Implementacja

Pułapki implementacyjne
Niestabilność numerycznaWysoka

Iloczyny wielu małych prawdopodobieństw powodują underflow; obliczenia należy prowadzić w przestrzeni logarytmicznej.

Rozwiązanie:Implementować forward-backward w logarytmach (log-sum-exp).
Powtórzone etykiety wymagają blankuŚrednia

Dwie identyczne sąsiednie etykiety w celu muszą być rozdzielone blankiem, inaczej reguła zwijania je scali.

Założenie niezależności warunkowej wyjśćŚrednia

CTC zakłada niezależność warunkową etykiet w czasie przy danym wejściu, co daje słaby wbudowany model językowy; zwykle łączy się je z zewnętrznym LM.

Wejście musi być dłuższe od wyjściaŚrednia

Liczba kroków czasowych musi wystarczyć na reprezentację sekwencji etykiet (z uwzględnieniem blanków między powtórzeniami).

Ewolucja

Oryginalny paper · 2006 · ICML 2006 · Alex Graves
Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks
Alex Graves, Santiago Fernández, Faustino Gomez, Jürgen Schmidhuber
2006
Wprowadzenie CTC
Punkt przełomowy

Graves i wsp. przedstawiają CTC na ICML, umożliwiając trening RNN bez wyrównania na niezsegmentowanych danych sekwencyjnych.

2014
CTC w end-to-end ASR na dużą skalę

Systemy takie jak Deep Speech wykorzystują CTC do kompleksowego rozpoznawania mowy bez ręcznego wyrównania fonemów.

Hiperparametry (konfigurowalne osie)

Indeks symbolu blankKrytyczna

Pozycja symbolu pustego w zbiorze etykiet; musi być spójna między treningiem a dekodowaniem.

Szerokość wiązkiWysoka

Liczba hipotez utrzymywanych podczas dekodowania beam search; kompromis między jakością a kosztem.

Rozmiar zbioru etykietŚrednia

Liczba etykiet wyjściowych plus symbol blank.

Złożoność obliczeniowa

Złożoność czasowa: O(T · L). Złożoność przestrzenna: O(T · L).

Równoległość

Poziom równoległości
Częściowo równoległy

Przejście sieci i batch są równoległe, ale rekurencja forward-backward jest sekwencyjna wzdłuż osi czasu.

Zakres
Trening

Wymagania sprzętowe

Dobry fit

CTC to kryterium straty i metoda dekodowania niezależne od konkretnego sprzętu; korzysta z akceleracji GPU/TPU tak jak każdy trening sieci.