Wird das Hinzufügen von zufälligem Rauschen zu verborgenen Ebenen als Regularisierung angesehen? Was ist der Unterschied zwischen dem Hinzufügen und dem Hinzufügen von Dropout und Batch-Normalisierung?


Antwort 1:

Ja, das Hinzufügen von zufälligem Rauschen zu verborgenen Ebenen ist eine Regularisierung genauso wie bei Dropout. Die Schlüsselintuition hier ist, dass, wenn die neuronale Antwort auf jeder Schicht laut ist, das Training die Gewichte anpassen muss, um Kategorien mit einem Abstand zu trennen, der größer als das Rauschen ist. Daher sollte zur Klassifizierung zum Zeitpunkt des Fehlens des Rauschens die Klassifizierung stabiler sein. Dies ist der Funktionsweise der Max-Margin-Klassifizierung sehr ähnlich, und wir alle wissen, wie erfolgreich Max-Margin-Techniken waren (z. B. Support Vector Machines). Sie müssen jedoch darauf achten, dass das Rauschen das Signal nicht überfordert.

Dropout wird als Regularisierungsmethode angesehen, da es eine Modellmittelung durchführt. Das heißt, während des Trainings ist das Modell zu einem bestimmten Zeitpunkt tatsächlich eine Wahrscheinlichkeitsverteilung über eine Klasse von neuronalen Netzwerkmodellen, in denen die Gewichte festgelegt sind, aber eines der Neuronen im Modell fehlen kann. Die Gesamtwahrscheinlichkeit jedes neuronalen Netzwerks wird durch die individuelle Wahrscheinlichkeit bestimmt, dass ein bestimmtes Neuron vorhanden ist oder fehlt. Dies ist eine Regularisierung, da sie über die Verzerrung der einzelnen Instanzen gemittelt wird, wodurch die Kostenfunktion geglättet wird.

Das Hinzufügen von zufälligem Rauschen zur verborgenen Schicht funktioniert auf die gleiche Weise, jedoch mit einer anderen Wahrscheinlichkeitsverteilung. Anstatt feste Gewichte zu haben, haben Sie eine feste Topologie, und die Wahrscheinlichkeitsverteilung wählt zufällig Gewichte gemäß einer Gaußschen Verteilung aus, die auf den „wahren“ Gewichten zentriert ist, dh den Gewichten, die Sie auf Ihrer Festplatte speichern. Auch dies ist eine Modellmittelung und sollte einen regulierenden Einfluss haben, mit der Einschränkung, dass das Rauschen (die Varianz) das Signal nicht überwältigen sollte. Wenn Sie beispielsweise BatchNorm zum ersten Mal anwenden, haben Sie ein ungefähr normales Standardausgabeprofil (Einheiten, die mit der Varianz Eins auf Null zentriert sind), und Sie können dann Rauschen mit einer Varianz von beispielsweise 0,1 anwenden. Sie können mit der Varianz spielen, um zu sehen, was funktioniert.

EDIT: Da in der Frage BatchNorm erwähnt wurde, wollte ich darauf hinweisen, dass BatchNorm nicht wirklich für die Regularisierung verwendet wird. Das heißt, BatchNorm glättet die Kosten nicht. Stattdessen wird BatchNorm hinzugefügt, um die Leistung der Backpropagation zu verbessern. Im Wesentlichen verhindert es, dass der rückwärts propagierte Gradient durch erneutes Skalieren und erneutes Zentrieren zu groß oder zu klein wird. Als Technik hat es tiefere Verbindungen zu Optimierungsmethoden zweiter Ordnung, die versuchen, die Krümmung der Kostenoberfläche zu modellieren. Wie oben erwähnt, kann BatchNorm auch verwendet werden, um sicherzustellen, dass die relative Skalierung korrekt ist, wenn Sie den neuronalen Aktivitäten zufälliges Rauschen hinzufügen.


Antwort 2:

Ich würde es eher als Optimierungstrick als als Regularisierung betrachten.

Der Effekt sollte dem Effekt der Stochastizität bei SGD entsprechen.

SGD und seine Inspiration Monte-Carlo-Methoden vermeiden es, in schlechten lokalen Minima zu stecken, indem sie von Zeit zu Zeit einen zufälligen Schritt machen, anstatt strikt der Richtung des steilsten Abstiegs zu folgen. oder etwas Äquivalentes in ihren verschiedenen Inkarnationen zu tun, z. B. jedem Schritt eine zufällige Komponente hinzuzufügen, anstatt regelmäßig einen zufälligen Schritt zu machen.

Durch Hinzufügen von schwachem Zufallsrauschen zu Gewichten wird genau das Gleiche erreicht. [Hinweis: Der Gradientenabstieg fügt den Gewichten in jeder Iteration etwas hinzu!]


Antwort 3:

BEARBEITEN:

Durch Hinzufügen von Gauß-verteiltem, zufälligem Rauschen zu den Eingangsdaten jeder Schicht kann Ihr Modell gegenüber kleinen Änderungen der Daten robuster werden, sodass Ihr Netzwerk Rauschen besser vom Signal unterscheiden kann. Wie Zeeshan Zia sagte, wäre dies im Wesentlichen ein anständiger stochastischer Gradient. Ich würde diese Regularisierung immer noch nicht in Betracht ziehen. Es ist eher eine Technik, mit der Ihr Modell Muster lernen kann, um Rauschen vom Signal zu trennen.

Durch Dropout wird bei jedem Durchgang zufällig ein bestimmter Anteil der Knoten in einer verborgenen Ebene deaktiviert. Dies verbessert das Netzwerk, da es lernen muss, dieselben Muster auf verschiedene Weise zu erkennen, was zu einem besseren Modell führt.

Bei der Batch-Normalisierung nehmen Sie die Eingaben in eine Ebene und stellen sicher, dass sie alle zwischen 0 und 1 normalisiert sind. Dies hilft dem Netzwerk, besser zu lernen, da der Gradient anständiger und gleichmäßiger bleibt. Auf diese Weise vermeiden Sie das Herumspringen um Minima, da Ihr Gefälle zu groß ist.