Dropout
Wenn ein neuronales Netz trainiert wird, besteht die Gefahr, dass es sich zu stark auf einzelne interne Verbindungen verlässt. Eine bewährte Gegenmaßnahme: Während des Trainings werden zufällig ausgewählte Neuronen abgeschaltet. Dieses Verfahren heißt Dropout.
Zufälliges Abschalten als Trainingsmethode
In einem neuronalen Netz sind Neuronen über Gewichte miteinander verbunden. Beim Dropout wird in jedem Trainingsschritt ein bestimmter Anteil dieser Neuronen zufällig auf null gesetzt. Die betroffenen Neuronen tragen in diesem Schritt weder zur Vorwärtsberechnung noch zur Rückwärtsberechnung (Backpropagation) bei.
Beispiel: Ein Netz hat 1000 Neuronen in einer Schicht. Bei einer Dropout-Rate von 0.5 werden in jedem Trainingsschritt zufällig 500 davon deaktiviert. Im nächsten Schritt sind es andere 500.
Die Dropout-Rate (häufig als p bezeichnet) ist ein Hyperparameter. Übliche Werte liegen zwischen 0.1 und 0.5. Ein Wert von 0.0 bedeutet: kein Dropout. Ein Wert von 0.5 bedeutet: die Hälfte aller Neuronen wird in jedem Schritt deaktiviert.
Beispiel: In einem Bildklassifikator mit drei verdeckten Schichten wird Dropout nur auf die ersten beiden Schichten angewendet (Rate 0.3), nicht auf die Ausgabeschicht. Das verhindert, dass frühe Merkmalsdetektoren zu spezialisiert werden.
Warum das Abschalten von Neuronen die Qualität verbessert
Ohne Dropout kann ein Netz lernen, sich auf wenige dominante Neuronen zu verlassen. Diese Neuronen übernehmen dann einen überproportionalen Anteil der Vorhersage. Wenn sich die Eingabedaten nur geringfügig ändern, versagt das Netz, weil die dominanten Pfade nicht mehr passen. Diesen Effekt nennt man Overfitting.
Dropout erzwingt Redundanz. Weil jedes Neuron jederzeit abgeschaltet werden kann, muss das Netz die gleiche Information über mehrere Pfade verteilen. Das führt zu robusteren internen Repräsentationen.
Beispiel: Ein Spamfilter ohne Dropout lernt, dass das Wort "Gewinn" in der Trainingsmenge fast immer Spam anzeigt, und verlegt die gesamte Entscheidung auf ein einziges Neuron. Mit Dropout muss das Netz auch andere Merkmale (Absenderdomäne, Satzstruktur, Links) berücksichtigen.
Beispiel: Ein Sentimentmodell für Produktbewertungen erkennt ohne Dropout zuverlässig Trainingsbeispiele, scheitert aber an neuen Formulierungen. Mit Dropout (Rate 0.3) sinkt die Trainingsgenauigkeit um 2 Prozentpunkte, die Testgenauigkeit steigt um 5 Prozentpunkte.
Fachliche Einordnung: Dropout lässt sich als implizites Ensemble interpretieren. Jede Kombination aktiver Neuronen bildet ein Teilnetzwerk. Bei n Neuronen und Dropout-Rate 0.5 existieren theoretisch 2^n verschiedene Teilnetzwerke, die alle gleichzeitig trainiert werden. Bei der Inferenz werden die Vorhersagen aller Teilnetzwerke implizit gemittelt.
Die Skalierung hinter Dropout
Wenn während des Trainings Neuronen abgeschaltet werden, verringert sich die Summe der Aktivierungen. Damit das Netz bei der Inferenz (wenn kein Dropout stattfindet) korrekte Werte liefert, muss eine Korrektur stattfinden.
Die gängige Methode heißt Inverted Dropout. Die Aktivierungen der verbliebenen Neuronen werden während des Trainings mit dem Faktor 1/(1-p) multipliziert. Bei p=0.5 werden die aktiven Neuronen also mit 2 multipliziert. Dadurch bleibt die erwartete Summe der Ausgaben in jedem Schritt gleich, und bei der Inferenz ist keine Anpassung nötig.
Beispiel: Drei Neuronen liefern Aktivierungen von 0.8, 0.4 und 0.6. Summe: 1.8. Bei Dropout mit p=0.5 fällt das mittlere Neuron weg. Ohne Skalierung wäre die Summe 1.4. Mit Inverted Dropout werden die verbleibenden Werte mit 2 multipliziert: 1.6 + 1.2 = 2.8. Über viele Trainingsschritte gemittelt ergibt sich der erwartete Wert von 1.8.
Die alternative Methode (Standard Dropout) skaliert stattdessen bei der Inferenz: Alle Gewichte werden mit (1-p) multipliziert. Das Ergebnis ist mathematisch identisch, aber Inverted Dropout hat sich durchgesetzt, weil die Inferenz ohne zusätzliche Berechnung auskommt.
Beispiel: Ein Produktionssystem verarbeitet 10.000 Anfragen pro Sekunde. Inverted Dropout spart die Multiplikation aller Gewichte bei jeder Anfrage. Bei Standard Dropout müsste jede Inferenz eine zusätzliche Skalierung durchführen.
Dropout in Transformer-Architekturen
In modernen Transformer-Modellen wird Dropout an mehreren Stellen eingesetzt:
- Nach den Attention-Gewichten: Verhindert, dass das Modell sich auf wenige Positionen fixiert
- Nach den Feed-Forward-Schichten: Regularisiert die nichtlinearen Transformationen
- Auf den Embedding-Vektoren: Verhindert, dass einzelne Dimensionen der Eingabedarstellung dominieren
- Nach den residualen Verbindungen: Regularisiert die Kombination aus Hauptpfad und Skip-Verbindung
Beispiel: GPT-2 verwendet eine Dropout-Rate von 0.1 nach Attention-Gewichten und Feed-Forward-Schichten. Bei GPT-3 (175 Milliarden Parameter) wurde die Rate auf 0.0 gesenkt. Der Grund: Die Datenmenge (300 Milliarden Token) und die Modellgröße wirken bereits ausreichend regularisierend.
Beispiel: BERT verwendet Dropout mit Rate 0.1 auf Attention-Wahrscheinlichkeiten, Feed-Forward-Ausgaben und Embedding-Summen. Wird die Rate auf 0.3 erhöht, sinkt die Leistung auf GLUE-Benchmarks um durchschnittlich 1.2 Punkte. Wird sie auf 0.0 gesetzt, steigt die Leistung auf den Trainingsdaten, fällt aber auf ungesehenen Daten.
Varianten und Erweiterungen
Das ursprüngliche Dropout (2012, Hinton et al.) deaktiviert einzelne Neuronen. Seitdem sind mehrere Varianten entstanden, die das Grundprinzip auf andere Strukturen übertragen.
Spatial Dropout
In Faltungsnetzwerken erzeugt ein Filter eine komplette Feature-Map. Standard-Dropout auf einzelne Pixel ist wenig wirksam, weil benachbarte Pixel stark korrelieren. Spatial Dropout deaktiviert stattdessen ganze Feature-Maps.
Beispiel: Ein Bilderkennungsnetz hat 64 Feature-Maps in einer Schicht. Spatial Dropout mit Rate 0.2 schaltet in jedem Trainingsschritt zufällig 12 bis 13 komplette Maps ab. Das zwingt das Netz, Objekte anhand verschiedener Merkmalskombinationen zu erkennen.
DropConnect
Statt Neuronen werden einzelne Gewichte auf null gesetzt. DropConnect ist feingranularer als Dropout und kann in bestimmten Architekturen bessere Ergebnisse liefern, erfordert aber mehr Rechenzeit.
DropBlock
Zusammenhängende rechteckige Bereiche einer Feature-Map werden gleichzeitig deaktiviert. Das ist wirksamer als pixelweises Dropout bei Bilddaten, weil lokale Korrelationen in Bildern besonders stark sind.
Beispiel: Bei der Erkennung von Straßenschildern entfernt DropBlock während des Trainings zusammenhängende Bereiche von 7x7 Pixeln. Das Netz lernt, ein Stoppschild auch dann zu erkennen, wenn ein Teil verdeckt ist.
Dropout in der Praxis einsetzen
Die Wahl der Dropout-Rate hängt von der Architektur, der Datenmenge und der Aufgabe ab. Einige bewährte Heuristiken:
- Eingabeschichten: niedrige Rate (0.0 bis 0.2), weil Informationsverlust am Eingang besonders schädlich ist
- Verdeckte Schichten: mittlere Rate (0.2 bis 0.5)
- Ausgabeschicht: meist kein Dropout (0.0)
- Kleine Datensätze: höhere Rate (mehr Regularisierung nötig)
- Große Datensätze und große Modelle: niedrige oder keine Rate
Beispiel: Ein Textklassifikator für Supporttickets wird mit 50.000 Beispielen trainiert. Die optimale Dropout-Rate (ermittelt durch Kreuzvalidierung) liegt bei 0.4. Wird das Trainingsset auf 500.000 Beispiele erweitert, sinkt die optimale Rate auf 0.1.
Dropout wird ausschließlich während des Trainings angewendet. Bei der Inferenz sind alle Neuronen aktiv. In Frameworks wie PyTorch und TensorFlow steuert der Modus-Wechsel (model.train() vs. model.eval()) dieses Verhalten automatisch.
Beispiel: Ein häufiger Fehler in Produktionssystemen: Das Modell wird im Trainingsmodus deployed, weil model.eval() fehlt. Die Vorhersagen schwanken bei jeder Anfrage, weil Dropout weiterhin zufällig Neuronen deaktiviert. Erst nach dem Umschalten auf Inferenzmodus werden die Vorhersagen deterministisch.
Grenzen und Limitationen von Dropout
Dropout ist kein Allheilmittel. Die Methode hat klare Einschränkungen:
- Verlängertes Training: Weil in jedem Schritt nur ein Teil der Neuronen aktiv ist, braucht das Netz mehr Epochen, um zu konvergieren. Typisch sind 2x bis 4x mehr Trainingsschritte.
- Keine Wirkung bei zu wenig Parametern: Ein zu kleines Netz profitiert nicht von Dropout, weil die Kapazität bereits knapp ist.
- Interaktion mit anderen Regularisierern: Dropout in Kombination mit Batch Normalization kann zu unerwarteten Effekten führen. Die Varianzschätzung der Batch Normalization wird durch Dropout verfälscht, weil die Aktivierungsverteilung zwischen Training und Inferenz nicht mehr konsistent ist.
- Hyperparameter-Sensitivität: Die optimale Dropout-Rate variiert stark zwischen Schichten und Aufgaben. Eine pauschale Rate für alle Schichten ist selten optimal.
Beispiel: ResNet-50 zeigt mit Standard-Dropout nach Batch-Normalization-Schichten eine Verschlechterung der Top-1-Genauigkeit auf ImageNet um 0.5 Prozentpunkte. Wird Dropout stattdessen nur nach der letzten vollverbundenen Schicht eingesetzt, verbessert sich die Genauigkeit um 0.3 Prozentpunkte gegenüber der Variante ohne Dropout.
Fachliche Einordnung: Das Originalpaper von Srivastava et al. (2014) zeigt, dass Dropout in vollverbundenen Schichten konsistent wirkt. In Faltungsschichten ist die Evidenz gemischt. Neuere Arbeiten (Ghiasi et al., 2018) demonstrieren, dass strukturierte Varianten wie DropBlock in Faltungsschichten effektiver sind als Standard-Dropout. Für sehr große Sprachmodelle (ab circa 10 Milliarden Parameter) wird Dropout zunehmend durch andere Regularisierungstechniken ersetzt, etwa Weight Decay und Datenaugmentation.