Wie erhöht sich der Gradient wie der Gradientenabstieg?

9

Ich lese den nützlichen Wikipedia-Eintrag zum Gradienten-Boosting ( https://en.wikipedia.org/wiki/Gradient_boosting ) und versuche zu verstehen, wie / warum wir die Residuen durch den steilsten Abstiegsschritt (auch Pseudo-Gradient genannt) approximieren können ). Kann mir jemand die Intuition geben, wie der steilste Abstieg mit den Residuen verbunden / ähnlich ist? Hilfe sehr geschätzt!

Geben Sie hier die Bildbeschreibung ein

Wouter
quelle

Antworten:

11

Angenommen, wir befinden uns in der folgenden Situation. Wir haben einige Daten , wobei jedes eine Zahl oder ein Vektor sein kann, und wir möchten eine Funktion bestimmen , die sich der Beziehung in dem Sinne , dass die kleinsten Quadrate Error:x i f f ( x i ) y i{xi,yi}xiff(xi)yi

12i(yif(xi))2

ist klein.

Nun stellt sich die Frage, wie die Domäne von aussehen soll. Eine entartete Wahl für die Domäne sind nur die Punkte in unseren Trainingsdaten. In diesem Fall können wir einfach , das die gesamte gewünschte Domäne abdeckt, und damit fertig sein. Ein runder Weg, um zu dieser Antwort zu gelangen, besteht darin, einen Gradientenabstieg mit diesem diskreten Raum als Domäne durchzuführen. Dies erfordert eine gewisse Änderung der Sichtweise. Betrachten wir den Verlust als Funktion des Punktes true und der Vorhersage (im Moment ist keine Funktion, sondern nur der Wert der Vorhersage).f ( x i ) = y yff(xi)=yy fff

L(f;y)=12(yf)2

und dann den Gradienten in Bezug auf die Vorhersage nehmen

fL(f;y)=fy

Dann wird der Gradient Update, von einem Anfangswert des Startens isty0

y1=y0f(y0,y)=y0(y0y)=y

Mit diesem Setup stellen wir unsere perfekte Vorhersage in einem Gradientenschritt wieder her, was sehr schön ist!

Der Fehler hierbei ist natürlich, dass wir viel mehr als nur an unseren Trainingsdatenpunkten definieren möchten . Dazu müssen wir einige Zugeständnisse machen, da wir die Verlustfunktion oder ihren Gradienten an keinem anderen Punkt als unserem Trainingsdatensatz bewerten können. f

Die große Idee ist, schwach zu approximieren . L

StartMit einer anfänglichen Schätzung von , fast immer einer einfachen konstanten Funktion , wird dies überall definiert. Generieren Sie nun einen neuen Arbeitsdatensatz, indem Sie den Gradienten der Verlustfunktion an den Trainingsdaten unter Verwendung der anfänglichen Schätzung für :f ( x ) = f 0 fff(x)=f0f

W={xi,f0y}

Now approximate W F L W F ( X )L durch schwachen Lerner Einpassen . Sagen wir die Annäherung bekommen . Wir haben eine Erweiterung der Daten über die gesamte Domäne in Form von , obwohl wir an den Trainingspunkten an Präzision verloren haben, da wir einen kleinen Lernenden passen.WFLWF(X)

FinallyVerwenden Sie anstelle von in der Gradientenaktualisierung von über die gesamte Domäne:L f 0FLf0

f1(x)=f0(x)F(x)

Wir kommen aus , einer neuen Näherung von , etwas besser als . Beginnen Sie von mit und iterieren Sie, bis Sie zufrieden sind.f1ff0f1

Hoffentlich sehen Sie, dass es wirklich wichtig ist, den Gradienten des Verlusts zu approximieren. Bei der Minimierung der kleinsten Quadrate erfolgt dies in Form von rohen Residuen, in komplexeren Fällen jedoch nicht. Die Maschinerie gilt jedoch weiterhin. Solange man einen Algorithmus zur Berechnung des Verlusts und des Verlustgradienten an den Trainingsdaten konstruieren kann, können wir diesen Algorithmus verwenden, um eine Funktion zu approximieren, die diesen Verlust minimiert.

Matthew Drury
quelle
Yah, ich denke das ist gut. Das Einzige, was Sie beachten müssen, ist, dass der Gradient, den wir erweitern, nicht mehr besteht, wenn Sie beispielsweise den Binomialverlust minimieren möchten auf natürliche Weise mit den Residuen verbunden.
iyilog(pi)+(1yi)log(1pi)
Matthew Drury
Danke Matthew. Eine Sache, die ich versuche, meinen Kopf herumzukriegen. In der Literatur wird häufig angegeben, dass die F (m + 1) = F (m) + , wobei h (m) der schwache Lernende ist. Wenn ich an ein baumbasiertes Modell denke - bedeutet dies, dass wir sowohl für die Regression als auch für die Klassifizierung unsere Vorhersage für einen bestimmten Datenpunkt durch einfaches Addieren der Ergebnisse der beiden Modelle praktisch aktualisieren? funktioniert das auch, wenn wir versuchen, dies binär zu klassifizieren? oder sollte das + -Zeichen nicht so wörtlich interpretiert werden? αmh(m)
Wouter
Das Pluszeichen ist ganz wörtlich. Für baumbasierte schwache Lernende sollten die Modellvorhersagen jedoch als gewichteter Durchschnitt im Blatt interpretiert werden, selbst wenn der Baum an Binomialdaten angepasst ist. Beachten Sie jedoch, dass wir beim Boosten normalerweise nicht an Binomialdaten anpassen, sondern an den Gradienten der Wahrscheinlichkeit, der bei den Vorhersagen der vorherigen Stufe bewertet wurde und nicht mit bewertet wird. 0,1
Matthew Drury
1
@MatthewDrury Ich denke, in vielen Literaturstellen werden wir nicht direkt mit aktualisieren , sondern mit , wobei von 0 bis 1 eine Lernrate ist. f 0 - F ( x ) f 0 - α F ( x ) αf1f0F(x)f0αF(x)α
Haitao Du
@ hxd1011 Ja, das ist absolut richtig und entscheidend für die erfolgreiche Verwendung der Gradientenverstärkung.
Matthew Drury