Was ist der Stochastic Gradient Descent? | Data Basecamp (2024)

Was ist der Stochastic Gradient Descent? | Data Basecamp (1)

Der Stochastic Gradient Descent ist ein Algorithmus zum Training von Machine Learning Modellen und insbesondere von tiefen Neuronalen Netzwerken. Der Unterschied des Stochastic Gradient Descent im Vergleich zum regulären Gradientenverfahren ist, dass der Gradient nicht vom gesamten Batch berechnet wird, sondern lediglich von einem Subset. Dadurch kann vor allem im hochdimensionalen Raum die benötigte Rechenleistung deutlich reduziert werden.

Wofür nutzt man das Gradientenabstiegsverfahren?

Das Ziel von Künstlicher Intelligenz ist es ganz allgemein einen Algorithmus zu erschaffen, der mit hilfe von Eingabewerten möglichst genau eine Vorhersage treffen kann, also dem tatsächlichen Ergebnis sehr nahe kommt. Die Differenz zwischen der Vorhersage und der Realität wird von der sogenannten Verlustfunktion in einen mathematischen Wert gewandelt. Das Gradientenverfahren wird genutzt, um das Minimum der Verlustfunktion zu finden, denn dann ist der optimale Trainingszustand des Modells gefunden.

Das Training des KI Algorithmus dient dann dazu, die Verlustfunktion so weit wie möglich zu minimieren, um eine gute Vorhersagequalität zu haben. Das Künstliche Neuronale Netzwerk beispielsweise ändert in jedem Trainingsschritt die Gewichtung der einzelnen Neuronen, um sich so dem tatsächlichen Wert anzunähern. Um das Minimierungsproblem der Verlustfunktion gezielt angehen zu können und nicht zufällig die Werte der einzelnen Gewichte zu ändern, werden spezielle Optimierungsverfahren genutzt. Im Bereich von Künstlicher Intelligenz kommt am Häufigsten das sogenannte Gradientenabstiegsverfahren zum Einsatz.

Warum nähern wir uns dem Minimum und berechnen es nicht einfach?

Aus dem mathematischen Teilbereich Analysis wissen wir, dass ein Minimum oder Maximum bestimmt werden kann, indem wir die erste Ableitung gleich null setzen und dann prüfen, ob an dieser Stelle die zweite Ableitung ungleich 0 ist. Theoretisch könnten wir dieses Verfahren auch für die Verlustfunktion des Künstlichen Neuronalen Netzwerkes anwenden und das Minimum damit genau berechnen.

In höheren mathematischen Dimensionen mit vielen Variablen ist die genaue Berechnung jedoch sehr aufwendig und würde viel Rechenzeit und vor allem Ressourcen in Anspruch nehmen. In einem Neuronalen Netzwerk können wir schnell mehrere Millionen Neuronen haben und somit auch entsprechend mehrere Millionen Variablen in der Funktion.

Deshalb verwenden wir Näherungsverfahren, um uns dem Minimum schnell annähern zu können und uns nach einigen Wiederholungen sicher sein können, einen Punkt nahe dem Minimum gefunden zu haben.

Was ist die Grundidee von Gradient Descent?

Hinter dem Gradientenverfahren steht ein mathematisches Prinzip, das besagt, dass der Gradient einer Funktion (die Ableitung einer Funktion mit mehr als einer unabhängigen Variablen) in die Richtung zeigt, in die die Funktion am stärksten steigt. Entsprechend gilt auch das Gegenteil, also, dass die Funktion in die entgegengesetzte Richtung des Gradienten am stärksten abfällt.

Beim Gradient Descent Verfahren versuchen wir, möglichst schnell das Minimum der Funktion finden zu können. Im Fall von Künstlicher Intelligenz suchen wir das Minimum der Verlustfunktion und wollendiesem sehr schnell nahe kommen. Wenn wir also in die negative Richtung des Gradienten gehen, wissen wir, dass die Funktion am stärksten abfällt und wir somit auch dem Minimum am schnellsten näher kommen.

Was ist der Stochastic Gradient Descent? | Data Basecamp (2)

