Gradientenabstieg ist wohl die anerkannteste Optimierungsstrategie, die beim Tiefenlernen und maschinellen Lernen eingesetzt wird. Datenwissenschaftler verwenden sie oft, wenn die Möglichkeit besteht, jeden Algorithmus mit Trainingsmodellen zu kombinieren. Das Verständnis des Gradientenabstiegs-Algorithmus ist relativ einfach, und die Implementierung ist sogar noch einfacher. Lassen Sie uns die innere Funktionsweise des Gradientenabstiegs, seine verschiedenen Typen und seine Vorteile diskutieren.

Was ist Gradientenabstieg?

Programmierer verwenden den Gradientenabstieg als Optimierungsalgorithmus beim Training von maschinellen Lernmodellen. Auf der Grundlage von konvexen Funktionen passt der Gradientenabstieg iterativ einige seiner Parameter an, um eine bestimmte Funktion auf ein Minimum zu reduzieren.
Datenwissenschaftler verwenden den Gradientenabstieg, um die Parameterwerte einer Funktion zu finden, die Kostenfunktionen so weit wie möglich reduzieren. Sie beginnen damit, die Werte des Anfangsparameters festzulegen. Die Gradientenabsenkung verwendet Kalkül zur iterativen Anpassung der Werte, um eine bestimmte Kostenfunktion zu minimieren. Sie müssen wissen, was Gradienten sind, um den Gradientenabstieg vollständig zu verstehen.

Gradient verstehen

Die primäre Funktion eines Gradienten besteht darin, Änderungen in jeder Gewichtung in Bezug auf die Änderung von Fehlern zu messen. Stellen Sie sich Gradienten als die Steigung einer Funktion vor. Die Steigung wird je nach Höhe des Gradienten steiler sein – dies ist eine günstige Bedingung für Modelle, da sie schnell lernen können. Das Modell hört jedoch auf zu lernen, wenn die Steigung Null wird. Mathematisch gesehen könnte man einen Gradienten am besten als eine begrenzte Ableitung in Bezug auf seine Eingaben beschreiben.
Stellen Sie sich eine Person mit verbundenen Augen vor, die mit minimaler Anstrengung die Spitze eines Hügels erklimmen möchte. Er wird höchstwahrscheinlich lange Schritte in Richtung der steilsten möglichen Richtung machen. Die Schritte dieser Person werden jedoch kleiner werden, um ein Überschießen zu verhindern. Sie können den Gradienten verwenden, um diesen Vorgang mathematisch zu beschreiben.
Gradienten, die bei X0 beginnen und bei X1 enden, sind deutlich länger als solche, die bei X3 beginnen und bei X4 enden. Warum? Weil die Neigung/Steigung des Hügels die Länge des Vektors bestimmt. Der Vektor bietet eine ideale Darstellung der zuvor besprochenen Hügelanalogie, da er mit zunehmender Höhe weniger steil wird.

Wie funktioniert der Gefälleabstieg?

Anstatt einen Hügel zu erklimmen, stellen Sie sich den Gefällstreckenabstieg so vor, als ginge man bis zum Talgrund hinunter. Es ist einfacher, diese Analogie zu verstehen, da es sich um einen Algorithmus zur Minimierung handelt, der eine bestimmte Funktion verringert. Lassen Sie uns den Gradientenabstieg mit Hilfe einer Gleichung verstehen:
b stellt die nächste Position des Bergsteigers dar
a bezeichnet seine gegenwärtige Position
minus bezieht sich auf den Minimierungsteil des Gradientenabfalls
Das in der Mitte liegende Gamma stellt einen Wartefaktor dar
(Δf (a) ) steht für die Richtung des steilsten Abstiegs

Diese Formel mag Sie zunächst verwirren, aber sie ist einfacher, als Sie denken. Sie informiert uns über die nächste Position, die wir einnehmen müssen: die Richtung des Abstiegs.

Warum ist die Lerngeschwindigkeit so wichtig?

Es ist unerlässlich, die Lernraten auf die entsprechenden Werte einzustellen, damit der Gradientenabstieg das lokale Minimum erreicht. Es wäre also am besten, sie nicht übermäßig hoch oder niedrig anzusetzen. Es ist von entscheidender Bedeutung, weil das Erreichen des Minimums mit übermäßig langen Schritten kompliziert werden könnte. Wenn wir also die Lernraten auf kleinere Werte einstellen, könnte der Gradientenabstieg schließlich sein lokales Minimum erreichen. Es kann jedoch einige Zeit dauern.

Wie man sicherstellt, dass es optimal funktioniert

