Connectionist temporal classification (CTC) ist eine Verlustfunktion und Ausgabedarstellung, die verwendet wird, um neuronale Netze für Sequenzbeschriftungsaufgaben zu trainieren, bei denen Eingabe und Ausgabe zeitlich nicht ausgerichtet sind. Sie wurde 2006 eingeführt und ist unabhängig von der zugrunde liegenden Struktur des neuronalen Netzes, was bedeutet, dass sie auf verschiedene Architekturen angewendet werden kann. CTC wird häufig für Aufgaben wie Online-Handschrifterkennung und Spracherkennung verwendet, bei denen die Eingabesequenz (z. B. Audio-Frames oder Stiftstriche) viel länger ist als die Ausgabelabelsequenz (z. B. Phoneme oder Zeichen).
Die zentrale Herausforderung, die CTC adressiert, ist die unbekannte Ausrichtung zwischen Eingabebeobachtungen und Ziellabeln. Beispielsweise können in Sprachaudio mehrere Zeitscheiben einem einzelnen Phonem entsprechen, und die genauen Grenzen sind während des Trainings nicht bekannt. CTC löst dies, indem es eine Wahrscheinlichkeitsverteilung über Label an jedem Zeitschritt vorhersagt, einschließlich eines speziellen Blank-Ausgangs. Es versucht nicht, Grenzen oder Zeitabläufe zu lernen; stattdessen werden Labelsequenzen als äquivalent betrachtet, wenn sie sich nur in der Ausrichtung unterscheiden, wobei Blanks ignoriert werden. Diese Äquivalenz führt zu vielen möglichen Ausrichtungen für eine gegebene Labelsequenz, was die Bewertung nicht trivial macht, aber es existiert ein effizienter Vorwärts-Rückwärts-Algorithmus, um die Gesamtwahrscheinlichkeit zu berechnen.
Training und Bewertung
CTC-Scores werden als Summe der Wahrscheinlichkeiten über alle möglichen Ausrichtungen berechnet, die auf eine Ziellabelsequenz abbilden. Dieser Score ist differenzierbar, was seine Verwendung mit dem Backpropagation-Algorithmus zur Aktualisierung der Gewichte des neuronalen Netzes ermöglicht. Das Netzwerk hat typischerweise einen kontinuierlichen Ausgang, wie eine Softmax-Schicht, die durch Training angepasst wird, um die Wahrscheinlichkeit jedes Labels an jedem Zeitschritt zu modellieren. Der Vorwärts-Rückwärts-Algorithmus, analog zu dem in versteckten Markov-Modellen (HMMs) verwendeten, ermöglicht die effiziente Berechnung der Verlustfunktion und ihrer Gradienten. Alternative Ansätze zu einem mit CTC angepassten neuronalen Netz umfassen die Verwendung eines HMM, das explizit Zustandsübergänge und Dauern modelliert.
Anwendungen und Meilensteine
CTC wurde erfolgreich in mehreren bemerkenswerten Systemen angewendet. Im Jahr 2009 war ein mit CTC trainiertes Long-Short-Term-Memory-Netzwerk (LSTM) das erste rekurrente neuronale Netzwerk (RNN), das Mustererkennungswettbewerbe gewann, mit Siegen in mehreren Wettbewerben zur verbundenen Handschrifterkennung. Im Jahr 2014 verwendete das chinesische Unternehmen Baidu ein bidirektionales RNN (kein LSTM), das mit der CTC-Verlustfunktion trainiert wurde, um den Benchmark des 2S09 Switchboard Hub5'00-Spracherkennungsdatensatzes ohne Verwendung traditioneller Sprachverarbeitungsmethoden zu brechen. Im Jahr 2015 wurde CTC in der Google-Sprachsuche und Diktierfunktion auf Android-Geräten verwendet, was seinen praktischen Nutzen in Verbraucherprodukten demonstriert.
Einschränkungen und Erweiterungen
CTC ist auf monotone Ausrichtung beschränkt, was bedeutet, dass die Reihenfolge der Ausgabelabel der Reihenfolge der Eingabebeobachtungen entsprechen muss. Dies ist kein Problem für die Spracherkennung, wo Phoneme und Wörter in einer festen Reihenfolge auftreten. Es kann jedoch problematisch für die Sprachübersetzung sein, da spätere Wörter in einer Sprache früheren Wörtern in einer anderen entsprechen können, aufgrund unterschiedlicher Wortreihenfolgen. Diese Einschränkung hat die Entwicklung alternativer Sequenz-zu-Sequenz-Modelle motiviert, wie solche, die auf Aufmerksamkeitsmechanismen basieren, die nicht-monotone Ausrichtungen handhaben können. Trotzdem bleibt CTC eine grundlegende Technik in der Sequenzbeschriftung und wird oft in Hybridsystemen oder als Komponente in komplexeren Architekturen verwendet.
Beziehung zu anderen Techniken
CTC ist eng mit anderen Sequenzmodellierungsansätzen verwandt. Es wird oft mit versteckten Markov-Modellen (HMMs) verglichen, die ebenfalls Sequenzausrichtung handhaben, aber ein anderes probabilistisches Framework verwenden. Im Deep Learning wird CTC häufig mit rekurrenten neuronalen Netzen verwendet, insbesondere LSTMs und bidirektionalen RNNs, aber es kann auch auf andere Architekturen wie Transformer angewendet werden. Die Verlustfunktion ist eine Art von Verlustfunktionen, die im überwachten Lernen verwendet werden, und sie wird oft mit Techniken wie Beam-Search für die Dekodierung während der Inferenz kombiniert. CTCs Fokus auf ausrichtungsfreies Training hat spätere Entwicklungen im Sequenz-zu-Sequenz-Lernen beeinflusst, obwohl es sich von aufmerksamkeitsbasierten Methoden unterscheidet.