Für die Funktion f(x) = x² haben wir an einigen Stellen die Tangenten mit der Steigung f’(x) gezeichnet. In diesem Beispiel liegt das Minimum an der Stelle x = 0. An der Stelle x = -3 hat die Tangente eine Steigung von -6. Laut dem Gradientenverfahren sollten wir uns in die negative Richtung des Gradienten bewegen, um dem Minimum näher zu kommen, also – (- 6) = 6. Das bedeutet, der x-Wert des Minimum ist größer als -3. An der Stelle x = 1 hingegen hat die Ableitung f’(1) einen Wert von 2. Die entgegengesetzte Richtung des Gradienten wäre also -2, das heißt der x-Wert des Minimums ist kleiner als x = 1. Dadurch kommen wir schrittweise dem Minimum näher.

In Kurzform besagt das Gradientenverfahren:

  • Ist die Ableitung der Funktion an der Stelle x negativ, gehen wir vorwärts in x-Richtung, um das Minimum zu finden.
  • Ist die Ableitung der Funktion an der Stelle x positiv, gehen wir rückwärts in x-Richtung, um das Minimum zu finden.

Bei einer Funktion mit mehr als einer Variablen, betrachten wir dann nicht nur die Ableitung, sondern den Gradienten. Dieser ist im mehrdimensionalen Raum das Äquivalent zur Ableitung im zweidimensionalen Raum.

Welche Probleme können bein Gradient Descent Verfahren auftreten?

Es gibt zwei große Problemfelder mit denen wir bei der Nutzung des Gradientenverfahrens möglicherweise umgehen müssen:

  • Wir landen bei einem lokalen Minimum der Funktion statt bei einem globalen: Funktionen mit vielen Variablen haben sehr wahrscheinlich nicht nur ein Minimum. Wenn eine Funktion mehrere Extremwerte, wie beispielsweise Minima hat, sprechen wir bei dem Mininum mit dem niedrigsten Funktionswert vom globalen Minimum. Die anderen Minima sind sogenannte lokale Minima. Das Gradientenverfahren bewahrt uns nicht automatisch davor ein lokales Minimum zu finden statt des globalen. Um diesem Problem zu entgehen können wir jedoch viele verschiedene Startpunkte testen, um zu sehen, ob alle in Richtung desselben Minimums konvergieren.
  • Ein weiteres Problem kann auftreten, wenn wir das Gradient Descent Verfahren im Zusammenhang mit Neuronalen Netzwerken und deren Verlustfunktion nutzen. In speziellen Fällen, bspw. bei der Nutzung von Feedforward Netzwerken, kann es dazu kommen, dass der Gradient instabil ist, also entweder sehr groß oder sehr klein wird und gegen 0 tendiert. Mit Hilfe anderer Aktivierungsfunktionen der Neuronen oder bestimmten initialen Werten der Gewichte kann man diesen Effekten vorbeugen. Dies sprengt jedoch den Rahmen dieses Beitrags.
  • Im klassischen Verfahren kann die Berechnung des Gradienten sehr rechenintensiv sein und dadurch zu höheren Kosten bei der Rechenleistung bzw. mehr Zeit beim Training bedeuten.

Was ist der Stochastic Gradient Descent?

Beim “klassischen” Gradientenverfahren wir der Gradient erst nach jedem Batch berechnet, weshalb man auch vom Batch Gradient Descent spricht. Ein Batch ist ein Teil der Trainingsdaten, der in vielen Fällen 32 oder 64 Trainingsinstanzen besitzt. Dabei werden erst die Vorhersagen für alle Instanzen im Batch berechnet und dann die Gewichtungen per Backpropagation geändert. Dadurch kann vor allem bei aufwändigen Modellen, beispielsweise in der Bild- oder Sprachverarbeitung, die Rechenleistung sehr stark ansteigen. In diesen Anwendungen sind die Informationen zusätzlich relativ sparse, das bedeutet, dass die Daten zwar viele Attribute haben, diese jedoch auch oftmals den Wert 0 haben.

