Overfitting (pretrénovanie)
Čo je overfitting?
Overfitting (v slovenskom preklade pretrénovanie) je jav v strojovom učení, pri ktorom sa model príliš prispôsobí tréningovým dátam vrátane ich šumu a náhodných variácií. Takýto model dosahuje vynikajúce výsledky na tréningových dátach, ale zlyháva pri spracovaní nových, neznámych dát. Ide o jeden z najčastejších problémov pri trénovaní modelov strojového učenia.
Prečo k pretrénovaniu dochádza?
Pretrénovanie nastáva, keď je model príliš komplexný vzhľadom na množstvo a kvalitu dostupných tréningových dát. Model si namiesto rozpoznávania všeobecných vzorov zapamätá konkrétne príklady z tréningovej množiny. Medzi typické príčiny patrí nedostatočný objem tréningových dát, príliš dlhé trénovanie alebo použitie modelu s nadmerným počtom parametrov.
Preučený model sa správa podobne ako študent, ktorý sa naučí odpovede naspamäť bez pochopenia princípov – na skúške z rovnakých otázok uspeje, ale pri mierne odlišných formuláciách zlyhá.
Ako rozpoznať overfitting?
Typickým indikátorom pretrénovania je výrazný rozdiel medzi výkonnosťou modelu na tréningových a validačných dátach. Ak model na tréningových dátach dosahuje vysokú presnosť, ale na validačnej množine výrazne horšie výsledky, pravdepodobne ide o overfitting. Monitorovanie tréningovej a validačnej chyby počas učenia pomáha identifikovať moment, kedy sa generalizácia modelu začína zhoršovať.
…overfitting bol jedným z hlavných dôvodov, prečo sa hlboké neurónové siete dlho považovali za nepraktické, až kým sa neobjavili techniky ako dropout v roku 2012?
Techniky na predchádzanie pretrénovaniu
Regularizácia predstavuje súbor metód, ktoré penalizujú príliš komplexné modely. Techniky L1 a L2 regularizácie pridávajú k chybovej funkcii člen závislý od veľkosti váh modelu, čím podporujú jednoduchšie riešenia. Dropout počas trénovania náhodne vypína časť neurónov, čím núti sieť učiť sa robustnejšie a menej závislé reprezentácie.
Ďalšie prístupy zahŕňajú zväčšenie tréningovej množiny, augmentáciu dát, predčasné ukončenie trénovania alebo použitie jednoduchšej architektúry modelu. Krížová validácia pomáha objektívnejšie odhadnúť skutočnú generalizáciu modelu na nové dáta.
Overfitting verzus underfitting
Zatiaľ čo overfitting znamená príliš tesné prispôsobenie tréningovým dátam, underfitting (podtrénovanie) označuje opačný problém – model je príliš jednoduchý a nedokáže zachytiť ani základné vzory v dátach. Cieľom trénovania je nájsť rovnováhu medzi týmito dvoma extrémami, kde model dostatočne dobre generalizuje na nové dáta.
Zdroje a odkazy
Použité zdroje:
- Google Machine Learning Crash Course – Generalization and Overfitting: https://developers.google.com/machine-learning/crash-course/generalization
Odporúčané zdroje:
- Stanford University CS229 – Machine Learning Course Materials: https://cs229.stanford.edu
Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.