Der Mathematiker Augustin-Louis Cauchy erfand 1847 erstmals den gradient descent, um astronomische Berechnungen durchzuführen und die Umlaufbahnen von Sternen abzuschätzen. Erfahren Sie mehr über die Rolle, die dieser Prozess heute bei der Optimierung von Algorithmen für maschinelles Lernen spielt.
Gradient descent ist ein Algorithmus, mit dem Sie Modelle sowohl in neuronalen Netzwerken als auch im maschinellen Lernen trainieren können. Er verwendet eine Kostenfunktion, um seine Parameter zu optimieren, und zeigt die Genauigkeit eines maschinellen Lernmodells während des Trainings bei jedem Parameter. Gradient descent existierte als mathematisches Konzept bereits vor dem Aufkommen des maschinellen Lernens.
Ein Gradient in der Vektorrechnung ähnelt der Steigung, wird aber angewendet, wenn drei oder mehr Variablen vorliegen. Er wird zum Vektor der partiellen Ableitungen für alle unabhängigen Variablen und wird mit f für den maximalen Gradientenanstieg oder -∇f für den maximalen Gradientenabfall der Funktion bezeichnet.
Für die Implementierung des gradient descent im maschinellen Lernen sind Kenntnisse der Infinitesimalrechnung erforderlich. Lesen Sie weiter, um ein grundlegendes Verständnis des gradient descent zu erhalten, wofür er verwendet wird, welche verschiedenen Typen es gibt und wie er im maschinellen Lernen funktioniert.
Wie funktioniert gradient descent?
Beim gradient descent werden konvexe Funktionen verwendet. Dabei werden die wenigsten und genauesten Schritte zum tiefsten Punkt einer Kurve ermittelt, wodurch der Pfad optimiert wird. Bevor wir uns ansehen, wie der gradient descent funktioniert, gehen wir ein paar Begriffe durch, die den gradient descent beschreiben:
- Parameter: Die Koeffizienten der Funktion, die die Kosten minimieren
- Kostenfunktion: Wird im maschinellen Lernen auch „Verlustfunktion“ genannt. Dies ist die Differenz zwischen dem tatsächlichen und dem vorhergesagten Wert an der aktuellen Position. Ein Modell beendet das Lernen, sobald diese Funktion so nahe wie möglich an 0,0 herankommt.
- Lernrate: Wird manchmal als Schrittrate oder Alpha bezeichnet und ist die Größe der Schritte, die die Funktion unternimmt, da sie die Kosten minimiert
Die Hauptfunktion des gradient descent besteht darin, die Parameter zu finden, die die Kosten am besten minimieren, indem die Koeffizienten die Kosten so nahe wie möglich an 0,0 oder gleich 0,0 bringen.
Grundlagen der Durchführung eines gradient descent
Das Ziel besteht darin, Kosten = 0,0 oder das nächst akzeptable Minimum zu erreichen. Um dies zu berechnen, schreiben Sie zunächst die Kostenfunktion.
- Schreiben Sie die Kostenfunktion als Kosten =f(x) mit x als Koeffizient.
- Verwenden Sie einen Startkoeffizienten von 0,0 oder eine beliebige kleine Zahl.
- Nehmen Sie die Ableitung oder partielle Ableitung, wenn mehrere Variablen vorhanden sind, um den Gradienten zu finden und zu wissen, in welche Richtung Sie sich auf der Kurve bewegen müssen.
- Sobald Sie einen Gradienten (die Ableitung der Kostenfunktion) haben und wissen, in welche Richtung Sie sich bewegen müssen, können Sie anhand Ihrer Lernrate feststellen, wie stark sich der Wert des Koeffizienten bei jeder Berechnung ändert.
- Wiederholen Sie den Vorgang, bis die Kosten Null betragen oder so nahe daran wie möglich liegen.
Der gradient descent erfordert Kenntnisse der Infinitesimalrechnung, seine Umsetzung erfolgt jedoch immer in derselben Abfolge von Schritten.
Arten des gradient descent beim maschinellen Lernen
Beim maschinellen Lernen kommen zwei Haupttypen des gradient descent zum Einsatz:
- Batch-gradient descent: Ermöglicht die Aktualisierung des maschinellen Lernmodells nach jeder Trainingsepoche durch die Mittelung der Vorhersagefehler und der tatsächlichen Ergebnisse der Kostenfunktion bei jeder Iteration.
- Stochastischer gradient descent (SGD): Berechnet den Fehler für jede Stichprobe im Datensatz. Für jede Iteration der Trainingsepoche ist eine Vorhersage erforderlich, wobei jeder Koeffizient in jedem Fall neu berechnet wird.
Vergleich von Batch-gradient descent und SGD
Batch-gradient descent und stochastischer gradient descent’s haben einzigartige Vor- und Nachteile bei der Berechnung des gradient descent’s im maschinellen Lernen. Schauen wir uns beide einmal an:
Batch-gradient descent | Stochastischer gradient descent |
Hat eine höhere Effizienz beim Rechnen | Benötigt mehr Rechenleistung |
Hat eine niedrigere Aktualisierungsfrequenz, was zu einer stabileren Lernrate führt, wenn sie 0,0 erreicht. | Verfügt über eine höhere Aktualisierungsfrequenz, was zu einer schnelleren Lernrate und schnelleren Einblicken in die Modellleistung führt. |
Da die Ausführung des gesamten Datenstapels langsamer ist, kann der Stapelgradient descent 0,0 erreichen, ohne die Koeffizienten zu optimieren. | Da SGD bei jedem Schritt eine Vorhersage macht, führt es zu genaueren Vorhersagen, bevor 0,0 erreicht wird. |
Bei großen Datensätzen ist mehr Arbeit beim Speichern im Speicher erforderlich, da alle Daten hineinpassen müssen. | Große Datensätze lassen sich einfacher ausführen, da SGD jeweils eine Trainingsepoche ausführt. |
Beim maschinellen Lernen ist der Batch-gradient descent’s ein gängiger Ansatz, bei größeren Datensätzen funktioniert der stochastische gradient descent’s jedoch besser.
Mini-Batch-gradient descent’s
Wenn Sie sowohl Aspekte des Batch-gradient descent’s als auch des SGD verwenden müssen, sollten Sie eine Methode namens Mini-Batch-gradient descent’s verwenden, die beide kombiniert. Dabei werden zwar weiterhin Batches verwendet, ein Datensatz wird jedoch in kleine Batches aufgeteilt, die jeweils die Updates von SGD bereitstellen, während sie den gradient descent’s durchführen. Dadurch wird das Lernen jedes Batches beschleunigt, während gleichzeitig die Rechenleistung hoch bleibt. Diese Methode ist Standard beim maschinellen Lernen, beim Training neuronaler Netzwerke und bei Deep-Learning-Anwendungen.
Häufige Probleme beim gradient descent’s
Obwohl gradient descent’s eine effiziente Methode zur Optimierung von Algorithmen für maschinelles Lernen ist, gibt es einige häufige Probleme, die beim Algorithmus auftreten und die zu Modellen führen können, die nicht vollständig optimiert sind. Bei Graphen, die keine vollständig konvexen Parabeln sind, können andere Punkte als das globale Minimum dazu führen, dass die Kostenfunktion gleich 0,0 ist. Diese beiden Punkte sind:
- Lokale Minima: Diese ergeben eine Steigung von 0,0 und erscheinen dem Algorithmus als globale Minimalpunkte, sind aber nur lokale Minimalpunkte, bevor die Kostenfunktion wieder ansteigt, bevor das globale Minimum erreicht wird.
- Sattelpunkte: Geben Sie eine Steigung von 0,0 an einer Reihe von Punkten an, an denen die Kostenfunktion aufhört, stetig zu sinken, bevor sie ihren Abstieg zum globalen Minimum fortsetzt.
Bei der Anwendung des gradient descent’s auf neuronale Deep-Learning-Netzwerke treten zwei Probleme auf:
- Verschwindende Gradienten: Treten während der Backpropagation neuronaler Netzwerke auf und machen den Gradienten zu klein, was zu einem endgültigen Koeffizienten von Null führt, was dazu führt, dass das Netzwerk aufhört zu lernen
- Explodierende Gradienten: Treten auf, wenn ein Modell aufgrund eines zu großen Gradienten instabil wird, was zu Koeffizienten führt, die aufgrund eines komplexen Algorithmus für maschinelles Lernen nicht mehr zu berechenbaren Zahlen werden.
Mehr lesen: Was ist ein graduate Abschluss? Ihr Leitfaden für 2024
Erste Schritte mit Coursera
Erfahren Sie in Onlinekursen mehr über die Optimierung Ihrer Machine-Learning-Modelle mithilfe von gradient descent. Sie können beispielsweise die Spezialisierung „Mathematik für Machine Learning und Data Science“ von DeepLearning.AI auf Coursera erkunden, um die grundlegenden mathematischen Grundlagen zu erlernen, die Sie benötigen. Die Spezialisierung hilft Ihnen dabei, die erforderlichen Kenntnisse und Fähigkeiten in der Infinitesimalrechnung zu erwerben, um gradient descent für Machine-Learning-Anwendungen durchzuführen.