Der Stochastic Gradient Descent liefert deshalb den Ansatz, dass der Gradient nicht von einem Batch berechnet wird, sondern für jeden Datenpunkt. Das heißt in jeder Iteration wird lediglich ein einzelner Datenpunkt genutzt. Dadurch verringert sich die genutzte Rechenleistung enorm, da der restliche Batch nicht im Arbeitsspeicher vorgehalten werden muss. Man spricht vom Stochastic Gradient Descent, da in jedem Trainingsschritt der Gradient lediglich eine Näherung an den tatsächlichen Gradienten darstellt.

Was sind die Vor- und Nachteile des Stochastic Gradient Descents?

Die Nutzung des Stochastic Gradient Descent bietet die folgenden Vorteile:

  • Effizienz: Durch die Nutzung eines kleineren Samples wird die benötigte Rechenleistung deutlich verringert und es können Kosten im Training eingespart werden.
  • Trainingszeit: Bei größeren Datensätzen kann der Stochastic Gradient Descent zu einer schnelleren Konvergenz führen, da die Parameter deutlich häufiger angepasst werden, als bei der Verarbeitung im Batch. Wie wir gleich sehen werden, kann dieser Punkt jedoch in beide Richtung tendieren.
  • Einfache Nutzung: Das Konzept des Stochastic Gradient Descent ist vergleichsweise einfach und kann deshalb auch sehr schnell programmiert und abgeändert werden.

Jedoch sollte der Stochastic Gradient Descent nur dann genutzt werden, wenn die Verarbeitung im Batch nicht möglich wäre, denn es ergeben sich unter anderem die folgenden Nachteile:

  • Noise im Training: Durch den ungenauen Gradienten, ist der Weg zum Minimum der Verlustfunktion deutlich steiniger und geprägt von Noise.
  • Trainingszeit: Durch größere Noise kann auch die Trainingszeit im Vergleich zur herkömmlichen Vorgehensweise steigen. Dieser Punkt ist somit immer von der konkreten Anwendung abhängig.
  • Hyperparameter: Beim Stochastic Gradient Descent liegen deutlich mehr Hyperparameter vor, die man zum Erreichen eines guten Ergebnisses zusätzlich anpassen muss.

Wie lässt sich der Stochastic Gradient Descent in Python umsetzen?

Scikit-Learn bietet bereits eine einfache Funktion mit deren Hilfe sich der Stochastic Gradient Descent ohne große, eigene Programmierung umsetzen lässt. Abhängig von der Anwendung kann man zwischen einem Classifier und einer Regression wählen:

from sklearn.linear_model import SGDClassifierclf = SGDClassifier(loss="hinge", penalty="l2", max_iter=5)

Zum Training müssen auch erstmal keine zusätzlichen Parameter angegeben werden, die man nicht sowieso benötigen würden, wie beispielsweise die Angabe der Verlustfunktion.

Das solltest Du mitnehmen

  • Der Stochastic Gradient Descent ist eine Abwandlung des “klassischen” Batch Gradient Descent und unterscheidet sich darin, dass nicht eine Teilmenge des Datensatzes zur Berechnung des Gradienten genutzt wird, sondern lediglich ein einzelner Datensatz.
  • Es wird vor allem beim Training von Text- oder Bildklassifikationen genutzt, bei denen die Datenmengen oft sehr groß sind und viel Speicherplatz benötigt wird. Durch den Stochastic Gradient Descent lässt sich erheblich Rechenleistung sparen, da nicht der komplette Batch in den Arbeitsspeicher geladen werden muss. Dadurch wird das Training günstiger oder mit den gegebenen Ressourcen überhaupt erst möglich.
  • Zu den Nachteilen des Stochastic Gradient Descent zählt, dass im Training deutlich mehr Noise auftreten kann, was zu einer langsameren Trainingszeit führt, da der Weg der Verlustfunktion zum Minimum deutlich steiniger ist.

Was ist SARSA?

Entdecken Sie SARSA: ein leistungsstarker RL-Algorithmus für fundierte Entscheidungen. Erfahren Sie, wie er die KI-Fähigkeiten verbessert.

Weiterlesen

Was sind Monte Carlo Simulationen?

Entdecken Sie die Leistungsfähigkeit und Vorteile von Monte Carlo Simulationen bei der Problemlösung.

Weiterlesen

Was ist eine Verlustfunktion?

