Underfitting
Underfitting liegt vor, wenn ein Modell zu einfach oder unzureichend trainiert ist, um die Muster in seinen Daten zu erfassen. Dadurch macht es sowohl bei den Trainingsdaten als auch bei neuen Daten Fehler. Behandelt werden Anzeichen und Abhilfen.
Unteranpassung liegt vor, wenn ein Modell des maschinellen Lernens (ML) die Muster in seinen Trainingsdaten nicht erfasst und deshalb sowohl bei den gelernten als auch bei neuen Beispielen große Fehler macht. Ein klassisches Beispiel ist eine Gerade, die durch Punkte gelegt wird, die einer Kurve folgen – wie bei einer einfachen linearen Regression: Keine Wahl von Steigung und Achsenabschnitt kann dem Kurvenverlauf folgen. Ein Modell mit Unteranpassung hat eine hohe Verzerrung. Das bedeutet, seine Annahmen sind für den tatsächlichen Zusammenhang zwischen Eingaben und Ausgaben zu einschränkend. Daher ist seine Genauigkeit sowohl beim Training als auch bei Testdaten gering.
Anzeichen für Unteranpassung#
Das deutlichste Anzeichen ist ein dauerhaft hoher Trainingsverlust. Wenn das Verlustfunktion-Plateau deutlich über einem akzeptablen Wert liegt und der Verlust auf den Validierungsdaten nahe daran bleibt, lernt das Modell nicht genug. Der geringe Abstand zwischen beiden zeigt, dass Auswendiglernen nicht das Problem ist. Lernkurven, die den Fehler in Abhängigkeit von der Größe des Trainingssatzes darstellen, zeigen ein weiteres Anzeichen: Beide Kurven flachen bei einem hohen Fehler ab, sodass zusätzliche gleichartige Daten kaum helfen. Bei der Objekterkennung deutet ein niedriger Wert für die mittlere durchschnittliche Präzision (mAP) auf genau den Bildern, mit denen das Modell trainiert wurde, auf Unteranpassung hin. Dies ist eine der Prüfungen im Ultralytics-Leitfaden zum Testen von Modellen. Durch den Vergleich beider Verluste lässt sich Unteranpassung von Überanpassung unterscheiden:
Häufige Ursachen#
- Zu geringe Modellkapazität: Die Modellfamilie kann das Muster nicht darstellen, etwa ein lineares Modell bei gekrümmten Daten oder ein sehr kleines Netzwerk bei einer komplexen Vision-Aufgabe.
- Zu wenige Epochen: Wird das Training vorzeitig beendet oder eine zu geringe Lernrate verwendet, um in der verfügbaren Zeit Fortschritte zu erzielen, stoppt der Optimierer, bevor er konvergiert.
- Zu starke Regularisierung: Starke Gewichtsabnahme, hohe Dropout-Raten oder sehr aggressive Datenerweiterung schränken das Modell so stark ein, dass es das Signal nicht erfassen kann.
- Wenig aussagekräftige Merkmale: Fehlende Variablen oder Bilder, die so weit verkleinert wurden, dass kleine Objekte verschwinden, nehmen dem Modell benötigte Informationen.
- Verschwindende Gradienten und andere Optimierungsprobleme: Frühe Schichten eines tiefen Netzwerks hören auf zu lernen, obwohl das Modell genügend Kapazität hat.
Unteranpassung im Code#
Das folgende Beispiel passt mit scikit-learn eine Gerade und ein Polynom dritten Grades an verrauschte Stichproben einer Sinuskurve an und gibt anschließend den mittleren quadratischen Fehler (MSE) bei den Trainings- und Testpunkten aus:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures
# Noisy samples of a curved function
rng = np.random.default_rng(0)
x = rng.uniform(-3, 3, size=(200, 1))
y = np.sin(x).ravel() + rng.normal(0, 0.1, size=200)
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)
# A straight line underfits; a cubic polynomial has enough capacity for the curve
for degree in (1, 3):
model = make_pipeline(PolynomialFeatures(degree), LinearRegression()).fit(x_train, y_train)
train_mse = mean_squared_error(y_train, model.predict(x_train))
test_mse = mean_squared_error(y_test, model.predict(x_test))
print(f"degree {degree}: train MSE {train_mse:.3f}, test MSE {test_mse:.3f}")Die Gerade erreicht einen Trainings-MSE von 0,193 und einen Test-MSE von 0,188. Beide Werte sind hoch und nahezu gleich – das ist das typische Anzeichen für Unteranpassung. Beim Polynom dritten Grades sinken beide Werte auf 0,013 und 0,017 und liegen damit nahe am durch das hinzugefügte Rauschen bedingten Mindestwert von 0,010.
Unteranpassung beheben#
Die Maßnahmen richten sich nach der Ursache: ein größeres oder ausdrucksstärkeres Modell, längeres Training mit einer geeigneten Lernrate, schwächere Regularisierung oder Datenerweiterung sowie aussagekräftigere Eingaben wie eine höhere Bildauflösung. YOLO26 ist in den Größen n, s, m, l und x erhältlich, die Tiefe und Breite einer einzigen Architektur skalieren. Der Wechsel von yolo26n.pt zu einer größeren Größe ist daher meist der erste Schritt, wenn Trainings- und Validierungsverluste im results.csv eines Laufs beide hoch bleiben. Kleine Objekte sind ein häufiger Sonderfall in der Computer Vision: Ein Detektor, der Drohnenaufnahmen mit einer niedrigen Eingabegröße verarbeitet, übersieht kleine Objekte, die bei einer höheren Eingabegröße erhalten blieben.
Unteranpassung im Vergleich zu Überanpassung#
Unteranpassung und Überanpassung sind die beiden Fehlermodi des Bias-Varianz-Kompromisses. Ein Modell mit Unteranpassung hat eine hohe Verzerrung und macht bei Trainingsdaten und neuen Daten ähnliche Fehler. Ein Modell mit Überanpassung hat eine hohe Varianz: Es passt sich einschließlich des Rauschens eng an seine Trainingsdaten an und lässt sich schlecht verallgemeinern. Das klassische Bild zeigt eine U-förmige Kurve des Testfehlers: Unteranpassung liegt links, Überanpassung rechts. Große neuronale Netze erschweren dieses Bild durch doppelten Abstieg: Der Testfehler kann erneut sinken, sobald ein Modell groß genug ist, seine Trainingsdaten exakt anzupassen. Dieses Muster wurde bei unterschiedlichen Modellgrößen und Trainingsdauern beobachtet.










