Einfache Regularisierung: L2-Regularisierung

Sehen Sie sich die folgende Generalisierungskurve an, die den Verlust für das Trainings- und das Validierungs-Dataset gegenüber der Anzahl der Trainingsdurchläufe zeigt.

Die Verlustfunktion für das Trainings-Dataset nimmt allmählich ab. Im Gegensatz dazu nimmt die Verlustfunktion für das Validierungs-Dataset ab, steigt aber dann an.

Abbildung 1. Verlust beim Trainings- und Validierungs-Dataset.

Abbildung 1 zeigt ein Modell, bei dem der Trainingsverlust schrittweise abnimmt, der Validierungsverlust aber letztendlich zunimmt. Mit anderen Worten, diese Generalisierungskurve zeigt eine Überanpassung des Modells an die Daten im Trainings-Dataset. Wenn wir unser inneres Ockham kanalisieren, könnten wir möglicherweise eine Überanpassung verhindern, indem wir komplexe Modelle bestrafen, ein Prinzip, das als Regularisierung bezeichnet wird.

Anders ausgedrückt: Anstatt einfach nur die Verluste zu minimieren (empirische Risikominimierung):

$$\text{minimize(Loss(Data|Model))}$$

minimieren wir nun Verlust und Komplexität, was als strukturelle Risikominimierung bezeichnet wird:

$$\text{minimize(Loss(Data|Model) + complexity(Model))}$$

Unser Trainingsoptimierungsalgorithmus besteht jetzt aus zwei Begriffen: dem Verlustbegriff, der angibt, wie gut das Modell zu den Daten passt, und dem Regulierungsbegriff, der die Modellkomplexität misst.

Der Crashkurs „Machine Learning“ konzentriert sich auf zwei gängige (und ähnliche) Möglichkeiten, sich die Modellkomplexität zu vorstellen:

  • Modellkomplexität als Funktion der Gewichtungen aller Features im Modell.
  • Modellkomplexität als Funktion der Gesamtzahl von Features mit einer Gewichtung ungleich null. Dieser Ansatz wird in einem späteren Modul behandelt.

Wenn die Modellkomplexität eine Funktion von Gewichtungen ist, ist eine Featuregewichtung mit einem hohen absoluten Wert komplexer als eine Featuregewichtung mit einem niedrigen absoluten Wert.

Wir können die Komplexität mit der L2-Regularisierung-Formel quantifizieren, die den Regularisierungsbegriff als die Summe der Quadrate aller Merkmalsgewichtungen definiert:

$$L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}$$

In dieser Formel haben Gewichtungen nahe bei null nur geringe Auswirkungen auf die Modellkomplexität, während Ausreißergewichtungen einen großen Einfluss haben können.

Beispiel: Ein lineares Modell mit den folgenden Gewichtungen:

$$\{w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 1, w_5 = 0.25, w_6 = 0.75\}$$

Hat einen L2-Regularisierungsbegriff von 26,915:

$$w_1^2 + w_2^2 + \boldsymbol{w_3^2} + w_4^2 + w_5^2 + w_6^2$$ $$= 0.2^2 + 0.5^2 + \boldsymbol{5^2} + 1^2 + 0.25^2 + 0.75^2$$ $$= 0.04 + 0.25 + \boldsymbol{25} + 1 + 0.0625 + 0.5625$$ $$= 26.915$$

Aber \(w_3\) (oben fett dargestellt) mit einem quadratischen Wert von 25 trägt fast zur Komplexität bei. Die Summe der Quadrate aller fünf anderen Gewichtungen addiert zum Regularisierungsbegriff L2 nur 1,915.