Unterschied zwischen neuronalem Nettogewichtsabfall und Lernrate

94

Was ist im Zusammenhang mit neuronalen Netzen der Unterschied zwischen Lernrate und Gewichtsabnahme?

Ryan Zotti
quelle

Antworten:

161

Die Lernrate ist ein Parameter, der bestimmt, wie stark ein Aktualisierungsschritt den aktuellen Wert der Gewichte beeinflusst. Während der Gewichtsabfall ein zusätzlicher Begriff in der Regel zur Gewichtsaktualisierung ist, der bewirkt, dass die Gewichte exponentiell auf Null abfallen, wenn keine andere Aktualisierung geplant ist.

Nehmen wir also an, wir haben eine Kosten- oder Fehlerfunktion , die wir minimieren möchten. Gradient Descent sagt uns, dass wir die Gewichte in Richtung des steilsten Abfalls in : wobei die Lernrate ist und wenn es groß ist, haben Sie eine entsprechend große Modifikation der Gewichte (im Allgemeinen sollte es nicht zu groß sein, sonst werden Sie das lokale Minimum in Ihrer Kostenfunktion überschreiten).E(w)wE

wiwiηEwi,
ηwi

Um die Anzahl der freien Parameter in Ihrem Modell effektiv zu begrenzen, um eine Überanpassung zu vermeiden, ist es möglich, die Kostenfunktion zu regulieren. Eine einfache Möglichkeit, dies zu tun, besteht darin, vor den Gewichten einen Gaußschen Mittelwert von Null einzufügen. Dies entspricht der Änderung der Kostenfunktion in . In der Praxis werden dadurch große Gewichte benachteiligt und die Freiheit in Ihrem Modell effektiv eingeschränkt. Der Regularisierungsparameter bestimmt, wie Sie die ursprünglichen Kosten mit der Strafe für große Gewichte abwägen.E~(w)=E(w)+λ2w2λE

Anwenden von Gradientenabfallsaktualisierung auf diese neue Kostenfunktion erhalten wir: Der neue Term aus der Regularisierung bewirkt, dass das Gewicht proportional zu seiner Größe .

wiwiηEwiηλwi.
ηλwi
mrig
quelle
2
Danke für die hilfreiche Erklärung. Eine Frage: Im "nnet" R-Paket gibt es einen Parameter, der beim Training des neuronalen Netzwerks verwendet wird und "Zerfall" heißt. Wissen Sie, ob der Zerfall Ihrem Lambda oder Ihrem eta * Lambda entspricht?
Andrea Ianni ௫
3
Ich möchte auch hinzufügen, dass Gewichtsabnahme für diejenigen, die mit letzterem vertraut sind, dasselbe ist wie L2-Regularisierung.
Sergei
2
@ Sergei bitte nein, hör auf, diese Fehlinformationen zu verbreiten! Dies gilt nur für den ganz besonderen Fall von Vanille-SGD. Siehe Fixiergewicht für Adam- Papier.
LucasB
Zur Verdeutlichung: Zum Zeitpunkt des Schreibens wird in den PyTorch-Dokumenten für Adam der Begriff "Gewichtsabnahme" (in Klammern "L2-Strafe" genannt) verwendet, um auf das zu verweisen, was diese Autoren meiner Meinung nach als L2-Regulierung bezeichnen. Wenn ich richtig verstehe, bezieht sich diese Antwort auf SGD ohne Schwung, wobei die beiden gleichwertig sind.
Dylan F
14

Zusätzlich zur @ mrig-Antwort (+1) ist es für viele praktische Anwendungen neuronaler Netze besser, einen fortgeschritteneren Optimierungsalgorithmus wie Levenberg-Marquardt (kleine bis mittelgroße Netze) oder einen skalierten konjugierten Gradientenabstieg (mittel bis groß) zu verwenden Netzwerke), da diese viel schneller sind und die Lernrate nicht eingestellt werden muss (beide Algorithmen passen die Lernrate im Wesentlichen anhand der Krümmung und des Gradienten an). Jedes vernünftige neuronale Netzwerkpaket oder jede Bibliothek wird eine dieser Methoden implementieren, jedes Paket, das dies nicht tut, ist wahrscheinlich veraltet. Ich benutze die NETLAB-Bibliothek für MATLAB, die ein großartiges Teil des Kits ist.

Dikran Beuteltier
quelle
Was ist mit den Rprop-basierten Optimierungsalgen? Wie stapeln sie sich?
Macht
4
Ich denke, die meisten Leute verwenden Varianten von rprop + momentum wie RMSProp, adagrad, SGD + nesterov momentum. Siehe CS231-Klasse .
Fakuq
1
Das hängt natürlich von Ihrer Anwendung ab. Aber für große Datensätze / Netzwerke, die gerade im Trend liegen, sind die Algorithmen, die ich erwähnte, meiner Meinung nach besser geeignet.
Facuq
6
@DikranMarsupial könnte es sein, dass heutzutage (fast fünf Jahre nach Ihrer Antwort) Leute dazu neigen, Adam stattdessen zu verwenden?
Computerwissenschaftler
2
In der Tat ist diese Antwort sehr veraltet. Diese Algorithmen sind bei der heutzutage üblichen Größe von Modellen und Datensätzen nicht praktikabel, und den am häufigsten verwendeten Paketen, die mit Sicherheit nicht veraltet sind, fehlen diese Algorithmen.
LucasB