Optimieren von Modellen mit dem Gradientenverfahren
Sie haben gesehen, wie Kostenfunktionen die Bewertung von Modellen anhand von Daten durchführen. Der Optimierer ist nun das letzte Mosaikteil.
Die Rolle des Optimierers besteht darin, das Modell so anzupassen, dass dessen Leistung verbessert wird. Für diese Änderung werden die Modellausgaben und -kosten untersucht und neue Parameter für das Modell vorgeschlagen.
In unserem Farmszenario verfügt das lineare Modell beispielsweise über zwei Parameter: den Schnittpunkt der Linie und die Steigung der Linie. Wenn der Schnittpunkt der Linie falsch ist, schätzt das Modell die Temperaturen im Durchschnitt zu niedrig oder zu hoch. Wenn die Steigung falsch festgelegt ist, kann das Modell nicht gut darstellen, wie sich die Temperaturen seit den 1950er-Jahren geändert haben. Der Optimierer ändert diese beiden Parameter, sodass sie eine optimale Modellierung der Temperaturen im Zeitverlauf ermöglichen.
Gradientenabstiegsverfahren
Der derzeit gängigste Optimierungsalgorithmus ist das Gradientenverfahren. Es gibt mehrere Varianten dieses Algorithmus, die jedoch alle die gleichen grundlegenden Konzepte nutzen.
Beim Gradientenverfahren wird anhand von Berechnungen geschätzt, wie sich die Kosten durch das Ändern einzelner Parameter ändern. Beispielsweise kann für eine Erhöhung eines Parameters vorhergesagt werden, dass sich die Kosten verringern.
Das Gradientenverfahren heißt so, da dabei der Gradient (die Steigung) der Beziehung zwischen den einzelnen Modellparametern und den Kosten berechnet wird. Die Parameter werden dann geändert, um diese Steigung zu verringern.
Dieser Algorithmus ist einfach und leistungsstark, kann jedoch nicht garantieren, dass die optimalen Modellparameter zur Kostenminimierung gefunden werden. Die beiden Hauptfehlerquellen sind lokale Minima und Instabilität.
Lokale Minima
Im vorherigen Beispiel wurde eine gute Leistung danach bewertet, ob die Kosten weiter steigen würden, wenn der Parameter kleiner als 0 oder größer als 10 wäre:
Der Auftrag wäre nicht so erfolgreich gewesen, wenn Parameter, die kleiner als 0 oder größer als 10 sind, zu niedrigeren Kosten geführt hätten, wie in dieser Abbildung:
Im obigen Diagramm wäre ein Parameterwert von -7 eine bessere Lösung als 5, da er niedrigere Kosten verursacht. Das Gradientenabstiegsverfahren kennt die vollständige Beziehung zwischen den einzelnen Parametern und den Kosten, die durch die gepunktete Linie dargestellt wird, nicht im Voraus. Es ist also anfällig dafür, lokale Minima zu finden. Das sind Parameterschätzungen, die nicht die beste Lösung sind, aber deren Gradient 0 ist.
Instabilität
Ein verwandtes Problem besteht darin, dass das Gradientenverfahren manchmal instabil ist. Diese Instabilität tritt in der Regel auf, wenn die Schrittgröße oder die Lernrate (also der Wert der Anpassung der einzelnen Parameter bei jedem Durchlauf) zu groß ist. Die Parameter werden dann bei jedem Schritt zu stark angepasst, sodass das Modell bei jedem Durchlauf schlechter wird:
Mit einer langsameren Lernrate können Sie dieses Problem zwar lösen, aber auch neue Probleme verursachen. Erstens können langsamere Lernraten bedeuten, dass das Training sehr lange dauert, da mehr Schritte erforderlich sind. Zweitens ist es durch kleinere Schritte wahrscheinlicher, dass das Training auf ein lokales Minimum zuläuft:
Im Gegensatz dazu können Sie mit einer schnelleren Lernrate lokale Minima einfacher vermeiden, da Sie mit größeren Schritten lokale Maxima überspringen:
In der nächsten Übung werden Sie sehen, dass es für jedes Problem eine optimale Schrittgröße gibt. Dieses Optimum zu finden, erfordert häufig ein wenig Experimentieren.