Theorie - Optimierung & Wandern mit Gradientenabstieg
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 79 | |
Autor | 0009-0004-1811-9699 (ORCID) | |
Lizenz | CC-Namensnennung 4.0 International: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/65501 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache | ||
Produktionsjahr | 2023 | |
Produktionsort | Heinrich-Heine-Universität Düsseldorf |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
| |
Schlagwörter |
12
17
18
34
36
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
56
58
59
61
63
66
67
68
69
71
74
75
78
79
00:00
Komponente <Software>Netzwerk <Graphentheorie>TeilmengeBackpropagation-AlgorithmusChecklisteQualitätsmaßKostenfunktionTestdatenGewicht <Mathematik>BIAS <Programm>DatensatzOptimierungGradientPartielle DifferentiationApproximationEin-AusgabeValidierungOptimumKettenregelRichtungZahlAbstieg <Mathematik>HöheInitialisierungVariableAbleitung <Topologie>KurvendiskussionMinimumFunktion <Mathematik>VektorJSONXMLComputeranimationBesprechung/InterviewVorlesung/Konferenz
09:09
GradientStochastikEin-AusgabeOptimierungValidierungBackpropagation-Algorithmus
09:17
ProgramminspektionComputeranimationXML
Transkript: Deutsch(automatisch erzeugt)
00:05
Wie trainieren wir jetzt eigentlich ein neuronales Netzwerk? Oder etwas mathematischer, wie optimieren wir die Parameter? Wir möchten gerne ein neuronales Netzwerk mit einem überwachten Deep Learning Algorithmus trainieren. Wir haben einen geeigneten Datensatz, den wir
00:22
bereits vorverarbeitet und bereinigt haben. Anschließend wurde er in Trainings, Validierung und Testdaten aufgeteilt. Wir kennen den Weg, den die Daten durch ein sequenzielles Modell als Input durch die Layers bis zum Output durchlaufen. Hier entscheiden jetzt Qualitäts- bzw. Fehlermaße darüber, wie gut der Output für ein bestimmtes
00:43
zugrunde liegendes Problem ist. Aber wie bekommen wir das Modell jetzt dazu, den Output zu verbessern? Wie definieren wir Optimalität? Natürlich müssen wir auch das wieder quantifizieren und zwar durch die sogenannte Loss Function, also Verlustfunktion oder manchmal auch Kostfunktion, Kostenfunktion genannt. Uns interessiert, wie sehr sich der
01:04
aktuelle Output des Netzwerkes von dem gewünschten Output unterscheidet. Im Supervised Learning Setting haben wir bereits gewünschte Input-Output-Paare in Form der Daten und dazugehörigen Labels. Jetzt wollen wir also unser aktuelles Ergebnis während des Trainings mit dem gewünschten Ergebnis vergleichen. Und das können wir mathematisch übersetzen
01:24
die Distanz oder Differenz berechnen. Zum Beispiel können wir schauen, ob im aktuellen Training Schritt ein Hundebild auch wirklich als Hund klassifiziert wird. Ist das der Fall, ist die Differenz zwischen dem vorhergesagten Label 1 und dem tatsächlichen Label 1 gleich 0. Würde das Bild inkorrekterweise als Katze erkannt, wäre die
01:45
Differenz zwischen dem vorhergesagten Label 0 und dem tatsächlichen Label 1 1. Machen wir für jedes Bild aus dem Datensatz, bleibt die Verlustfunktion bei guter Performance, also bei vielen korrekt vorhergesagten Labels, nahe bei 0. Machen wir andererseits viele
02:02
Fehler bei der Vorhersage, summieren sich die Einsen auf und wir erhalten einen hohen Verlust. Das Ziel der Optimierung ist jetzt, die Verlustfunktion zu minimieren. Wie geht das jetzt genau? Ganz genau werden wir das an dieser Stelle nicht erklären, aber zumindest versuchen, eine Intuition zu schaffen. Die Parameter, die letztendlich
02:22
in neuronalen Netzwerken optimiert werden, sind die Gewichte oder Weights und die Biases. Ziel ist also, die Verlustfunktion bezüglich dieser Weights und Biases zu minimieren. Die Methode, die dafür standardmäßig verwendet wird, ist der sogenannte Gradient Descent oder Gradienten Abstieg. Vielleicht sollten wir uns kurz den Begriff Gradient in Erinnerung
02:43
rufen, den wir vielleicht noch aus der Schule kennen. Falls ihr euch wie ich mit Begeisterung an die Kurvendiskussion erinnert, dann hatte Optimierung oder das Auffinden von Hoch- und Tiefpunkten einer Funktion immer irgendwie mit Ableitung zu tun. Wollten wir den Tiefpunkt oder das Minimum einer Funktion finden, haben wir die Ableitung
03:01
gleich 0 gesetzt und dann auch geprüft, dass ein Tiefpunkt vorliegt. Was bedeutet nochmal Ableitung? Nehmen wir die Funktion f von x gleich 2x hoch 2 plus 4x. Die Ableitung davon ist 4x plus 4. Setzen wir das gleich 0, erhalten wir x gleich minus 1. Die Funktion
03:22
f ist also an der Stelle x gleich minus 1 minimal und nimmt den Wert minus 2 an. Es gibt aber auch Funktionen mit mehr als einer Variablen. Nehmen wir f von x und y ist gleich 3x² minus 2y. Jetzt können wir zwei Ableitungen berechnen. Einmal die
03:41
bezüglich x und einmal die bezüglich y. Sie heißen auch partielle Ableitungen. Der Gradient von f wird dann geschrieben als Vektor mit zwei Komponenten. Der partiellen Ableitung bezüglich x und der partiellen Ableitung bezüglich y. Konkret wäre der erste Eintrag dann 6x und der zweite Eintrag minus 2.
04:04
Jetzt sind wir gut vorbereitet um uns die Methode des Gradientenabstiegs mal ganz vereinfacht und veranschaulicht vorzustellen. Nehmen wir an, wir befinden uns in dieser idyllischen Landschaft und wollen von einem Berggipfel bis ganz nach unten ins Tal wandern. Hier entspricht jetzt die Höhe, auf der wir uns befinden, dem Wert der Verlustfunktion.
04:24
Das heißt ganz oben auf dem Berg ist die sehr hoch und wir wollen den Punkt im Tal finden, der einer sehr niedrigen Zahl oder sogar Null entspricht. Wie kommen wir dort hin, wenn wir irgendwo auf einer Bergspitze starten? Wir können natürlich nicht fliegen oder uns in einem Schritt ins Tal beamen. Vielmehr müssen wir lokal schauen, welcher
04:44
nächste Schritt uns möglichst schnell und effizient nach unten bringt. Intuitiv würden wir dann einen Schritt in Richtung des steilsten Abstiegs gehen, solange wir uns dabei nicht verletzen und das mit einer Schrittlänge machbar ist. So gelangen wir nach und nach oder Schritt für Schritt weiter nach unten, checken immer wieder lokal,
05:03
was für uns gerade die beste Richtung ist und kommen schließlich im Tal an. Dabei kann es sein, dass wir nicht die tiefste Stelle des gesamten Landschaftszugs gefunden haben, aber die für uns lokal tiefste Stelle. Das ist in den meisten Fällen bei neuronalen Netzwerken auch ausreichend und man spricht dann von einem lokalen statt globalen
05:24
Minimum, dass wir die Verlustfunktion gefunden wurde. Hier sehen wir eine Animation, die den Gradientenabstieg noch einmal veranschaulicht. Stellen wir uns vor, dass wir unsere Landschaft nun von oben betrachten. Wir sehen Höhenlinien und die Farbe gelb entspricht einem hohen Wert der Verlustfunktion oder Höhe und dunkelblau
05:43
einem niedrigen Wert. Die roten Punkte sind Menschen, die Richtung Tal wandern möchten und alle von verschiedenen Positionen auch starten. Das nennt man bei neuronalen Netzwerken auch Initialisierung. Wir müssen ja am Anfang den Weights und Biases bestimmte Werte zuordnen,
06:01
die dann im Laufe der Zeit optimiert werden. Hier sehen wir schön, wie alle nach und nach ein lokales Minimum erreichen. Die Schrittspeize während des Wanderns wird in Analogie beim Gradientenabstiegsverfahren im Deep Learning auch als Learning Rate bezeichnet. Sie kann gewählt werden oder sich im Laufe der Optimierung verändern. In der Praxis bestehen neuronale
06:23
Netzwerke manchmal aus Millionen von Parametern, also den Weights und Biases. Das heißt, die Verlustfunktion muss nicht bezüglich einer oder zweier Variablen, sondern manchmal Millionen davon abgeleitet werden. Wir müssen also einen riesigen Gradienten ausrechnen. Die Methode, die mathematisch dafür verwendet wird, heißt Backpropagation und ergibt sich
06:43
aus der ebenfalls aus der Schule bekannten Kettenregel. Wir werden an dieser Stelle aber nicht näher auf die Details eingehen. In der Praxis wird zur Optimierung von neuronalen Netzwerken eine bestimmte Methode des Gradientenabstiegs verwendet, nämlich der Stochastic Gradient Descent bzw. der Stochastische Gradientenabstieg. Anstatt den Gradienten für den gesamten
07:05
Datensatz zu berechnen, wird er für eine zufällige Teilmenge davon berechnet und liefert trotzdem eine gute Approximation des tatsächlichen Gradienten. Das beschleunigt die Optimierung natürlich auch erheblich. Das Training oder die Parameteroptimierung
07:20
eines neuronalen Netzwerkes ist ein iterativer Prozess. Das heißt, Schritt für Schritt nähern wir uns dem Optimum. Wir beginnen mit dem Vorbereiten der Daten und dem Aufteilen in Trainings, Validierungs- und Testdaten. Dadurch laufen wir immer jeweils eine Epoche. Epoche bedeutet, dass der gesamte Trainingsdatensatz einmal im Optimierungsprozess verwendet
07:42
wird. Pro Epoche können wir die Daten noch in sogenannte Batches, also Teilmengen des Datensatzes aufteilen. Dafür werden dann jeweils die Parameter optimiert. Die Frage, die sich zum Schluss noch stellt, ist, wann stoppen wir das Ganze? Eine gute Strategie ist es, den Verlauf der Optimierung zu visualisieren. Wir können
08:04
die Anzahl an Epochen gegen den Wert der Verlustfunktion auftragen. Im besten Fall sieht das dann in etwa so aus wie hier. Am Anfang sinkt die Verlustfunktion ziemlich schnell und bei zunehmender Anzahl der Epochen sinkt sie langsamer und nähert sich einem Wert an. Also könnte ein Kriterium, die Optimierung zu stoppen, lauten,
08:25
wenn die Verlustfunktion sich zwischen zwei Epochen nicht mehr stark ändert, stoppe die Optimierung. Diesen Wert könnte man sich vorher überlegen. Eine andere Möglichkeit, die man eigentlich parallel verfolgen sollte, ist sich die Qualitätsmaße für die Validierungsdaten anzuschauen. Hier könnten wir die Anzahl der Epochen
08:43
gegen die Accuracy bei Klassifikationsproblemen oder die Peak Signature Noise Ratio beim Bild entrauschen auftragen. Im Medialfall steigen die Qualitätsmaße und ein Kriterium zum Stoppen könnte dann die Überschreitung eines im Vorhinein festgelegten Wertes sein.
09:01
Jetzt könnt ihr das Training bzw. die Parameteroptimierung eines neuronalen Netzwerkes anhand der folgenden Checkliste erklären.
Empfehlungen
Serie mit 26 Medien
Serie mit 28 Medien