Przeuczenie

Sytuacja, gdy model za bardzo dopasowuje się do danych treningowych, ucząc się także szumu. Działa świetnie na danych treningowych, ale słabo na nowych.

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) albo Dropout mię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).