Wenn man mit dem Lernen von maschinellem Lernen beginnt, erscheinen die Dinge zunächst einfach.
In vielen Tutorials wird man aufgefordert, einen Datensatz zu laden, ein Modell zu trainieren und dann sieht man Begriffe wie: loss = „mse“ oder criterion = nn.CrossEntropyLoss(). Doch dann wird schnell auf komplexe Themen wie Gleichungen, Gradienten und Optimierung umgeschwenkt. Wenn Sie jemals zustimmend genickt haben, ohne wirklich zu verstehen, was eine Verlustfunktion bewirkt, sind Sie nicht allein. Oft werden Verlustfunktionen rückwärts erklärt. Die meisten Tutorials beginnen mit der Formel, anstatt mit der zugrunde liegenden Idee. Dieser Artikel ist Teil einer Serie, die es Ihnen erleichtern soll, diese Konzepte zu verstehen. Lassen Sie uns also beginnen.
Was ist eine Verlustfunktion?
Eine Verlustfunktion ist das Mittel, durch das ein maschinelles Lernmodell erkennt, wie falsch es ist. Das ist das gesamte Konzept. Das Modell trifft eine Vorhersage. Die Verlustfunktion vergleicht diese Vorhersage mit der richtigen Antwort und gibt dem Modell eine Zahl, die sagt: „So schlecht war Ihr Fehler.“
Ein hoher Verlust bedeutet, dass das Modell sehr falsch lag, während ein niedriger Verlust darauf hinweist, dass das Modell nah dran war. Während des Trainings passt sich das Modell ständig an, um den Verlust zu minimieren. So geschieht das Lernen. Wenn Sie ein Dartspiel gespielt haben, ist es sehr ähnlich. Sie werfen den Dart und benötigen Feedback, um sich zu verbessern. Sie müssen wissen, ob Ihr Dart leicht daneben, weit entfernt, zu hoch oder zu weit links war. Ohne dieses Feedback können Sie sich nicht verbessern. Das Bullseye ist die richtige Antwort, und der Dart ist die Vorhersage. Die Verlustfunktion misst, wie weit der Dart vom Bullseye entfernt ist. Diese Distanz wird zum Feedbacksignal des Modells. Wenn Sie eine Visualisierung bevorzugen, könnte es so aussehen.
Wie wichtig die Distanz zum Zentrum ist, zeigt sich daran, dass es nicht dasselbe ist, zu nah zu werfen, wie weit daneben zu liegen. Ebenso reicht es für Modelle nicht aus, nur zu wissen, dass die Antwort falsch ist. Das Modell muss wissen, wie schlecht es versagt hat, um sich zu verbessern.
Häufige Verlustfunktionen im maschinellen Lernen
Mittlere quadratische Abweichung (MSE)
Die häufigste Verlustfunktion zur Vorhersage von Zahlen ist die mittlere quadratische Abweichung (MSE). Sie wird oft verwendet, wenn das Modell Zahlen wie Immobilienpreise, Temperaturen oder Lieferzeiten vorhersagt. Das Konzept ist sehr einfach:
- Fehler: Für jede Vorhersage wird die Differenz zwischen der Schätzung und der Wahrheit genommen.
- Quadrat: Jede Differenz wird mit sich selbst multipliziert.
- Durchschnitt: Alle quadrierten Differenzen werden gemittelt.
In Python könnte das so aussehen:
def mean_squared_error(predictions, actuals):
squared_errors = [(p - a) ** 2 for p, a in zip(predictions, actuals)]
return sum(squared_errors) / len(squared_errors)
Das Verständnis, warum wir die Fehler quadrieren, kann verwirrend sein. Dies geschieht aus zwei Gründen:
- Das Quadrieren macht jeden Fehler positiv. Ein Fehler von +3 und ein Fehler von -3 sind gleich schlecht, und das Quadrieren verwandelt beide in 9, sodass sie sich nicht gegenseitig aufheben.
- Das Quadrieren bestraft große Fehler viel härter als kleine. Dies ist für viele Anwendungsfälle vorteilhaft. Wenn Sie beispielsweise Immobilienpreise vorhersagen, sollte ein Fehler von 1.000 $ im Vergleich zu 200.000 $ entsprechend bestraft werden.
Mittlere absolute Abweichung (MAE)
Eine weitere häufige Verlustfunktion ist die mittlere absolute Abweichung (MAE). MAE misst ebenfalls die Differenz zwischen Vorhersagen und tatsächlichen Werten, quadriert jedoch den Fehler nicht. Stattdessen wird einfach der Betrag genommen.
Hier ist die Python-Funktion dafür:
def mean_absolute_error(predictions, actuals):
absolute_errors = [abs(p - a) for p, a in zip(predictions, actuals)]
return sum(absolute_errors) / len(absolute_errors)
MAE bestraft große Fehler, jedoch nicht so hart wie MSE. Ein Fehler von 10 kostet 10, und ein Fehler von 20 kostet 20. Wenn Ihre Daten von Natur aus einige Ausreißer enthalten und Sie nicht möchten, dass Ihr Modell überreagiert, ist MAE eine gute Wahl.
Kreuzentropie-Verlust
Bisher haben wir über die Vorhersage von Zahlen gesprochen. Viele maschinelle Lernprobleme drehen sich jedoch um die Vorhersage von Kategorien.
- Ist diese E-Mail Spam oder nicht?
- Ist dies ein Bild von einem Hund, einer Katze oder einem Fisch?
- Ist eine bestimmte Transaktion betrügerisch oder nicht?
Für Klassifikationsaufgaben geben Modelle normalerweise Wahrscheinlichkeiten aus, wie:
- Hund: 70%
- Katze: 20%
- Fisch: 10%
Wenn das Bild tatsächlich ein Hund ist, ist das eine gute Vorhersage. Wenn es jedoch eine Katze ist, muss das Modell bestraft werden, weil es der richtigen Antwort eine niedrigere Wahrscheinlichkeit zugewiesen hat.
Die Intuition lautet:
- Richtig und sicher — niedriger Verlust
- Richtig, aber unsicher — mittlerer Verlust
- Falsch und sicher — hoher Verlust
Aus diesem Grund ist die Kreuzentropie für Klassifikationen so weit verbreitet. Sie berücksichtigt nicht nur, ob das Modell richtig war, sondern auch, wie sicher das Modell war.
Verlust vs. Genauigkeit
Nachdem wir verschiedene Verlustfunktionen durchgegangen sind, möchte ich auch den Unterschied zwischen Verlust und Genauigkeit klären. Diese beiden Begriffe sind nicht dasselbe.
Die Genauigkeit sagt Ihnen, wie viele Vorhersagen korrekt waren. Der Verlust hingegen zeigt, wie schlecht die Fehler des Modells waren.
Wenn Sie zwei Modelle haben — Modell A und Modell B — und beide 90 von 100 Vorhersagen korrekt sind, haben sie die gleiche Genauigkeit. Aber eines der Modelle könnte bei den richtigen Antworten sehr zuversichtlich und nur geringfügig falsch bei den falschen Antworten sein, während das andere Modell bei vielen Beispielen kaum korrekt und extrem zuversichtlich bei den falschen Antworten ist.
In diesem Fall wäre die Genauigkeit gleich, aber der Verlust unterschiedlich.
Der Trainingsprozess
Sobald das Modell eine Verlustzahl hat, kann es sich verbessern. Der Trainingsprozess sieht folgendermaßen aus:
- Das Modell trifft Vorhersagen.
- Die Verlustfunktion misst die Fehler.
- Der Optimierer aktualisiert das Modell.
- Das Modell versucht es erneut.
- Der Verlust sollte hoffentlich kleiner werden.
Beim Training eines Modells wird auch der Verlust über die Zeit hinweg aufgezeichnet. Zu Beginn macht das Modell viele Fehler und ist schlecht in der Vorhersage, sodass der Verlust hoch ist. Mit fortschreitendem Training sinkt der Verlust, und das Modell wird besser in der Vorhersage.
Eine gesunde Trainingskurve sieht oft so aus:
- Hoher Verlust zu Beginn → schneller Rückgang → allmähliches Abflachen
Das Abflachen ist normal. Es bedeutet, dass das Modell die einfachen Muster gelernt hat und nun kleinere Verbesserungen erzielt. Wenn der Trainingsverlust jedoch sinkt, während der Validierungsverlust zu steigen beginnt, kann dies ein Warnsignal für Überanpassung sein — was bedeutet, dass das Modell die Trainingsdaten möglicherweise auswendig lernt, anstatt Muster zu lernen, die verallgemeinert werden können.
Fazit
Eine Verlustfunktion ist die Fehlerbewertung des Modells. Sie zeigt dem Modell, wie falsch seine Vorhersagen sind, und gibt dem Training ein klares Ziel: diesen Wert zu minimieren.
Sobald Sie Verlustfunktionen verstehen, werden viele andere Konzepte im maschinellen Lernen leichter verständlich — einschließlich Gradientenabstieg, Rückpropagation, Optimierung, Überanpassung und Bewertungsmetriken.
Sie müssen nicht mit beängstigenden Gleichungen beginnen. Beginnen Sie mit der Idee:
- Das Modell macht eine Schätzung.
- Die Verlustfunktion bewertet die Schätzung.
- Das Modell aktualisiert sich selbst, um die Bewertung zu reduzieren.
Das ist das Herzstück des maschinellen Lernens. Verlust ist, wie ein Modell erkennt, dass es falsch ist. Training ist, wie es lernt, weniger falsch zu sein.
Damit endet dieser Artikel. Wir werden weiterhin einige interessante Konzepte in unserer Serie behandeln.
Quellen: kdnuggets
Bildquelle: KI generiert
🚀