Ein hervorragender Weg, um sicherzustellen, dass die Gradientenabstiegsfunktionen optimal funktionieren, ist die Organisation der Kostenfunktion, während die Optimierung läuft. Geben Sie den Betrag der Wiederholungen auf der X-Achse ein, und der Wert der Kostenfunktion wird auf der Y-Achse eingegeben. Auf diese Weise können Sie den Wert der Kostenfunktion nach jeder Iteration des Gradientenabstiegs sehen und gleichzeitig die Genauigkeit der Lernrate erkennen. Sie können auch verschiedene Werte ausprobieren und sie zusammen darstellen.
Die Kostenfunktion wird nach jeder Iteration reduziert, wenn der Gradientenabstieg optimal funktioniert. Der Gradientenabstieg konvergiert, wenn er nicht in der Lage ist, die Kostenfunktion zu reduzieren und auf demselben Niveau bleibt. Die Anzahl der Iterationen, die der Gradientenabstieg für die Konvergenz erfordert, variiert drastisch. Manchmal sind fünfzig Iterationen erforderlich, ein anderes Mal könnten es sogar zwei oder drei Millionen sein. Es ist schwierig, die Iterationen im Voraus abzuschätzen.
Einige Algorithmen können Sie automatisch informieren, wenn es eine Konvergenz beim Gradientenabstieg gegeben hat. Am besten wäre es jedoch, im Voraus eine Konvergenzschwelle festzulegen, die ebenfalls recht schwer zu schätzen ist. Dies ist ein wichtiger Grund, warum einfache Diagramme am besten für Konvergenztests geeignet sind.

Unterschiedliche Gradientenabstiegstypen

Sie finden drei anerkannte Gradientenabgangsarten. Schauen wir sie uns genau an:

Batch-Gradientenabstieg

Auch bekannt als Vanille-Gradientenabfall, berechnet der Batch-Gradientenabfall Fehler für jedes Beispiel im Trainingsdatensatz. Dies geschieht jedoch erst, nachdem jedes Trainingsbeispiel eine strenge Auswertung durchlaufen hat. Es ist fair, diesen Prozess mit einem Zyklus zu vergleichen. Einige Personen bezeichnen dies auch als eine Trainingsepoche.
Der chargenweise Gradientenabstieg hat mehrere Vorteile. Vor allem seine Recheneffizienz ist äußerst praktisch, da es eine stabile Konvergenz und einen stabilen Fehlergradienten entwickelt. Allerdings hat der chargenweise Gradientenabstieg auch einige Nachteile. Manchmal kann sein stabiler Fehlergradient zu einem ungünstigen Konvergenzzustand führen. Darüber hinaus benötigt er auch die Präsenz des Trainingsdatensatzes in seinem Algorithmus und Speicher.

Stochastischer Gradientenabstieg

SGD bietet Aktualisierungen für individuelle Parameter für jedes Trainingsbeispiel. Es hilft, jedem Beispiel Aufmerksamkeit zu schenken und sicherzustellen, dass der Prozess fehlerfrei ist. Abhängig von der Fragestellung kann dies dazu beitragen, dass SGD im Vergleich zu einem chargenweisen Gradientenabstieg schneller wird. Seine regelmäßigen Aktualisierungen liefern uns detaillierte Verbesserungsraten.
Allerdings sind diese Aktualisierungen rechnerisch aufwendig, vor allem wenn man sie mit dem Ansatz vergleicht, der beim Batch-Gradientenabstieg verwendet wird. Darüber hinaus kann die Häufigkeit der Aktualisierungen zu verrauschten Gradienten führen und ein Absinken der Fehlerrate verhindern. Stattdessen springt die Fehlerrate umher und wird auf lange Sicht problematisch.

Mini-Batch-Gradientenabstieg

Die Datenwissenschaftler verwenden Mini-Chargen-Gradientenabstieg als Methode für den Einstieg. Warum? Weil es eine perfekte Mischung aus stochastischem Gradientenabstieg und den Konzepten des Batch-Gradientenabstiegs ist. Es teilt die Datensätze (Training) in Chargen auf und führt für jede Charge eine Aktualisierung durch, wodurch ein Gleichgewicht zwischen der Effizienz des BGD und der Robustheit des SCD geschaffen wird.
Beliebte Mini-Chargen liegen zwischen fünfzig und zweihundertsechsundfünfzig, aber wie bei mehreren anderen Methoden des maschinellen Lernens gibt es keine klaren Regeln, da es von Anwendung zu Anwendung unterschiedlich ist. Die Menschen nutzen sie als eine Möglichkeit, neuronale Netze zu trainieren. Es ist auch ein beliebter Gradientenabstiegstyp innerhalb der tiefen Lernlandschaft.