Die Kreuzentropie ist ein grundlegendes Konzept in der Informationstheorie und im maschinellen Lernen und dient als Verlustfunktion für Klassifikationsprobleme. Sie quantifiziert die Unähnlichkeit zwischen zwei Wahrscheinlichkeitsverteilungen: der wahren Verteilung (häufig die Ground-Truth-Labels) und der vorhergesagten Verteilung (die Ausgabe eines Modells). Im Kontext neuronaler Netze wird die Kreuzentropie häufig verwendet, um Modelle für Aufgaben wie Bildklassifikation, Verarbeitung natürlicher Sprache und Spracherkennung zu trainieren.
Definition
Für zwei Wahrscheinlichkeitsverteilungen \(p\) (wahr) und \(q\) (vorhergesagt) über eine diskrete Menge von Ereignissen ist die Kreuzentropie definiert als:
\[ H(p, q) = -\sum_{x} p(x) \log q(x) \]
Bei der Klassifikation ist \(p\) typischerweise ein One-Hot-codierter Vektor, bei dem die wahre Klasse die Wahrscheinlichkeit 1 und alle anderen 0 haben, und \(q\) sind die Ausgabewahrscheinlichkeiten des Modells (z. B. aus einer Softmax-Schicht). Die Kreuzentropie vereinfacht sich dann zur negativen Log-Likelihood der wahren Klasse, die oft geschrieben wird als:
\[ L = -\log q(y_{\text{true}}) \]
wobei \(y_{\text{true}}\) der Index der korrekten Klasse ist.
Rolle im maschinellen Lernen
Die Kreuzentropie ist die Standardverlustfunktion für Mehrklassenklassifikation. Sie bestraft falsche Vorhersagen mit hoher Konfidenz und ermutigt das Modell, der korrekten Klasse eine hohe Wahrscheinlichkeit zuzuweisen. Im Gegensatz zum mittleren quadratischen Fehler funktioniert die Kreuzentropie gut mit Softmax-Ausgaben, da sie stärkere Gradienten liefert, wenn Vorhersagen falsch sind, was zu einer schnelleren Konvergenz führt. Sie ist eng mit der Kullback-Leibler-Divergenz verwandt, die die relative Entropie zwischen zwei Verteilungen misst; die Minimierung der Kreuzentropie ist äquivalent zur Minimierung der KL-Divergenz, wenn die wahre Verteilung fest ist.
Anwendungen
Die Kreuzentropie wird in verschiedenen Bereichen des maschinellen Lernens eingesetzt. Im Deep Learning ist sie die Standardverlustfunktion für Klassifikationsnetzwerke, einschließlich faltender neuronaler Netze (CNNs) für die Bilderkennung und rekurrenter Netze für Sequenzaufgaben. In der Verarbeitung natürlicher Sprache wird sie bei der Sprachmodellierung verwendet, bei der das Modell das nächste Token in einer Sequenz vorhersagt, sowie in Transformer-basierten Architekturen, wie sie in großen Sprachmodellen verwendet werden. Darüber hinaus wird die Kreuzentropie im Reinforcement Learning für Policy-Gradient-Methoden und im unüberwachten Lernen für variational autoencoders eingesetzt.
Variationen und Erweiterungen
Es existieren mehrere Variationen der Kreuzentropie, um spezifische Herausforderungen zu adressieren. Die kategoriale Kreuzentropie behandelt Mehrklassenklassifikation, während die binäre Kreuzentropie für binäre Klassifikationsaufgaben verwendet wird. Die gewichtete Kreuzentropie weist verschiedenen Klassen unterschiedliche Gewichte zu, um unbalancierte Datensätze zu behandeln. Der Focal Loss, eine Modifikation der Kreuzentropie, gewichtet einfache Beispiele herunter, um sich auf schwierige zu konzentrieren, was die Leistung bei der Objekterkennung verbessert. Bei der Wissensdestillation überträgt eine abgeschwächte Version der Kreuzentropie (unter Verwendung von Temperaturskalierung) Wissen von einem großen Lehrermodell auf ein kleineres Schülermodell.
Beziehung zu anderen Konzepten
Die Kreuzentropie ist eng mit der Informationstheorie verbunden, wo sie die durchschnittliche Anzahl von Bits darstellt, die benötigt werden, um Ereignisse aus der Verteilung \(p\) unter Verwendung eines für \(q\) optimierten Codes zu kodieren. Im maschinellen Lernen wird sie häufig mit der Softmax-Aktivierungsfunktion kombiniert, die rohe Logits in Wahrscheinlichkeiten umwandelt. Die Kombination aus Softmax und Kreuzentropie ist numerisch stabil und effizient, da sich der Gradient auf die Differenz zwischen der vorhergesagten Wahrscheinlichkeit und dem wahren Label vereinfacht. Diese Eigenschaft macht sie zur bevorzugten Wahl in den meisten modernen Frameworks für neuronale Netze.
Historischer Kontext
Das Konzept der Kreuzentropie stammt aus Claude Shannons Arbeiten zur Informationstheorie in den 1940er Jahren. Es wurde später in der statistischen Mechanik und dann im maschinellen Lernen übernommen. Die Verwendung der Kreuzentropie als Verlustfunktion wurde mit dem Aufstieg neuronaler Netze in den 1980er und 1990er Jahren, insbesondere durch den Backpropagation-Algorithmus, prominent. Heute ist sie ein Eckpfeiler des überwachten Lernens und in allen großen Deep-Learning-Bibliotheken wie TensorFlow und PyTorch implementiert.
Siehe auch
- Verlustfunktionen
- Softmax
- Neuronales Netz
- Klassifikation
- Informationstheorie
- Deep Learning
- Maschinelles Lernen
- Kullback-Leibler-Divergenz
- Focal Loss
- Wissensdestillation
- Backpropagation
- TensorFlow
- PyTorch