Ich stelle mir vor, je größer ein Koeffizient für eine Variable ist, desto größer ist die Fähigkeit des Modells, in dieser Dimension zu "schwingen", was eine größere Möglichkeit bietet, Rauschen anzupassen. Obwohl ich denke, dass ich ein vernünftiges Gespür für die Beziehung zwischen der Varianz im Modell und großen Koeffizienten habe, weiß ich nicht so genau , warum sie in Überanpassungsmodellen auftreten. Ist es falsch zu sagen, dass sie ein Symptom für eine Überanpassung sind und der Koeffizientenschrumpf eher eine Technik zur Verringerung der Varianz im Modell ist? Die Regularisierung über die Koeffizientenschrumpfung scheint nach dem Prinzip zu funktionieren, dass große Koeffizienten das Ergebnis eines überpassenden Modells sind, aber vielleicht interpretiere ich die Motivation hinter der Technik falsch.
Meine Intuition, dass große Koeffizienten im Allgemeinen ein Symptom für eine Überanpassung sind, ergibt sich aus dem folgenden Beispiel:
Nehmen wir an, wir wollten Punkte einpassen, die alle auf der x-Achse liegen. Wir können leicht ein Polynom konstruieren, dessen Lösungen diese Punkte sind: . Angenommen, unsere Punkte liegen bei . Diese Technik ergibt alle Koeffizienten> = 10 (mit Ausnahme eines Koeffizienten). Wenn wir mehr Punkte hinzufügen (und dadurch den Grad des Polynoms erhöhen), nimmt die Größe dieser Koeffizienten schnell zu.f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4
In diesem Beispiel verbinde ich derzeit die Größe der Modellkoeffizienten mit der "Komplexität" der generierten Modelle. Ich bin jedoch besorgt, dass dieser Fall zu steril ist, um wirklich ein Hinweis auf das Verhalten in der realen Welt zu sein. Ich habe absichtlich ein überpasstes Modell erstellt (eine polynomiale OLS-Anpassung 10. Grades an Daten, die aus einem quadratischen Stichprobenmodell generiert wurden) und war überrascht, in meinem Modell hauptsächlich kleine Koeffizienten zu sehen:
set.seed(123)
xv = seq(-5,15,length.out=1e4)
x=sample(xv,20)
gen=function(v){v^2 + 7*rnorm(length(v))}
y=gen(x)
df = data.frame(x,y)
model = lm(y~poly(x,10,raw=T), data=df)
summary(abs(model$coefficients))
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 0.000001 0.003666 0.172400 1.469000 1.776000 5.957000
data.frame(sort(abs(model$coefficients)))
# model.coefficients
# poly(x, 10, raw = T)10 7.118668e-07
# poly(x, 10, raw = T)9 3.816941e-05
# poly(x, 10, raw = T)8 7.675023e-04
# poly(x, 10, raw = T)7 6.565424e-03
# poly(x, 10, raw = T)6 1.070573e-02
# poly(x, 10, raw = T)5 1.723969e-01
# poly(x, 10, raw = T)3 6.341401e-01
# poly(x, 10, raw = T)4 8.007111e-01
# poly(x, 10, raw = T)1 2.751109e+00
# poly(x, 10, raw = T)2 5.830923e+00
# (Intercept) 5.956870e+00
Vielleicht lässt sich aus diesem Beispiel ableiten, dass zwei Drittel der Koeffizienten kleiner als 1 sind und im Verhältnis zu den anderen Koeffizienten drei Koeffizienten ungewöhnlich groß sind (und die mit diesen Koeffizienten verbundenen Variablen zufällig auch die engsten sind) bezogen auf das wahre Stichprobenmodell).
Ist (L2) Regularisierung nur ein Mechanismus, um die Varianz in einem Modell zu verringern und dadurch die Kurve "zu glätten", um sie besser an zukünftige Daten anzupassen, oder nutzt er eine Heuristik, die aus der Beobachtung abgeleitet wurde, dass überfunktionalisierte Modelle tendenziell große Koeffizienten aufweisen? Ist es eine genaue Aussage, dass überausgerüstete Modelle tendenziell große Koeffizienten aufweisen? Wenn ja, kann jemand vielleicht ein wenig den Mechanismus hinter dem Phänomen erklären und / oder mich auf Literatur verweisen?
quelle
Antworten:
Im Regularisierungskontext bedeutet ein "großer" Koeffizient, dass die Größe der Schätzung größer ist als es gewesen wäre, wenn eine feste Modellspezifikation verwendet worden wäre. Es ist die Auswirkung, nicht nur die Schätzungen, sondern auch die Modellspezifikation aus den Daten zu erhalten.
Überlegen Sie, wie eine schrittweise Regression für eine bestimmte Variable funktioniert. Wenn die Schätzung seines Koeffizienten im Verhältnis zum Standardfehler klein ist, wird er aus dem Modell entfernt. Dies kann daran liegen, dass der wahre Wert wirklich klein ist, oder einfach an einem zufälligen Fehler (oder einer Kombination aus beiden). Wenn es fallen gelassen wird, achten wir nicht mehr darauf. Wenn andererseits die Schätzung relativ zu ihrem Standardfehler groß ist, wird sie beibehalten. Beachten Sie das Ungleichgewicht: Unser endgültiges Modell weist eine Variable zurück, wenn die Koeffizientenschätzung klein ist, wir behalten sie jedoch bei, wenn die Schätzung groß ist. Daher werden wir wahrscheinlich seinen Wert überschätzen.
Anders ausgedrückt bedeutet Überanpassung, dass Sie die Auswirkung eines bestimmten Satzes von Prädiktoren auf die Reaktion überbewerten. Die einzige Möglichkeit, die Auswirkungen zu überschätzen, besteht darin, dass die geschätzten Koeffizienten zu groß sind (und umgekehrt sind die Schätzungen für Ihre ausgeschlossenen Prädiktoren zu klein).
Sie sollten in Ihr Experiment ein variables Auswahlverfahren einbeziehen, zβ3 β10
step
. B. eine schrittweise Regression über . Wiederholen Sie dann Ihren Versuch mehrmals mit verschiedenen Zufallsstichproben und speichern Sie die Schätzungen. Sie sollten feststellen, dass alle Schätzungen der Koeffizienten bis systematisch zu groß sind, als dass die Variablenauswahl nicht verwendet wird. Regularisierungsverfahren zielen darauf ab, dieses Problem zu beheben oder zu mindern.β 10Hier ist ein Beispiel dafür, wovon ich spreche.
Vergleichen Sie dies mit dem, was passiert, wenn Sie keine Variablenauswahl verwenden und einfach alles blind anpassen. Während die Schätzungen von bis immer noch fehlerhaft sind , ist die durchschnittliche Abweichung viel geringer.β 10β3 β10
Sowohl die L1- als auch die L2-Regularisierung gehen implizit davon aus, dass alle Variablen und damit die Koeffizienten in den gleichen Maßeinheiten vorliegen, dh eine Änderung der Einheit in entspricht einer Änderung der Einheit in . Daher ist es der übliche Schritt, Ihre Variablen zu standardisieren, bevor Sie eine dieser Techniken anwenden.β 2β1 β2
quelle
step
) größere Werte erhalten haben als in Ihrem zweiten Experiment ("blind" passende Werte). Ist das nicht im Widerspruch zu dem, was Sie vorgeschlagen haben?poly
(ich vermute nicht)?Eine sehr einfache Antwort, ohne auf Ihre Details zu achten: Bei Überanpassung neigen die Parameterschätzer dazu, große Abweichungen zu erhalten, und bei großen Abweichungen sind große Werte genau das, was Sie erwarten sollten!
quelle
David. Ich denke, das Problem mit Ihrem Beispiel ist, dass Sie Ihre Daten nicht normalisiert haben (dh X ^ 10 >> X.
David hat also Recht, dass er größere Koeffizienten stärker verkleinert (so dass Sie am Ende viele kleine Koeffizienten haben, während die L1-Regularisierung möglicherweise einen großen und den Rest null ergibt).
Im Grunde genommen ist es eine Kapselung, dass kleine Änderungen kleine Auswirkungen haben sollten (und wir kommen natürlich auf die Frage zurück, wie klein klein ist - Normalisierung Ihrer Daten usw.). Der Schlüssel liegt jedoch in höheren Dimensionen, in denen die Korrelation ins Spiel kommt: Stellen Sie sich vor, Sie haben zwei Variablen x, y, die stark korreliert sind (beide normalisiert auf Varianz 1), dann ist ihre Differenz klein = "Rauschen" - was große Gewichte benachteiligt Verhindern Sie, dass Sie sich an dieses Rauschen anpassen (und sehr große, fast auslöschende Koeffizienten für y und x erhalten).
Das Beispiel gilt weiterhin für jede lineare Beziehung (y = mx)
Ridge Regression nachschlagen
quelle
Dieses Bild stammt aus meiner Notiz von Andrew Ngs DL-Kurs. Bitte lassen Sie mich wissen, wenn Sie Fragen haben
quelle