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.