Overfitting
Overfitting (preučenie) je stav, keď sa AI model počas tréningu „naučí naspamäť" tréningové dáta až príliš dobre, vrátane šumu a náhodných detailov, a potom zlyháva pri generalizácii na nové, nevidené dáta. Výsledok: výborný výkon na tréningovej množine, slabší (alebo nestabilný) výkon v reálnej prevádzke.
1. Definícia
- Overfitting = vysoká presnosť na tréningu, nízka presnosť mimo tréningu.
- Typicky vzniká, keď je model príliš komplexný vzhľadom na množstvo/kvalitu dát, alebo keď je tréning nastavený tak, že model ide „na doraz" aj cez šum.
- Často sa opisuje v rámci bias–variance tradeoff:
- underfitting → vysoký bias (model je príliš jednoduchý),
- overfitting → vysoká variance (model je príliš citlivý na konkrétne tréningové dáta).
2. Ako to funguje / prečo k tomu dochádza
Overfitting vzniká, keď optimalizácia (napr. gradient descent) tlačí model k minimálnej chybe na tréningu a model si postupne začne:
- pamätať špecifické vzory z tréningových dát (napr. konkrétne pozadie na obrázkoch, opakujúce sa frázy v textoch),
- učiť sa šum (náhodné odchýlky, chyby v anotáciách, nekonzistentné štítky),
- zneužívať „skratky" (spurious correlations) – napr. „všetky fotky mačiek sú v interiéri, tak interiér = mačka".
Typický signál v tréningu:
- tréningová strata
train_lossďalej klesá, - validačná strata
val_losssa zastaví, začne rásť alebo kolísať, - metriky na validácii/teste stagnujú či padajú.
3. Hlavné prejavy, výhody a nevýhody
Ako to spoznáš v praxi:
- Veľká medzera medzi tréningovou a validačnou presnosťou (alebo F1, AUC…).
- Model je prehnane sebavedomý na tréningu, ale mimo tréningu robí „divné" chyby.
- Výkon silne závisí od konkrétneho splitu dát (raz super, raz katastrofa).
- Citlivosť na drobné zmeny vstupu (malý šum → iná predikcia).
Je na tom niečo „dobré"? Jediné pozitívum je, že overfitting často znamená, že model má kapacitu učiť sa zložité vzory. Problém je, že ich učí nesprávnym spôsobom – namiesto pravidiel sa učí výnimky.
Nevýhody:
- horšia generalizácia a robustnosť,
- krehké správanie v produkcii,
- riziko, že model „naberie" aj nežiaduce vzory (bias, leakage).
4. Najčastejšie príčiny
- Málo dát alebo slabá variabilita dát (málo príkladov „z reálneho sveta").
- Nekvalitné dáta (šum, chybné štítky, duplicity).
- Príliš veľký model (veľa parametrov) a dlhý tréning.
- Data leakage (únik informácie):
- rovnaké alebo veľmi podobné príklady v tréningu aj testovaní,
- nesprávne spravené normalizácie/feature engineering (napr. použitie informácie z budúcnosti).
- Nesprávny split (napr. časové dáta miešané náhodne namiesto „minulosť → budúcnosť").
5. Praktické riešenia (čo reálne funguje)
A) Lepšie dáta a správne vyhodnocovanie
- Použi kvalitný split:
train/validation/test(a test nech je naozaj posledný). - Pri časových dátach urob time-based split.
- Odhaľ duplicity a podobnosti (napr. takmer rovnaké fotky, rovnaké logy).
- Zaveď cross-validation, ak je dataset malý.
- Skontroluj data leakage (najčastejšia „tichá" príčina).
B) Zníženie kapacity / disciplína tréningu
- Zmenši model (menej vrstiev, menšie hidden dim).
- Early stopping podľa
val_loss(zastaviť tréning v bode, keď generalizácia prestáva rásť). - Zníž počet epoch alebo uprav learning rate schedule.
C) Regularizácia (klasika, ktorá často zachráni projekt)
- Weight decay (
L2 regularization) - Dropout
- Label smoothing (pri klasifikácii)
- Pridanie šumu do vstupov alebo skrytých vrstiev (noise injection)
D) Augmentácie a „rozšírenie" dát
- Obraz: rotácie, výrezy, zmeny svetla, šum…
- Text: opatrne – parafrázy, back-translation, ale s kontrolou kvality
- Pokročilé: Mixup / CutMix (hlavne v CV)
E) Triky pre LLM a fine-tuning
Pri fine-tuningu veľkých jazykových modelov je overfitting častý, lebo dataset býva malý.
- Drž si held-out eval (nepoužívaj ho na tréningové rozhodnutia okrem early stopping).
- Použi nižšiu learning rate, kratší tréning, prípadne LoRA s rozumným nastavením.
- Sleduj, či model nezačne „recitovať" tréningové odpovede doslova.
- Daj pozor na „memorization" citlivých dát (ak dataset obsahuje interné alebo osobné údaje).
Quick Reference
- Signál:
train_loss ↓aleval_loss ↑/stagnuje - Prvé kroky: skontrolovať split + leakage, zapnúť early stopping
- Najčastejšie fixy: viac/lepšie dáta, augmentácie, weight decay, dropout, menší model
Zhrnutie
- Overfitting je, keď model vyhrá tréning, ale prehrá realitu – učí sa šum a výnimky namiesto pravidiel.
- Najväčšie „zabijaky" sú málo dát, data leakage a príliš dlhý tréning/veľká kapacita.
- Najpraktickejšia obrana: správny split + leakage kontrola + early stopping + regularizácia + augmentácie.