Wie berechnet man den Regularisierungsparameter in der linearen Regression?
Wenn wir eine hohe lineare Polynom, das verwendet wird, um zu passen eine Reihe von Punkten in einer linearen regression setup, um overfitting zu verhindern, verwenden wir die Regulation, und wir sind ein lambda-parameter in die Kosten-Funktion. Dieser lambda-Ausdruck wird dann verwendet zum aktualisieren der theta-Parameter in der gradient-descent-Algorithmus.
Meine Frage ist, wie berechnen wir das lambda-Regularisierung parameter?
Kommentar zu dem Problem - Öffnen
Irgendeine spezifische Sprache, die Sie verwenden?
InformationsquelleAutor der Frage London guy | 2012-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den regularization parameter (lambda) ist ein input für Ihr Modell also, was möchten Sie wahrscheinlich wissen, ist, wie Sie wählen Sie der Wert von lambda. Die Regularisierung parameter reduziert overfitting, das reduziert die Varianz der geschätzten regression Parameter, aber es tut dies auf Kosten von hinzufügen bias zu schätzen. Erhöhung der lambda-Ergebnisse in weniger overfitting aber auch eine größere Neigung. Also die eigentliche Frage ist "Wie viel Voreingenommenheit sind Sie bereit, zu tolerieren, in Ihre Schätzung?"
Ist ein Ansatz, die Sie ergreifen können ist, um zufällig teilstichprobe Ihrer Daten eine Anzahl von Zeiten und Blick auf die variation in Ihrer Schätzung. Dann wiederholen Sie den Vorgang für einen etwas größeren Wert von lambda zu sehen, wie es wirkt sich auf die Variabilität Ihrer Schätzung. Beachten Sie, dass alles, was mit dem Wert des lambda-Sie entscheiden je nach Ihrer Unterstichprobe (subsampled) Daten haben, können Sie wahrscheinlich verwenden Sie einen kleineren Wert zu erreichen, vergleichbar Regularisierung auf die vollständige Daten-set.
InformationsquelleAutor der Antwort bogatron
GESCHLOSSENE FORM (TIKHONOV) VERSUS GRADIENT DESCENT
Hallo! schöne Erklärungen für die intuitive und top-notch-mathematische Ansätze gibt. Ich wollte nur hinzufügen, einige Besonderheiten, die, wo nicht "problem-solving", kann auf jeden Fall helfen, zu beschleunigen, und geben Sie einige Konsistenz, um den Prozess der Suche nach einer guten Regulation hyperparameter.
Ich nehme an, Sie sprechen über die L2 (ein.k. "weight decay") - Regulation, Linear gewichtet mit der lambda Begriff, und dass Sie die Optimierung der GEWICHTE des Modells entweder mit der in geschlossener form Tichonow Gleichung (empfohlen für niedrig-dimensionalen linearen regression-Modelle), oder mit irgendeiner Variante von gradient descent mit RÜCKFÜHRUNG. Und in diesem Zusammenhang, die Sie wollen, wählen Sie den Wert für lambda , bietet beste Generalisierung Fähigkeit.
GESCHLOSSENE FORM (TIKHONOV)
Wenn Sie sind in der Lage zu gehen, die Tikhonov Weise mit Ihrem Modell (Andrew Ng sagt unter 10k Abmessungen, aber dieser Vorschlag ist mindestens 5 Jahre alt) Wikipedia - Bestimmung von Tikhonov-Faktor bietet eine interessante in geschlossener form-Lösung, die bewiesen hat, um den optimalen Wert. Aber diese Lösung wirft wahrscheinlich einige Art der Umsetzung Probleme (Zeit, Komplexität/numerische Stabilität) ich bin mir nicht bewusst, weil es keine mainstream-Algorithmus ausführen. Diese 2016 Papier sieht sehr vielversprechend aus, obwohl und möglicherweise einen Versuch Wert, wenn Sie wirklich zu optimieren Ihrer linearen Modells zu seiner besten.
Und von der GitHub README des Projekts:
InverseProblem.invert(A, be, k, l) #this will invert your A matrix, where be is noisy be, k is the no. of iterations, and lambda is your dampening effect (best set to 1)
GRADIENT DESCENT
Alle links dieser Artikel sind von Michael Nielsen ist erstaunlich, das online-Buch "von Neuronalen Netzen und Deep Learning", Vorlesung empfohlen!
Für diesen Ansatz scheint es zu sein, noch weniger gesagt werden: die Kosten-Funktion ist in der Regel nicht-konvexe Optimierung wird numerisch durchgeführt und die Leistung des Modells ist gemessen durch irgendeine form der Kreuz-Validierung (siehe Overfitting und Regulation und warum Regularisierung reduzieren overfitting wenn Sie noch nicht genug von). Aber selbst wenn die Kreuz-Validierung, Nielsen deutet etwas an: möchten Sie vielleicht werfen Sie einen Blick auf diese ausführliche Erklärung auf wie funktioniert die L2-Regularisierung bieten ein Gewicht verfallenden Effekt, aber die Zusammenfassung ist, dass es Umgekehrt proportional zu der Anzahl der Proben
n
, so dass bei der Berechnung des gradient-descent-Gleichung mit L2-Begriff,Und seine Schlussfolgerung ist, dass, wenn Sie wollen, eine ähnliche Regulation Effekt mit einer unterschiedlichen Anzahl von Proben, lambda werden proportional geändert:
Dies ist nur nützlich, wenn die Anwendung der gleichen Modell unterschiedliche Mengen der gleichen Daten, aber ich denke, es öffnet die Tür für einige intuition auf, wie es funktionieren sollte, und, was noch wichtiger ist, beschleunigen das hyperparametrization Prozess, indem Sie die Feinabstimmung lambda in kleinere Untergruppen und dann skalieren.
Für die Wahl der genauen Werte empfiehlt er, in seinen Schlussfolgerungen auf wie wählen Sie ein neuronales Netz ist hyperparameters den rein empirischen Ansatz: mit 1 beginnen und dann schrittweise multiplizieren&dividieren durch 10, bis Sie die richtige Reihenfolge der Größenordnung, und führen Sie dann eine lokale Suche in dieser region. In den Kommentaren von diese SE Fragen, die Benutzer Brian Borchers schlägt vor, auch eine sehr bekannte Methode, die nützlich sein können für die lokale Suche:
λ=0
und erhöhen, indem Sie kleine Mengen, die innerhalb einer bestimmten region, führen Sie eine schnelle Trainings - &Validierung des Modells und der plot sowohl Verlust-Funktionenλ=0
, und dann erhöhen Sie mit der Regularisierung, da die Verhinderung das Modell optimal passend zu den Trainingsdaten ist genau das, was Regularisierung tut.λ=0
, dann verringern sich, und dann nehmen Sie wieder an einem gewissen Punkt (EDIT: unter der Annahme, dass das setup ist in der Lage, overfit fürλ=0
, also das Modell genug power hat, und keine andere Regularisierung bedeutet stark angewendet).λ
werden wahrscheinlich irgendwo um das minimum des CV-Verlust-Funktion, es können auch hängen ein wenig, wie ist das training loss Funktion wie. Siehe das Bild für eine mögliche (aber nicht die einzige) Darstellung: statt von "Modell-Komplexität" Sie sollten das interpretieren der x-Achse alsλ
null auf der rechten Seite und steigt zum linken.Hoffe, das hilft! Cheers,
Andres
InformationsquelleAutor der Antwort fr_andres
Die Kreuzvalidierung, die oben beschrieben ist eine Methode, die oft in Machine Learning. Jedoch ist die Wahl einer zuverlässigen und sicheren regularization parameter ist immer noch ein sehr heißes Thema der Forschung in der Mathematik.
Wenn Sie einige Ideen (und haben Zugang zu einer anständigen Uni-Bibliothek), können Sie einen Blick auf das Papier:
http://www.sciencedirect.com/science/article/pii/S0378475411000607
InformationsquelleAutor der Antwort Jean-Luc Bouchot