Lineare Regression: Hyperparameter

Hyperparameter sind Variablen, mit denen verschiedene Aspekte des Trainings gesteuert werden. Drei gängige Hyperparameter sind:

Parameter sind dagegen Variablen wie Gewichte und Voreingenommenheit, die Teil des Modells selbst sind. Mit anderen Worten: Hyperparameter sind Werte, die Sie steuern. Parameter sind Werte, die vom Modell während des Trainings berechnet werden.

Lernrate

Die Lernrate ist eine von Ihnen festgelegte Gleitkommazahl, die beeinflusst, wie schnell das Modell konvergiert. Ist die Lernrate zu niedrig, kann es lange dauern, bis das Modell konvergiert. Wenn die Lernrate jedoch zu hoch ist, konvergiert das Modell nie, sondern schwankt stattdessen um die Gewichte und Voreingenommenheiten herum, die den Verlust minimieren. Ziel ist es, eine Lernrate auszuwählen, die nicht zu hoch oder zu niedrig ist, damit das Modell schnell konvergiert.

Die Lernrate bestimmt die Größe der Änderungen, die an den Gewichten und der Voreingenommenheit bei jedem Schritt des Gradientenabstiegs vorgenommen werden müssen. Das Modell multipliziert den Gradienten mit der Lernrate, um die Parameter des Modells (Gewichts- und Biaswerte) für die nächste Iteration zu bestimmen. Im dritten Schritt der Gradientenabstiegsmethode bezieht sich der „kleine Betrag“, der in Richtung der negativen Steigung verschoben werden soll, auf die Lernrate.

Der Unterschied zwischen den alten Modellparametern und den neuen Modellparametern ist proportional zur Steigung der Verlustfunktion. Wenn die Steigung beispielsweise groß ist, macht das Modell einen großen Schritt. Ist der Wert klein, ist auch der Schritt klein. Wenn die Größe des Gradienten beispielsweise 2,5 und die Lernrate 0,01 beträgt, ändert das Modell den Parameter um 0,025.

Die ideale Lernrate trägt dazu bei, dass das Modell innerhalb einer angemessenen Anzahl von Iterationen konvergiert. In Abbildung 21 zeigt die Verlustkurve, dass sich das Modell in den ersten 20 Iterationen deutlich verbessert, bevor es zu einer Konvergenz kommt:

Abbildung 21: Eine Verlustkurve mit einer steilen Steigung, die sich dann abflacht.

Abbildung 21 Verlustdiagramm für ein Modell, das mit einer Lernrate trainiert wurde, die schnell konvergiert.

Im Gegensatz dazu kann es bei einer zu niedrigen Lernrate zu vielen Iterationen kommen, bis die Konvergenz erreicht wird. In Abbildung 22 zeigt die Verlustkurve, dass das Modell nach jeder Iteration nur geringfügige Verbesserungen erzielt:

Abbildung 22. Eine Verlustkurve mit einer fast 45-Grad-Neigung.

Abbildung 22 Verlustdiagramm für ein Modell, das mit einer kleinen Lernrate trainiert wurde

Eine zu hohe Lernrate konvergiert nie, da bei jeder Iteration entweder der Verlust schwankt oder kontinuierlich zunimmt. In Abbildung 23 zeigt die Verlustkurve, dass der Verlust des Modells nach jeder Iteration abnimmt und dann wieder ansteigt. In Abbildung 24 steigt der Verlust bei späteren Iterationen an:

Abbildung 23: Verlustkurve mit einer gezackten Auf- und Abwärtslinie

Abbildung 23 Verlustdiagramm für ein Modell, das mit einer zu hohen Lernrate trainiert wurde. Die Verlustkurve schwankt stark und steigt und fällt mit zunehmender Anzahl der Iterationen.

Abbildung 24: Verlustkurve, die zeigt, dass der Verlust bei späteren Iterationen zunimmt

Abbildung 24 Verlustdiagramm für ein Modell, das mit einer zu hohen Lernrate trainiert wurde, wobei die Verlustkurve in späteren Iterationen drastisch ansteigt

Übung: Wissen testen

Was ist die ideale Lernrate?
0,01
Die ideale Lernrate ist vom Problem abhängig.
1.0

Batchgröße

Die Batchgröße ist ein Hyperparameter, der sich auf die Anzahl der Beispiele bezieht, die vom Modell verarbeitet werden, bevor die Gewichte und der Bias aktualisiert werden. Sie könnten meinen, dass das Modell den Verlust für jedes Beispiel im Dataset berechnen sollte, bevor die Gewichte und der Bias aktualisiert werden. Wenn ein Dataset jedoch Hunderttausende oder sogar Millionen von Beispielen enthält, ist die Verwendung des gesamten Batches nicht praktikabel.

