Słownik AI

Przeuczenie – ang. Overfitting

Przeuczenie (Overfitting) – definicja i przykłady

Czym jest przeuczenie?

Przeuczenie to zjawisko występujące w modelach uczenia maszynowego, gdy algorytm uczy się danych treningowych z taką dokładnością, że traci zdolność do poprawnego działania na nowych, nieznanych przykładach. Model zapamiętuje drobne odchylenia, a nawet przypadkowy szum zapisany w zbiorze treningowym, co prowadzi do niskiego błędu na danych uczących i wysokiego na danych testowych. W efekcie przewidywania, które początkowo wyglądają imponująco, zawodzą w praktyce, gdy pojawia się konieczność uogólnienia wiedzy.

Geneza i rozwój pojęcia

Pojęcie przeuczenia nabrało znaczenia wraz z rozwojem statystycznej teorii uczenia w latach 70. XX wieku. W 1974 roku Stephen M. Stigler zwrócił uwagę na problem overfittingu w kontekście dopasowywania zbyt skomplikowanych modeli regresyjnych. W latach 90. termin zadomowił się w literaturze uczenia maszynowego dzięki pracom m.in. Toma M. Mitchella i Vladimira Vapnika, który pokazał matematyczne granice uogólniania przez pryzmat teorii VC. Od tego czasu przeuczenie pozostaje jednym z centralnych zagadnień projektowania modeli, od prostych drzew decyzyjnych po głębokie sieci neuronowe.

Jak dokładnie działa przeuczenie

Źródłem problemu jest zbyt duża liczba parametrów lub zbyt złożona struktura modelu w stosunku do ilości i jakości danych. Podczas treningu optymalizator minimalizuje funkcję straty, nie rozróżniając, czy redukuje błąd wynikający z ogólnych prawidłowości, czy też z przypadkowych fluktuacji. Jeśli model otrzyma za mało różnorodnych przykładów, zaczyna uczyć się specyfiki próbki, a nie populacji. W praktyce sygnalizuje to krzywa błędu: błąd treningowy systematycznie maleje, natomiast błąd walidacyjny po pewnym czasie rośnie. Rozbieżność między tymi krzywymi to wizualny znak przeuczenia.

Przykład

Wyobraźmy sobie sieć neuronową klasyfikującą zdjęcia liści gatunków drzew. Jeśli w zbiorze treningowym większość klonów sfotografowano na tle jasnego nieba, model może powiązać kolor tła z etykietą „klon” i błędnie klasyfikować zdjęcia klonu wykonane w cieniu. W tym scenariuszu sieć zapamiętała cechę przypadkową (jasne tło), zamiast skupić się na kształcie i użyłkowaniu liścia.

Zastosowania w praktyce

Świadomość przeuczenia prowadzi do rozwoju strategii zapobiegawczych. W projektach medycznych, gdzie każdy błąd ma realny wymiar kliniczny, wykorzystuje się walidację krzyżową, regularizację L1/L2 oraz ograniczanie liczby epok treningu. W systemach rekomendacyjnych popularne jest dodawanie szumu do wektorów użytkowników, aby wymusić uogólnianie. W branży finansowej stosuje się rozbudowane zestawy testów stabilności, które wykrywają zjawisko data snooping, ściśle powiązane z przeuczeniem.

Zalety i ograniczenia

Z pozoru może brzmieć paradoksalnie, ale zdolność modelu do dokładnego odwzorowania danych treningowych bywa przydatna. W generatywnych sieciach kontradykcyjnych (GAN) mocno dopasowany generator szybciej odtwarza złożone struktury obrazu. Z drugiej strony, gdy celem jest predykcja na przyszłych obserwacjach, przeuczenie staje się głównym ograniczeniem jakości rozwiązania. Ogranicza przenaszalność modelu między domenami, zwiększa ryzyko błędów, a w skrajnych przypadkach wprowadza uprzedzenia, które nie występowały w danych rzeczywistych.

Na co uważać?

Praktycy uczenia maszynowego powinni zwracać uwagę na trzy aspekty. Po pierwsze, rozmiar i reprezentatywność zbioru treningowego: zbyt wąska próbka sprzyja przeuczeniu. Po drugie, regularizację, która wprowadza ograniczenia na wagi lub strukturę, dzięki czemu model generalizuje. Po trzecie, rzetelny podział danych na część treningową, walidacyjną i testową, co pozwala w porę zidentyfikować rosnącą lukę między błędem uczącym a walidacyjnym.

Dodatkowe źródła

Osobom zainteresowanym pogłębieniem wiedzy polecam rozdział „Model Selection and Overfitting” w książce „Deep Learning” autorstwa Goodfellow, Bengio i Courville. Praktyczny przegląd technik regularyzacji znajduje się w artykule „Deep Learning Regularization Techniques”. Wprowadzenie statystyczne wraz z przykładami kodu można znaleźć w haśle Wikipedia – Przeuczenie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *