Przeuczenie (ang. overfitting) to sytuacja, w której model uczenia maszynowego dopasowuje się do danych treningowych tak dokładnie, że zamiast wychwytywać prawdziwe zależności, zaczyna „zapamiętywać” konkretne przykłady razem z ich szumem, błędami pomiarowymi i przypadkowymi odchyleniami. Efekt? Na zbiorze treningowym model osiąga rewelacyjne wyniki (czasem podejrzanie bliskie 100%), ale gdy pokażesz mu nowe, niewidziane dane, jego skuteczność potrafi spaść na pysk. Model nauczył się odpowiedzi na pamięć, a nie reguły, która za nimi stoi.
Jak to działa
Model ma do dyspozycji pewną „pojemność” — liczbę parametrów, którymi może opisać dane. Gdy ta pojemność jest zbyt duża w stosunku do ilości i jakości danych, model wykorzystuje nadmiar, żeby idealnie przejść przez każdy punkt treningowy. Wyobraź sobie, że zamiast narysować prostą linię trendu przez chmurę punktów, prowadzisz krzywą, która przechodzi dokładnie przez wszystkie — łącznie z tymi, które są ewidentnymi wyjątkami. Taka krzywa jest bezużyteczna do przewidywania czegokolwiek nowego.
Sygnał ostrzegawczy jest dość jednoznaczny: niski błąd na zbiorze treningowym przy wysokim błędzie na zbiorze walidacyjnym. To rozjeżdżanie się dwóch krzywych błędu w czasie treningu to klasyczny obraz przeuczenia. Przeuczenie to drugi biegun underfittingu (niedouczenia), gdzie model jest zbyt prosty, by w ogóle złapać wzorzec.
Przykład z praktyki
Trenujesz klasyfikator obrazów w scikit-learn albo sieć w PyTorch. Patrzysz na metryki i widzisz train_acc: 0.99, ale val_acc: 0.71. To nie sukces — to czerwona lampka. Co możesz zrobić:
- dorzucić regularyzację —
L2(weight decay) alboDropoutmiędzy warstwami; - zastosować early stopping, czyli przerwać trening, zanim błąd walidacyjny zacznie rosnąć;
- powiększyć zbiór przez data augmentation (obroty, przycięcia, szum);
- uprościć architekturę albo zebrać więcej danych.
W praktyce sprawdzasz to walidacją krzyżową (cross_val_score), a nie wynikiem na danych, które model już widział.
Częste błędy
Najgroźniejszy grzech to ocena modelu na danych treningowych i ogłaszanie sukcesu — to jak chwalić się, że zdałeś egzamin, którego pytania znałeś wcześniej. Drugi klasyk to data leakage: gdy informacje ze zbioru testowego przeciekają do treningu (np. normalizacja policzona na całym zbiorze przed podziałem). Wreszcie pamiętaj, że więcej epok i większy model to nie zawsze lepiej — często to prosta droga do przeuczenia.
Pojęcia powiązane
Warto skojarzyć przeuczenie z: underfitting, regularyzacja, dropout, early stopping, walidacja krzyżowa, bias-variance tradeoff, data augmentation oraz uogólnianie (generalization).