Zwei gängige Methoden, um den richtigen Gradienten im Durchschnitt zu erhalten, ohne sich jedes Beispiel im Dataset ansehen zu müssen, bevor die Gewichte und der Bias aktualisiert werden, sind der stochastische Gradientenabstieg und der Mini-Batch-stochastische Gradientenabstieg:

  • Stochastischer Gradientenabstieg (SGD): Beim stochastischen Gradientenabstieg wird pro Iteration nur ein einzelnes Beispiel (eine Batchgröße von 1) verwendet. Bei ausreichend vielen Iterationen funktioniert SGD, ist aber sehr fehleranfällig. „Rauschen“ bezieht sich auf Abweichungen während des Trainings, die dazu führen, dass sich der Verlust während einer Iteration eher erhöht als verringert. Der Begriff „stochastisch“ gibt an, dass das Beispiel, das jeden Batch bildet, zufällig ausgewählt wird.

    In der folgenden Abbildung sehen Sie, wie der Verlust leicht schwankt, wenn das Modell seine Gewichte und Voreingenommenheit mithilfe von SGD aktualisiert. Dies kann zu Unruhe im Verlustdiagramm führen:

    Abbildung 25: Steile Verlustkurve, die sich abflacht, aber mit vielen kleinen Schwankungen.

    Abbildung 25 Mit dem stochastischen Gradientenabstieg (SGD) trainiertes Modell mit Rauschen in der Verlustkurve.

    Beachten Sie, dass der stochastische Gradientenabstieg nicht nur in der Nähe der Konvergenz, sondern über die gesamte Verlustkurve hinweg zu Rauschen führen kann.

  • Mini-Batch-Stichprobenergänzung (Mini-Batch SGD): Der Mini-Batch-Stichprobenergänzung ist ein Kompromiss zwischen dem Full-Batch-Verfahren und dem SGD. Bei einer Anzahl von Datenpunkten von N kann die Batchgröße eine beliebige Zahl zwischen 1 und N sein. Das Modell wählt die in jedem Batch enthaltenen Beispiele nach dem Zufallsprinzip aus, berechnet den Mittelwert ihrer Gradienten und aktualisiert dann einmal pro Iteration die Gewichte und die Voreingenommenheit.

    Die Anzahl der Beispiele für jeden Batch hängt vom Datensatz und den verfügbaren Rechenressourcen ab. Im Allgemeinen verhalten sich kleine Batchgrößen wie SGD und größere Batchgrößen wie der Gradientenabstieg mit vollständigem Batch.

    Abbildung 26: Eine steile Verlustkurve, die sich allmählich abflacht, mit viel kleineren Schwankungen in der Nähe der Konvergenz.

    Abbildung 26 Modell, das mit Mini-Batch-SGD trainiert wurde.

Beim Trainieren eines Modells denken Sie vielleicht, dass Rauschen eine unerwünschte Eigenschaft ist, die beseitigt werden sollte. Eine gewisse Menge an Rauschen kann jedoch von Vorteil sein. In späteren Modulen erfahren Sie, wie Rauschen dazu beitragen kann, dass ein Modell besser generalisiert wird und die optimalen Gewichte und Voreingenommenheiten in einem neuronalen Netzwerk gefunden werden.

Epochen

Während des Trainings bedeutet eine Epoche, dass das Modell jedes Beispiel im Trainingssatz einmal verarbeitet hat. Bei einem Trainingssatz mit 1.000 Beispielen und einer Mini-Batch-Größe von 100 Beispielen benötigt das Modell beispielsweise 10 iterations, um eine Epoche abzuschließen.

Das Training erfordert in der Regel viele Epochen. Das System muss also jedes Beispiel im Trainingssatz mehrmals verarbeiten.

Die Anzahl der Epochen ist ein Hyperparameter, den Sie festlegen, bevor das Modell trainiert wird. In vielen Fällen müssen Sie ausprobieren, wie viele Epochen erforderlich sind, bis das Modell konvergiert. Im Allgemeinen führt ein höheres Epochen-Limit zu einem besseren Modell, das Training dauert aber auch länger.

Abbildung 27: Ein Full-Batch ist der gesamte Datensatz, ein Mini-Batch ist ein Teil des Datensatzes und eine Epoche ist ein vollständiger Durchlauf von zehn Mini-Batches.

Abbildung 27 Vollständiger Batch im Vergleich zu Mini-Batch

In der folgenden Tabelle wird beschrieben, wie sich die Batchgröße und die Epochen auf die Häufigkeit auswirken, mit der die Parameter eines Modells aktualisiert werden.

Batchtyp Wann werden Gewichte und Voreingenommenheit aktualisiert?
Vollständiger Batch Nachdem das Modell alle Beispiele im Dataset betrachtet hat. Wenn ein Dataset beispielsweise 1.000 Beispiele enthält und das Modell 20 Epochen lang trainiert wird, werden die Gewichte und die Voreingenommenheit 20 Mal aktualisiert, einmal pro Epoche.
Stochastischer Gradientenabstieg Nachdem sich das Modell ein einzelnes Beispiel aus dem Datensatz angesehen hat. Wenn ein Dataset beispielsweise 1.000 Beispiele enthält und 20 Epochen lang trainiert wird, werden die Gewichte und die Voreingenommenheit 20.000 Mal aktualisiert.
Mini-Batch-Stochastic Gradient Descent Nachdem das Modell sich die Beispiele in jedem Batch angesehen hat. Wenn ein Dataset beispielsweise 1.000 Beispiele enthält, die Batchgröße 100 ist und das Modell 20 Epochen lang trainiert wird, werden die Gewichte und die Voreingenommenheit 200 Mal aktualisiert.

Übung: Wissen testen

1. Welche Batchgröße ist bei der Verwendung von Mini-Batch-SGD am besten geeignet?
100 Beispiele pro Batch
10 Beispiele pro Batch
Unterschiedlich
2. Welche der folgenden Aussagen ist korrekt?
Wenn Sie die Lernrate verdoppeln, kann das Training verlangsamt werden.
Größere Batches sind für Daten mit vielen Ausreißern ungeeignet.