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{ xich, yich}}xichff( xich) ≈ yich
12∑ich( yich- f( xich) )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( xich) = yy fff
L ( f;; y) = 12( y- f)2
und dann den Gradienten in Bezug auf die Vorhersage nehmen
∇fL ( f;; y) = f- y
Dann wird der Gradient Update, von einem Anfangswert des Startens isty0
y1= y0- ∇f( y0, y) = y0- ( y0- y) = 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.
Start
Mit 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,f0−y}
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.WF≈∇LWF(X)
Finally
Verwenden Sie anstelle von in der Gradientenaktualisierung von über die gesamte Domäne:∇ L f 0F∇Lf0
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.