Czym jest Gradient boosting?
Gradient boosting to metoda uczenia maszynowego, która buduje silny model predykcyjny poprzez kolejno dodawane, stosunkowo proste modele zwane słabymi uczniami. Każdy z nich koryguje błędy poprzednika, a cały proces jest sterowany spadkiem gradientu funkcji straty, stąd nazwa techniki. W praktyce najczęściej rolę słabych uczniów pełnią płytkie drzewa decyzyjne, co pozwala łączyć intuicyjną interpretację drzew z wysoką dokładnością zespołu.
Krótka historia
Korzenie metody sięgają lat dziewięćdziesiątych XX w., kiedy Jerome Friedman, Trevor Hastie i Robert Tibshirani opisali ideę iteracyjnego udoskonalania klasyfikatorów. Kluczową publikacją stał się artykuł Friedmana „Greedy Function Approximation: A Gradient Boosting Machine” z 1999 r., opublikowany w Annals of Statistics. Od tego czasu technikę rozwijano w wielu ośrodkach akademickich i firmach technologicznych, prowadząc do powstania bibliotek takich jak XGBoost (2016), LightGBM czy CatBoost, które znacząco ułatwiają trening i optymalizację modeli.
Jak dokładnie działa Gradient boosting
Uczenie rozpoczyna się od stworzenia pierwszego, bardzo prostego modelu, który zazwyczaj zwraca średnią lub medianę wartości docelowej. Kolejne modele trenowane są na podstawie tzw. reszt, czyli różnic pomiędzy przewidywaniami zespołu a rzeczywistymi etykietami. Kierunek poprawy wyznacza gradient funkcji straty, dlatego każdy następny słaby uczeń minimalizuje najbardziej uciążliwe błędy poprzedników. W rezultacie powstaje addytywna kombinacja drzew, która precyzyjnie przybliża zależność między cechami a zmienną wyjściową przy jednoczesnym ograniczaniu przeuczenia dzięki regularizacji, losowemu podpróbkowaniu danych czy przycinaniu głębokości drzew.
Zastosowania w praktyce
Gradient boosting zdobył uznanie w zadaniach klasyfikacji binarnej, wieloklasowej i regresji. Banki wykorzystują go do wykrywania nadużyć finansowych, sklepy internetowe do prognozowania koszyków zakupowych, a biolodzy molekularni do przewidywania aktywności związków chemicznych. W konkursach platformy Kaggle zespoły oparte na bibliotekach XGBoost czy LightGBM regularnie zajmują czołowe miejsca, co świadczy o konkurencyjności tej metody względem sieci neuronowych tam, gdzie dane mają formę tablicową.
Zalety i ograniczenia
Modele gradient boosting wyróżniają się wysoką dokładnością przy umiarkowanych kosztach obliczeniowych oraz wbudowaną obsługą braków danych. Dostarczają także istotnych miar ważności cech, co ułatwia interpretację wyników. Z drugiej strony, staranne strojenie hiperparametrów, np. głębokości drzew, tempa uczenia czy liczby iteracji, bywa czasochłonne. Wrażliwość na dane odstające i możliwość przeuczenia wymagają stosowania walidacji krzyżowej i regularizacji.
Na co uważać?
Podczas treningu warto monitorować różnicę pomiędzy błędem na zbiorach uczącym i walidacyjnym. Gwałtowny spadek błędu na danych treningowych przy stagnacji lub wzroście na walidacyjnych sygnalizuje przeuczenie. Przy dużych, niespójnych zbiorach danych zaleca się stratyfikowane próbkowanie oraz analizę wpływu hiperparametrów na stabilność wyników. Ponadto, mimo rosnącego wsparcia sprzętowego, bardzo duże zbiory mogą wymagać dystrybucji obliczeń na klastrach.
Dodatkowe źródła
Szczegółowy opis algorytmu znajduje się w artykule Jeroma Friedmana Greedy Function Approximation: A Gradient Boosting Machine. Podstawowe informacje można znaleźć na Wikipedii, a przykłady implementacji w bibliotece XGBoost. Warto również przejrzeć przeglądowe opracowanie arXiv:1907.08610, które porównuje GBM z alternatywnymi metodami ensemble.


