Angenommen, Sie versuchen, die Zielfunktion über die Anzahl der Iterationen zu minimieren. Der aktuelle Wert ist . In einem gegebenen Datensatz gibt es keine "irreduziblen Fehler" und Sie können den Verlust für Ihre Trainingsdaten auf minimieren . Jetzt haben Sie zwei Möglichkeiten.100,00.0
Der erste Weg ist "große Lernrate" und wenige Iterationen. Angenommen, Sie können den Verlust in jeder Iteration um reduzieren und dann in Iterationen den Verlust auf reduzieren .10.0100.0
Der zweite Weg wäre "langsame Lernrate", aber mehr Iterationen. Angenommen, Sie können den Verlust in jeder Iteration um reduzieren und benötigen Iterationen, um einen Verlust von 0,0 für Ihre Trainingsdaten zu erzielen.1,0100
Denken Sie nun darüber nach: Sind die beiden Ansätze gleich? und wenn nicht, welches ist im Optimierungskontext und im Kontext des maschinellen Lernens besser ?
In der Optimierungsliteratur sind die beiden Ansätze gleich. Da sie beide zu einer optimalen Lösung zusammenlaufen . Andererseits sind sie beim maschinellen Lernen nicht gleich. Weil wir in den meisten Fällen den Trainingsverlust nicht auf setzen, was zu einer Überanpassung führt.0
Wir können uns den ersten Ansatz als "Grobniveausuche" und den zweiten Ansatz als "Feinniveausuche" vorstellen. Der zweite Ansatz funktioniert normalerweise besser, benötigt jedoch mehr Rechenleistung für mehr Iterationen.
Um eine Überanpassung zu verhindern, können wir verschiedene Dinge tun. Der erste Weg wäre, die Anzahl der Iterationen zu beschränken. Nehmen wir an, wir verwenden den ersten Ansatz und begrenzen die Anzahl der Iterationen auf 5. Am Ende beträgt der Verlust für Trainingsdaten . (Übrigens wäre dies aus Sicht der Optimierung sehr seltsam , was bedeutet, dass wir unsere Lösung künftig verbessern können / dass sie nicht konvergiert, aber wir entschieden uns dagegen. Bei der Optimierung fügen wir der Zielfunktion normalerweise explizit Einschränkungen oder Benachteiligungsterme hinzu.) aber normalerweise nicht die Anzahl der Iterationen begrenzen.)50
Auf der anderen Seite können wir auch den zweiten Ansatz verwenden: Wenn wir die Lernrate auf klein einstellen und beispielsweise den Verlust von für jede Iteration reduzieren , haben wir den Verlust immer noch nicht auf minimiert , obwohl wir eine große Anzahl von Iterationen mit Iterationen haben .0,15000.0
Aus diesem Grund ist eine geringe Lernrate gleichbedeutend mit "mehr Regularisierungen".
Hier ist ein Beispiel für die Verwendung unterschiedlicher Lernraten für experimentelle Daten unter Verwendung von xgboost
. Bitte überprüfen Sie follwoing zwei Links zu sehen , was tut eta
oder n_iterations
bedeuten.
Parameter für Tree Booster
XGBoost Control Überanpassung
Sagen Sie für die gleiche Anzahl von Iterationen . Eine kleine Lernrate ist "under-fitting" (oder das Modell hat "high bias") und eine große Lernrate ist "over-fitting" (oder das Modell hat "high varianz").50
PS. Der Beweis für eine Unteranpassung besteht darin, dass sowohl das Trainings- als auch das Testset große Fehler aufweisen und die Fehlerkurve für das Training und das Testen nahe beieinander liegen. Das Anzeichen einer Überanpassung ist, dass der Fehler des Trainingssatzes sehr gering und der Testsatz sehr hoch ist und zwei Kurven weit voneinander entfernt sind.
This is why small learning rate is sort of equal to "more regularizations"
. Je höher die Lernrate, desto stärker wird die Regularisierung: Superkonvergenz: Sehr schnelles Training neuronaler Netze mit hohen LernratenMit der Newton-Methode aktualisieren Sie Ihre Parameter, indem Sie den Gradienten des Verlusts dividiert durch die Krümmung des Verlusts subtrahieren. Bei der Steigungsabstiegsoptimierung aktualisieren Sie Ihre Parameter, indem Sie den Gradienten des Verlusts mal der Lernrate subtrahieren. Mit anderen Worten wird der Kehrwert der Lernrate anstelle der tatsächlichen Verlustkrümmung verwendet.
Definieren wir den Problemverlust als den Verlust, der definiert, was ein gutes Modell im Vergleich zu einem schlechten Modell ist. Es ist der wahre Verlust. Definieren wir den optimierten Verlust als das, was durch Ihre Aktualisierungsregeln tatsächlich minimiert wird.
Per Definition ist ein Regularisierungsparameter ein beliebiger Begriff, der sich im optimierten Verlust befindet, nicht jedoch im Problemverlust. Da die Lernrate im optimierten Verlust wie ein extraquadratischer Term wirkt, aber nichts mit dem Problemverlust zu tun hat, handelt es sich um einen Regularisierungsparameter.
Weitere Beispiele für Regularisierungen, die diese Perspektive rechtfertigen, sind:
quelle
In other words, the reciprocal of the learning rate is used in place of the real loss curvature
. - Ich bin keine Domain - Experte und es ist das erste Mal , dass ich die Definition sehen:a regularization parameter is any term that is in the optimized loss, but not the problem loss
. Ich verstehe es auch nicht ganz. Könnten Sie bitte eine relevante Referenz angeben? Vielen Dank im Voraus