Die Funktion von Dropout besteht darin, die Robustheit des Modells zu erhöhen und auch einfache Abhängigkeiten zwischen den Neuronen zu beseitigen.
Neuronen werden nur für einen einzelnen Durchlauf vorwärts und rückwärts durch das Netzwerk entfernt. Dies bedeutet, dass ihre Gewichte für diesen Durchlauf synthetisch auf Null gesetzt werden und ihre Fehler ebenfalls, was bedeutet, dass die Gewichte nicht aktualisiert werden. Dropout funktioniert auch als eine Form der Regularisierung , da es das Modell für seine Komplexität in gewisser Weise benachteiligt.
Ich würde empfehlen, den Dropout-Abschnitt in Michael Nielsens Deep Learning-Buch (kostenlos und online) zu lesen , der eine gute Intuition vermittelt und auch sehr hilfreiche Diagramme / Erklärungen enthält. Er erklärt das:
Dropout ist eine radikal andere Technik zur Regularisierung. Im Gegensatz zur L1- und L2-Regularisierung muss bei Dropout die Kostenfunktion nicht geändert werden. Stattdessen ändern wir bei Dropout das Netzwerk selbst.
Hier ist ein schöner zusammenfassender Artikel . Aus diesem Artikel:
Einige Beobachtungen:
- Dropout zwingt ein neuronales Netzwerk, robustere Funktionen zu lernen, die in Verbindung mit vielen verschiedenen zufälligen Untergruppen der anderen Neuronen nützlich sind.
- Dropout verdoppelt ungefähr die Anzahl der für die Konvergenz erforderlichen Iterationen. Die Trainingszeit für jede Epoche ist jedoch kürzer.
- Mit H versteckten Einheiten, von denen jede fallengelassen werden kann, haben wir 2 ^ H mögliche Modelle. In der Testphase wird das gesamte Netzwerk betrachtet und jede Aktivierung um einen Faktor p reduziert.
Beispiel
Stellen Sie sich vor, ich bitte Sie, mir eine Tasse Tee zu machen - Sie könnten immer Ihre rechte Hand zum Eingießen des Wassers verwenden, Ihr linkes Auge zum Messen des Wasserstandes und dann Ihre rechte Hand erneut, um den Tee mit einem Löffel umzurühren. Dies würde bedeuten, dass Ihre linke Hand und Ihr rechtes Auge wenig Sinn haben. Die Verwendung von Dropout würde z. B. Ihre rechte Hand hinter Ihrem Rücken binden und Sie dazu zwingen, Ihre linke Hand zu verwenden. Jetzt, nachdem Sie mir 20 Tassen Tee zubereitet haben und entweder ein Auge oder eine Hand außer Gefecht gesetzt haben, sind Sie besser darin geschult, alles zu benutzen, was zur Verfügung steht. Vielleicht müssen Sie später in einer winzigen Küche Tee kochen, in der es nur möglich ist, den Wasserkocher mit dem linken Arm zu benutzen ... und nachdem Sie Dropout benutzt haben, haben Sie Erfahrung damit! Sie sind robuster gegenüber unsichtbaren Daten geworden.
Dropout entfernt eigentlich keine Neuronen, es ist nur so, dass diese bestimmten Neuronen für den angegebenen Datenstapel keine Rolle spielen (nicht aktiviert werden).
Beispiel - Angenommen, es gibt eine Straße mit 8 Fahrspuren - Wenn Lastwagen kommen, passieren sie die Fahrspuren 1,2,4,6,7, wenn Autos kommen, passieren sie die Fahrspuren 2,3,4,7,8 und wenn Motorräder kommen Sie fahren durch die Gassen 1,2,5,8. Unabhängig von einem Fahrzeug sind also alle Fahrspuren vorhanden, aber nur einige davon werden verwendet.
In ähnlicher Weise werden alle Neuronen im gesamten Modell verwendet, es wird jedoch nur eine Teilmenge von Neuronen für einen bestimmten Datenstapel aktiviert. Und das Modell wird später nicht gekürzt, die Modellkomplexität bleibt unverändert.
Warum Dropout verwenden?
Wie in Deep Learning-Buch von Ian Goodfellow gegeben,
Er sagt auch-
Dieses Buch sagt-
quelle
Eine andere Sichtweise auf das, was Dropout bewirkt, ist, dass der Koeffizient für eine Kovariate (das ist ein komplexer Interaktionsterm der ursprünglichen Kovariaten mit einigen komplizierten funktionalen Transformationen) in einem Bayes'schen Modell wie ein Vorgänger ist. Dies ist die Interpretation, die Yarin Gal in seiner Dissertation vorgeschlagen hat (siehe seine Publikationsliste ).
Hier ist ein kurzes Argument, warum dies so ist:
Warum sollten wir vorher eine Platte mit Stacheln haben wollen? Sie induziert ein Bayes'sches Modell für die Mittelwertbildung zwischen einem neutralen Netzwerk ohne dieses Neuron und einem mit diesem Neuron. Mit anderen Worten, sie lässt uns die Unsicherheit darüber ausdrücken, ob das neutrale Netzwerk wirklich seine volle mögliche Komplexität haben muss, und berücksichtigt diese Unsicherheit in angemessener Weise in der Vorhersagen. Damit wird das Hauptproblem der Überanpassung neutraler Netzwerke an Daten behoben (obwohl dies natürlich nicht der einzige Weg ist, dies zu erreichen).
quelle
Durch die Dropout-Schicht wird ein bestimmter Teil der Neuronen unterschiedslos ausgesondert, wodurch die Darstellungskapazität des betreffenden Modells verringert wird. Dies verhindert, dass das Netzwerk komplexe nichtlineare Entscheidungsgrenzen (dh das "Rauschen" im Datensatz) anpasst, wodurch eine Überanpassung verhindert (oder verbessert) wird.
quelle