Gefälleabstieg
Aktualisiert auf September 24, 2024 4 Minuten gelesen

Einführung
Stellen Sie sich vor, wir haben eine Funktion $f(x)$ und möchten ihr Minimum ermitteln. Was würden Sie tun?
Einfach, oder? Wir müssen nur die folgende Gleichung lösen:
$$f’(x) = 0$$
Die Sache ist, dass es nicht immer einfach ist, die Formel von $f’$ zu finden, da sie insbesondere beim Deep Learning, wo wir mit komplexen Funktionen arbeiten, extrem kompliziert ist. Wir müssen also eine andere Methode finden, die uns das Minimum einer Funktion liefern kann, ohne die Formel der Ableitung $f’$ finden zu müssen.
Lassen Sie uns etwas Intuition aufbauen
Nehmen wir an, wir haben eine Funktion f mit dem entsprechenden Graphen:
Beginnen wir mit einem zufälligen Punkt $x_{0}$. Das Ziel besteht darin, diesen Punkt zu verschieben und ihn immer näher an $x*$ heranzuführen, sodass $f’($x*$) = 0$ ist. Das Problem lässt sich also in zwei Teile unterteilen:
-
In welche Richtung sollen wir den Punkt $x$ verschieben? Links oder rechts?
-
Wie weit sollten wir es bewegen?
Die Richtung
Lassen Sie uns etwas Intuition aufbauen, um die erste Frage zu beantworten. Schauen Sie sich den folgenden Punkt an:
Beachten Sie, dass:
-
Wenn der Punkt $x_{0}$ rechts vom optimalen Punkt $x*$ liegt, steigt seine Tangente an.
-
Wenn der Punkt $x_{0}$ rechts vom optimalen Punkt $x*$ liegt, verläuft seine Tangente nach unten.
Die Richtung einer Geraden wird durch das Vorzeichen ihrer Steigung bestimmt:
-
Eine Linie geht nach oben $\impliziert$, dass die Steigung $a$ positiv ist.
-
Eine Linie geht nach unten $\impliziert$, dass die Steigung $a$ negativ ist.
Beachten Sie Folgendes: \
Die Steigung der Tangente einer Funktion in einem bestimmten Punkt $x_{0}$ ist nicht größer als die Ableitung in diesem Punkt $f’(x_{0})$:
$$ tangent(x*{0}): g(x) = f’(x*{0}).(x-x*{0}) + f(x*{0}) $$
Als Antwort auf die Frage “Wohin sollen wir $x_{0}$ verschieben?”:
-
$f’(x_{0}) < 0$ $\implies$ $x_{0}$ rechts von $x*$ $\implies$ Wir müssen $x_{0}$ nach links verschieben.
-
$f’(x_{0}) > 0$ $\implies$ $x_{0}$ links von $x*$ $\implies$ Wir müssen $x_{0}$ nach rechts verschieben.
Die Schritte
Nun zur zweiten Frage: Um wie viel sollten wir $x_{0}$ bewegen?
Schauen Sie sich die folgenden Beispiele an:
Wir können daraus schließen:
-
$x_{0}$ liegt nahe bei $x*$ => Die Steigung der Tangente ist klein => $f’(x_{0})$ ist klein.
-
$x_{0}$ ist von $x*$ entfernt => Die Steigung der Tangente ist groß => $f’(x_{0})$ ist groß.
Durch die Beantwortung beider Fragen kamen wir zu dem Schluss, dass nur die Kenntnis der Ableitung im Punkt $x_{0}$ uns viele Erkenntnisse über die Richtung und den Abstand des optimalen Punkts $x_{0}$ geben kann.
Gefälleabstieg
Der Gradientenabstieg ist die Formulierung der Antworten auf die beiden vorherigen Fragen. Es handelt sich um einen iterativen Optimierungsalgorithmus, der das Minimum $x*$ der Funktion ausgehend von einem zufälligen Anfangspunkt $x_{0}$ annähert. Der Algorithmus wird wie folgt angegeben:
$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$
Wo:
-
$ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ ist nicht mehr als die Ableitung von $f$ im Punkt $x*{n}$.
-
$lr$ ist eine positive Konstante, die bestimmt, wie groß die Schritte sein werden.
Beachten Sie Folgendes:
-
$x_{n}$ liegt rechts von $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - positiv $ => $x_{n}$ bewegt sich nach links.
-
$x_{n}$ liegt links von $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + positives $ => $x_{n}$ bewegt sich nach rechts.
-
$x_{n}$ nahe bei $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ nahe bei $0$ => Kleine Aktualisierung von $x_{ n}$.
Quizz
-
Wann hört der Gradientenabstieg auf zu iterieren:
-
Wenn $x_{n}$ klein genug ist.
-
Wenn $x_{n}$ nahe an $x_{0}$ liegt.
-
Wenn $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX
-
Wie wählen wir $x_{0}$ aus:
-
Wir wählen es zufällig aus. XXX
-
Wir nehmen es in der Nähe von $x{n}$ an.
-
Es kommt auf das Problem an.
-
Warum brauchen wir einen Gradientenabstieg:
-
Weil Computer nicht leistungsfähig genug sind, um Ableitungen zu berechnen.
-
Weil es extrem schwierig ist, die Ableitungsformeln von Deep-Learning-Modellen zu finden. XXX
-
Weil Funktionen mehr als ein lokales Minimum haben.