Robocikowo>ROBOCIKOWO
Trening

CTC

2006AktywnyAktualizacja: 16 października 2026Opublikowany
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.

2017
Hybrydowa architektura CTC/Attention

Watanabe i wsp. łączą stratę CTC z dekoderem uwagowym, aby ustabilizować wyrównanie i poprawić end-to-end ASR; CTC pełni rolę regularizatora monotonicznego wyrównania.

Hiperparametry (konfigurowalne osie)

Indeks symbolu blankKrytyczna

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

0Domyślny indeks blank w torch.nn.CTCLoss.
ostatni indeks (V)Część toolkitów umieszcza blank na ostatniej pozycji zbioru etykiet.
Szerokość wiązkiWysoka

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

1Dekodowanie best-path (greedy).
10–100Typowy zakres beam search, często z modelem językowym.
Rozmiar zbioru etykietŚrednia

Liczba etykiet wyjściowych plus symbol blank.

~30Model znakowy (litery + spacja + apostrof).
tysiąceJednostki podsłowne (BPE / wordpiece).

Złożoność obliczeniowa

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

Wąskie gardło obliczeniowe

Rekurencja forward-backward wzdłuż osi czasu

Sumę po wszystkich wyrównaniach oraz gradienty liczy programowanie dynamiczne (forward-backward) o koszcie O(T·L), z rekurencją sekwencyjną wzdłuż osi czasu T. Dla długich sekwencji i dużych zbiorów etykiet ten etap dominuje koszt obliczenia straty, bo nie zrównolegla się po czasie.

Zależy od
Długość sekwencji wejściowej (T)Długość sekwencji etykiet (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.