Erforschung von Verlustfunktionen beim maschinellen Lernen: Ihre Rolle bei der Modelloptimierung und Auswirkungen auf die Robustheit.

Weiterlesen

Was ist der Binary Cross-Entropy Loss?

Eintauchen in die Binary Cross-Entropy: Eine Verlustfunktion beim maschinellen Lernen. Entdecken Sie Anwendungen und Nutzen.

Weiterlesen

Was ist die Korrelationsmatrix?

Korrelationsmatrix erforschen: Korrelationen verstehen, Konstruktion, Interpretation und Visualisierung.

Weiterlesen

Was ist Decentralised AI?

Das Potenzial von decentralised AI freisetzen: Transformation der Technologie durch verteilte Intelligenz und kollaborative Netzwerke.

Weiterlesen

Andere Beiträge zum Thema Stochastic Gradient Descent

Die Dokumentation in Scikit-Learn für den Stochastic Gradient Descent findest Du hier.

Was ist der Stochastic Gradient Descent? | Data Basecamp (2024)

References

Top Articles
THE BOOGEYMAN: DEREK BOOGAARD AND THE DETRIMENTAL EFFECTS OF SECTION 301 PREEMPTION.
Conversion Funnel Exercise Examine The Following Hypothetical Conversion Funnel For The Marriott Hotels
Funny Roblox Id Codes 2023
Golden Abyss - Chapter 5 - Lunar_Angel
Www.paystubportal.com/7-11 Login
Joi Databas
DPhil Research - List of thesis titles
Shs Games 1V1 Lol
Evil Dead Rise Showtimes Near Massena Movieplex
Steamy Afternoon With Handsome Fernando
Which aspects are important in sales |#1 Prospection
Detroit Lions 50 50
18443168434
Zürich Stadion Letzigrund detailed interactive seating plan with seat & row numbers | Sitzplan Saalplan with Sitzplatz & Reihen Nummerierung
Grace Caroline Deepfake
978-0137606801
Nwi Arrests Lake County
Justified Official Series Trailer
London Ups Store
Committees Of Correspondence | Encyclopedia.com
Pizza Hut In Dinuba
Jinx Chapter 24: Release Date, Spoilers & Where To Read - OtakuKart
How Much You Should Be Tipping For Beauty Services - American Beauty Institute
Free Online Games on CrazyGames | Play Now!
Sizewise Stat Login
VERHUURD: Barentszstraat 12 in 'S-Gravenhage 2518 XG: Woonhuis.
Jet Ski Rental Conneaut Lake Pa
Unforeseen Drama: The Tower of Terror’s Mysterious Closure at Walt Disney World
Kcwi Tv Schedule
What Time Does Walmart Auto Center Open
Nesb Routing Number
Olivia Maeday
Random Bibleizer
10 Best Places to Go and Things to Know for a Trip to the Hickory M...
Black Lion Backpack And Glider Voucher
Gopher Carts Pensacola Beach
Duke University Transcript Request
Lincoln Financial Field, section 110, row 4, home of Philadelphia Eagles, Temple Owls, page 1
Jambus - Definition, Beispiele, Merkmale, Wirkung
Netherforged Lavaproof Boots
Ark Unlock All Skins Command
Craigslist Red Wing Mn
D3 Boards
Jail View Sumter
Nancy Pazelt Obituary
Birmingham City Schools Clever Login
Thotsbook Com
Funkin' on the Heights
Vci Classified Paducah
Www Pig11 Net
Ty Glass Sentenced
Latest Posts
Article information

Author: Mrs. Angelic Larkin

Last Updated:

Views: 5770

Rating: 4.7 / 5 (47 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Mrs. Angelic Larkin

Birthday: 1992-06-28

Address: Apt. 413 8275 Mueller Overpass, South Magnolia, IA 99527-6023

Phone: +6824704719725

Job: District Real-Estate Facilitator

Hobby: Letterboxing, Vacation, Poi, Homebrewing, Mountain biking, Slacklining, Cabaret

Introduction: My name is Mrs. Angelic Larkin, I am a cute, charming, funny, determined, inexpensive, joyous, cheerful person who loves writing and wants to share my knowledge and understanding with you.