Regularyzacja

Zestaw technik ograniczających przeuczenie przez karanie nadmiernej złożoności modelu. Typowe metody to regularyzacja L1 i L2.

Regularyzacja (ang. regularization) to zbiór technik, które celowo dokładają modelowi uczenia maszynowego dodatkową „karę” za zbytnią złożoność, żeby przestał wkuwać dane treningowe na pamięć i zaczął faktycznie generalizować. Mówiąc wprost: walczysz z overfittingiem, czyli sytuacją, w której model genialnie radzi sobie na zbiorze treningowym, a na nowych danych zalicza glebę.

Mechanizm jest prosty w idei. Normalnie model minimalizuje funkcję straty (loss), np. błąd predykcji. Regularyzacja dokłada do tej funkcji dodatkowy składnik zależny od wielkości wag modelu. Im większe wagi, tym większa kara. Dzięki temu optymalizator woli „proste” rozwiązania z mniejszymi współczynnikami zamiast dopasowywać się do każdego szumu w danych.

Dwa klasyki to regularyzacja L2 (zwana Ridge lub weight decay) i regularyzacja L1 (Lasso). L2 dodaje karę proporcjonalną do sumy kwadratów wag, więc łagodnie ściąga wszystkie współczynniki w stronę zera, nie zerując ich całkiem. L1 karze sumę wartości bezwzględnych wag i ma fajną właściwość: potrafi wyzerować część współczynników na sztywno, robiąc przy okazji selekcję cech. Jest też Elastic Net, czyli mieszanka obu. Siłę kary reguluje hiperparametr — często oznaczany jako lambda albo (w scikit-learn) alpha.

Przykład z praktyki

W scikit-learn nie musisz niczego liczyć ręcznie. Zamiast zwykłej regresji liniowej bierzesz model z wbudowaną regularyzacją:

from sklearn.linear_model import Ridge; model = Ridge(alpha=1.0).fit(X_train, y_train)

Zwiększasz alpha — model robi się prostszy i bardziej odporny na overfitting, ale za mocno i zacznie underfittować (niedouczać się). W sieciach neuronowych częściej zobaczysz dropout (losowe wyłączanie neuronów podczas treningu) albo weight_decay w optymalizatorze, np. w PyTorchu: optim.Adam(model.parameters(), lr=1e-3, weight_decay=1e-4).

Na co uważać

Najczęstszy błąd to traktowanie regularyzacji jak magicznego przycisku „napraw model”. Jeśli model słabo działa, bo jest za prosty albo masz za mało danych, dokręcanie kary tylko pogorszy sprawę. Drugi klasyk: zapominanie o skalowaniu cech. L1 i L2 karzą wagi, a te zależą od skali danych — bez standaryzacji regularyzacja niesprawiedliwie zgniecie cechy o dużych wartościach. Wartość alpha dobieraj walidacją krzyżową, a nie na oko.

Pojęcia powiązane: overfitting i underfitting, bias-variance tradeoff, dropout, weight decay, walidacja krzyżowa (cross-validation), funkcja straty, Lasso i Ridge.