Bias-Variance Tradeoff
Der Bias-Varianz-Kompromiss zerlegt den erwarteten Vorhersagefehler in Bias, Varianz und Rauschen und erklärt, warum sowohl zu einfache als auch zu komplexe Modelle scheitern.
Der Bias-Varianz-Kompromiss beschreibt, wie sich der erwartete Fehler eines Modells bei neuen Daten in zwei Teile zerlegen lässt, die unterschiedlich auf die Modellkomplexität reagieren. Bias ist der Fehler, der durch zu einfache Annahmen entsteht, die das tatsächliche Muster nicht erfassen können, und zu Unteranpassung führen. Varianz ist der Fehler, der durch die Empfindlichkeit gegenüber den jeweiligen Trainingsdaten entsteht und zu Überanpassung führt. Ein flexibleres Modell senkt in der Regel den Bias und erhöht die Varianz, sodass der Gesamtfehler bei mittlerer Komplexität am niedrigsten ist. Stuart Geman, Elie Bienenstock und René Doursat führten das Konzept 1992 mit ihrer Arbeit „Neural Networks and the Bias/Variance Dilemma“ in das maschinelle Lernen ein.
Die Fehlerzerlegung#
Die Zerlegung betrachtet denselben Modelltyp, der viele Male trainiert wird – jedes Mal mit einem neuen Trainingsdatensatz aus derselben Quelle. Beim quadratischen Fehler zerfällt der erwartete Fehler an einer Eingabe exakt in drei Terme. Der quadrierte Bias ist die quadrierte Differenz zwischen dem Mittelwert der Vorhersagen über alle Trainingsdatensätze hinweg und dem tatsächlichen Wert. Eine lineare Regression, die an einen gekrümmten Zusammenhang angepasst wird, behält unabhängig von der Datenmenge einen hohen Bias. Die Varianz misst, wie stark die Vorhersagen von einem Trainingsdatensatz zum nächsten um ihren eigenen Mittelwert streuen. Sie ist bei tiefen Entscheidungsbäumen und großen, nicht regularisierten neuronalen Netzen hoch. Der dritte Term, das nicht reduzierbare Rauschen, ist die Zufälligkeit der Labels selbst, die kein Modell beseitigen kann.
Durch wiederholtes Anpassen lassen sich beide Terme direkt messen. Dieses NumPy-Beispiel passt Polynome des Grades 1, 3 und 12 an 1.000 Trainingsdatensätze mit je 20 verrauschten Punkten einer Sinuskurve an:
import numpy as np
rng = np.random.default_rng(0)
x = np.linspace(0, 1, 20) # 20 training inputs, evenly spaced
x_test = np.linspace(0, 1, 200)
true_curve = np.sin(2 * np.pi * x_test)
for degree in [1, 3, 12]:
# Fit the same polynomial degree to 1,000 training sets that differ only in their label noise
predictions = []
for _ in range(1000):
y = np.sin(2 * np.pi * x) + rng.normal(0, 0.3, x.size)
predictions.append(np.polyval(np.polyfit(x, y, degree), x_test))
predictions = np.array(predictions)
# Bias^2: squared gap between the average fit and the truth; variance: spread of fits around their average
bias_sq = np.mean((predictions.mean(axis=0) - true_curve) ** 2)
variance = np.mean(predictions.var(axis=0))
print(f"Degree {degree:2d}: bias^2 = {bias_sq:.3f}, variance = {variance:.3f}")Eine Gerade hat einen quadrierten Bias von 0.205 und eine Varianz von nur 0.008. Ein kubisches Polynom bildet die Sinuskurve im Mittel nahezu exakt ab, senkt den quadrierten Bias auf 0.005 und verdoppelt die Varianz auf 0.016. Ein Polynom 12. Grades hat keinen messbaren Bias, aber eine Varianz von 0.074, weil es sich an das Rauschen jeder Stichprobe anschmiegt. Das kubische Polynom hat den niedrigsten Gesamtfehler, und jedes Modell trägt außerdem die nicht reduzierbare Rauschvarianz von 0.09.
Bias und Varianz diagnostizieren#
Trainings- und Validierungsfehler zeigen, welcher Term überwiegt. Hohe Fehler bei beiden weisen auf Bias hin. Ein niedriger Trainingsfehler bei deutlich höherem Validierungsfehler weist auf Varianz hin. Lernkurven, die beide Fehler in Abhängigkeit von der Menge der Trainingsdaten darstellen, unterscheiden die beiden Fälle: Bei einem Modell mit hoher Varianz schrumpft die Lücke mit zunehmender Datenmenge, während sich die beiden Kurven bei einem Modell mit hohem Bias früh bei einem hohen Fehler treffen und dort bleiben. Beim Ultralytics-YOLO-Training trainiert das Argument fraction mit einem Teil der Trainingsaufteilung, etwa fraction=0.25 für das erste Viertel der Bilder, während die Validierung weiterhin die vollständige Validierungsaufteilung nutzt. So lassen sich mit einigen YOLO26-Läufen bei steigenden Datenanteilen Lernkurven für einen benutzerdefinierten Datensatz erstellen.
Den Kompromiss steuern#
Die Varianz sinkt durch mehr Daten, Datenerweiterung, Regularisierung wie Gewichtsabnahme und Dropout, vorzeitigen Abbruch und das Mitteln vieler Modelle, wie es Bagging und Random Forests tun. Der Bias sinkt durch ein größeres Modell, aufwendigere Merkmalsentwicklung, schwächere Regularisierung, längeres Training und Boosting, bei dem Modelle ergänzt werden, die die bisherigen Fehler des Ensembles korrigieren. Hyperparameteroptimierung und Kreuzvalidierung wählen anhand zurückgehaltener Daten die Einstellung, bei der die beiden Terme im Gleichgewicht sind.
Die klassische U-förmige Kurve des Testfehlers in Abhängigkeit von der Komplexität gilt für eine feste Modellfamilie, etwa Polynome mit steigendem Grad. Stark überparametrisierte neuronale Netze können darüber hinausgehen: Der Testfehler steigt, wenn sich ein Modell der Größe nähert, bei der es jeden Trainingspunkt exakt abbildet, und fällt anschließend mit weiterem Wachstum wieder. Dieses Muster heißt doppelter Abstieg. Bias und Varianz summieren sich weiterhin zum Fehler, aber die Varianz steigt nicht mehr gleichmäßig mit der Anzahl der Parameter.
Statistischer Bias und andere Arten von Bias#
Der Bias in diesem Kompromiss ist eine Eigenschaft eines Lernalgorithmus bei einer Aufgabe. Bias in KI bezeichnet systematische Benachteiligungen bestimmter Personengruppen; Datensatz-Bias bezeichnet Trainingsdaten, die die Einsatzumgebung falsch abbilden, etwa wenn es nur wenige Verkehrsaufnahmen bei Nacht gibt. Ein Modell kann einen niedrigen statistischen Bias haben und dennoch unfair sein, denn es kann einen verzerrten Datensatz präzise abbilden – einschließlich seiner Verzerrungen.










