Normalisierung und Standardisierung

Abgeschlossen

Die Featureskalierung ist ein Verfahren, bei dem der Wertebereich eines Features geändert wird. Dadurch können Modelle schneller und stabiler lernen.

Normalisierung im Vergleich zur Standardisierung

Normalisierung bedeutet, Werte so zu skalieren, dass sie alle in einem bestimmten Bereich liegen – in der Regel zwischen 0 und 1. Wenn Sie beispielsweise eine Liste mit Altersangaben von Menschen haben, die 0, 50 und 100 Jahre alt sind, können Sie die Werte normalisieren, indem Sie das Alter durch 100 dividieren, damit die Werte „0“, „0,5“ und „1“ lauten.

Die Standardisierung ist ähnlich, allerdings wird dabei der Mittelwert (auch als Durchschnitt bezeichnet) der Werte abgezogen und durch die Standardabweichung dividiert. Falls Sie mit der Standardabweichung nicht vertraut sind: Diese bedeutet, dass der Mittelwert nach der Normalisierung „0“ ist und etwa 95 % der Werte zwischen –2 und 2 liegen.

Es gibt auch andere Möglichkeiten zum Skalieren von Daten, aber die damit verbundenen Nuancen gehen über das hinaus, was wir im Moment wissen müssen. Sehen wir uns an, warum wir die Normalisierung oder Standardisierung anwenden.

Warum ist eine Skalierung erforderlich?

Es gibt viele Gründe für die Normalisierung oder Standardisierung von Daten vor dem Training. Zur besseren Veranschaulichung verwenden wir ein Beispiel. Angenommen, wir möchten ein Modell trainieren, mit dem sich vorhersagen lässt, ob ein Hund erfolgreich im Schnee arbeiten kann. Im nachstehenden Diagramm sind unsere Daten als Punkte dargestellt, und die Trendlinie, die wir suchen, ist als durchgezogene Linie dargestellt:

Diagramm: Skalierung anhand der Hundegröße und der Rettungsaktionen ab dem Wert 50

Besserer Ausgangspunkt für das Training durch Skalierung

Die im obigen Diagramm dargestellte optimale Linie umfasst zwei Parameter: den Schnittpunkt (50), die Linie bei x=0 und die Steigung (0,01). Jeder 1000-Millimeter-Wert erhöht die Rettungen um 10. Angenommen, wir beginnen mit dem Training mit anfänglichen Schätzungen von 0 für beide Parameter.

Wenn unsere Trainingsiterationen die Parameter im Durchschnitt um 0,01 pro Iteration ändern, werden mindestens 5000 Iterationen benötigt, bis der Schnittpunkt gefunden wird: 50 / 0,01 = 5000 Iterationen. Durch die Standardisierung kann erreicht werden, dass der optimale Schnittpunkt näher bei 0 liegt, was bedeutet, dass Sie ihn deutlich schneller finden können. Wenn wir z. B. den Mittelwert von unserer Bezeichnung („Jährliche Rettungsaktionen“) und unserem Merkmal (Höhe) subtrahieren, liegt der Schnittpunkt bei -0,5 und nicht bei 50, wodurch wir ihn ungefähr 100-mal schneller finden können.

Diagramm: Skalierung anhand der Hundegröße und der Rettungsaktionen ab dem Wert 0

Es gibt noch andere Gründe dafür, dass komplexe Modelle nur sehr langsam trainiert werden können, wenn die anfängliche Schätzung weit vom Ziel entfernt ist, aber die Lösung ist dennoch dieselbe: Korrigieren Sie die Features so, dass sie näher an der anfänglichen Schätzung liegen.

Parametertraining bei gleicher Geschwindigkeit durch Standardisierung

Die neuen, korrigierten Daten weisen einen idealen Offset von -0,5 und eine ideale Steigung von 0,01 auf. Obwohl eine Anpassung des Offsets zur Beschleunigung beiträgt, dauert das Training des Offsets dennoch viel länger als das Training der Steigung. Dies kann das Tempo drosseln und das Training instabil machen.

Unsere anfänglichen Schätzungen für Offset und Steigung sind beispielsweise beide 0. Wenn wir unsere Parameter bei jeder Iteration um etwa 0,1 ändern, finden wir den Offset schnell, aber es ist sehr schwierig, die richtige Steigung zu finden, weil der Steigungsanstieg zu groß ist (0 + 0,1 > 0,01) und den Idealwert überschreiten kann. Wir können die Anpassungen zwar verkleinern, aber dadurch dauert es länger, den Schnittpunkt zu finden.

Was geschieht, wenn wir unser Merkmal der Höhe skalieren?

Diagramm: Standardisierung anhand der Hundegröße und der skalierten Rettungsaktionen

Die Steigung der Linie beträgt jetzt 0,5. Achten Sie auf die X-Achse. Unser optimaler Schnittpunkt von -0,5 und die Steigung von 0,5 haben die gleiche Dimension! Jetzt ist es einfach, eine sinnvolle Schrittgröße zu wählen, die angibt, wie schnell der Gradientenabstieg die Parameter aktualisiert.

Verbessertes Arbeiten mit mehreren Features durch Skalierung

Wenn wir mit mehreren Merkmalen arbeiten, kann eine unterschiedliche Skalierung zu Problemen bei der Anpassung führen, ähnlich wie wir es gerade bei den Beispielen für den Schnittpunkt und die Steigung gesehen haben. Wenn wir beispielsweise ein Modell trainieren, das sowohl die Größe in mm als auch das Gewicht in metrischen Tonnen akzeptiert, kann in vielen Modellen die Relevanz des Gewichts nur schwer berücksichtigt werden, weil dieses im Verhältnis zu den Größenwerten so gering ist.

Ist eine Skalierung immer nötig?

Eine Skalierung ist nicht immer erforderlich. Einige Arten von Modellen, einschließlich der vorstehenden Modelle mit linearem Verlauf, können ohne ein iteratives Vorgehen wie beispielsweise dem Gradientenverfahren angepasst werden, sodass Features mit falscher Größe kein Problem darstellen. Andere Modelle müssen für gute Trainingserfolge nicht skaliert werden. Die Bibliotheken dieser Modelle führen die Featureskalierung jedoch häufig automatisch durch.

Im Allgemeinen sind die einzigen tatsächlichen Nachteile der Normalisierung und Standardisierung, dass es schwieriger sein kann, die Modelle zu interpretieren, und dass Sie etwas mehr Code schreiben müssen. Aus diesem Grund ist die Featureskalierung ein fester Bestandteil beim Erstellen von Machine Learning-Modellen.