Antworten:
Die Zusammenfassung des Dropout-Artikels scheint perfekt zu sein.
Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov " Dropout: Ein einfacher Weg zu verhindern , dass Neuronale Netze von Overfitting ", Journal of Machine Learning Forschung 2014.
Tiefe neuronale Netze mit einer großen Anzahl von Parametern sind sehr leistungsfähige maschinelle Lernsysteme. Überanpassung ist jedoch in solchen Netzen ein ernstes Problem. Große Netzwerke sind auch langsam zu benutzen, was es schwierig macht, mit Überanpassung umzugehen, indem die Vorhersagen vieler verschiedener großer neuronaler Netze zur Testzeit kombiniert werden. Dropout ist eine Technik zur Lösung dieses Problems. Die Schlüsselidee besteht darin, Einheiten (zusammen mit ihren Verbindungen) während des Trainings zufällig aus dem neuronalen Netzwerk zu entfernen. Dies verhindert, dass sich Einheiten zu stark anpassen. Während des Trainings werden Dropout-Samples aus einer exponentiellen Anzahl von verschiedenen "verdünnten" Netzwerken verwendet. Zum Testzeitpunkt ist es einfach, den Effekt der Mittelwertbildung der Vorhersagen aller dieser verdünnten Netzwerke zu approximieren, indem einfach ein einzelnes nicht verdünntes Netzwerk mit kleinerer Gewichtung verwendet wird. Dies reduziert die Überanpassung erheblich und führt zu erheblichen Verbesserungen gegenüber anderen Regularisierungsmethoden. Wir zeigen, dass Dropout die Leistung neuronaler Netze bei überwachten Lernaufgaben in den Bereichen Vision, Spracherkennung, Dokumentklassifizierung und Computerbiologie verbessert und auf vielen Benchmark-Datensätzen die neuesten Ergebnisse liefert.
Wenn Sie den Artikel lesen, finden Sie eine Beschreibung dessen, was Co-Adapting-Verhalten im Zusammenhang mit Drop-Out bedeutet.
In einem standardmäßigen neuronalen Netzwerk gibt die Ableitung, die von jedem Parameter empfangen wird, an, wie sie sich ändern soll, damit die endgültige Verlustfunktion verringert wird, wenn man bedenkt, was alle anderen Einheiten tun. Daher können sich Einheiten so ändern, dass die Fehler der anderen Einheiten behoben werden. Dies kann zu komplexen Co-Anpassungen führen. Dies führt wiederum zu einer Überanpassung, da sich diese Co-Anpassungen nicht auf unsichtbare Daten verallgemeinern lassen. Wir nehmen an, dass Dropout für jede verborgene Einheit die Ko-Anpassung verhindert, indem es die Anwesenheit anderer verborgener Einheiten unzuverlässig macht. Daher kann sich eine verborgene Einheit nicht auf andere spezifische Einheiten verlassen, um ihre Fehler zu korrigieren. Es muss in einer Vielzahl unterschiedlicher Kontexte, die von den anderen verborgenen Einheiten bereitgestellt werden, eine gute Leistung erbringen. Um diesen Effekt direkt zu beobachten,
Diese Antwort knüpft an die großartige Antwort von Sycorax an und richtet sich an Leser, die sehen möchten, wie Dropout implementiert wird.
Wenn man in künstlichen neuronalen Netzen einen Ausfall anwendet, muss man die Tatsache kompensieren, dass zum Zeitpunkt des Trainings ein Teil der Neuronen deaktiviert war. Dafür gibt es zwei gemeinsame Strategien:
Das /p
wird vom Training zum Vorhersagecode verschoben, wo es wird *p
:
Diese drei Folien stammen aus Vorlesung 6 von Standford CS231n: Convolutional Neural Networks for Visual Recognition .
Bei einem Ausfall (in einem Stapel von Eingabedaten) werden einige Neuronen in einer Ebene vorübergehend ausgeschaltet, sodass sie während dieser Aktualisierungen keine Informationen beitragen oder Informationen erlernen, und andere aktive Neuronen müssen mehr lernen und den Fehler reduzieren.
Wenn ich einem 6-jährigen Schulabbrecher Folgendes erklären muss: Stellen Sie sich ein Szenario vor, in einem Klassenzimmer stellt ein Lehrer einige Fragen, aber immer die gleichen zwei Kinder antworten sofort. Jetzt bittet der Lehrer sie, eine Weile still zu bleiben und andere Schüler teilnehmen zu lassen. Auf diese Weise lernen andere Schüler besser. Vielleicht antworten sie falsch, aber der Lehrer kann sie korrigieren (Gewichtsupdates). Auf diese Weise lernt die gesamte Klasse (Ebene) ein Thema besser kennen.
Sie können Drop-out als vorherige Wahrscheinlichkeit dafür betrachten, ob ein Merkmal (oder ein latentes Merkmal in einer Zwischenschicht) keine Rolle spielt - dh eine Spitze (Punktmasse bei Null = Merkmal spielt keine Rolle) und eine Platte (flach = nicht reflektiert) vor über den gesamten Parameterraum) vor.
Auf diese Weise können Sie nicht nur die Modellanpassung regulieren, sondern auch Unsicherheit über die Inferenz gewinnen. Dies wird in der Dissertation und den Papieren (auch dies ) von Yarin Gal diskutiert .