Wzmocnienie gradientu
Część serii poświęconej |
uczeniu maszynowemu i eksploracji danych |
---|
Wzmocnienie gradientu to technika uczenia maszynowego wykorzystywana między innymi w zadaniach regresji i klasyfikacji . Daje model predykcyjny w postaci zespołu słabych modeli predykcyjnych, które zazwyczaj są drzewami decyzyjnymi . Kiedy drzewo decyzyjne jest słabym uczniem, wynikowy algorytm nazywany jest drzewami wzmocnionymi gradientem; zwykle przewyższa losowy las . Model drzew wzmocnionych gradientem jest budowany etapami, podobnie jak w przypadku innych wzmocnień metod, ale uogólnia inne metody, umożliwiając optymalizację dowolnej różniczkowalnej funkcji straty .
Historia
Pomysł wzmacniania gradientu zrodził się z obserwacji Leo Breimana , że wzmacnianie można interpretować jako algorytm optymalizacji na odpowiedniej funkcji kosztu. Jawne algorytmy wzmacniania gradientu regresji zostały następnie opracowane przez Jerome'a H. Friedmana , jednocześnie z bardziej ogólną perspektywą wzmacniania gradientu funkcjonalnego Llew Masona, Jonathana Baxtera, Petera Bartletta i Marcusa Freana. W dwóch ostatnich artykułach przedstawiono pogląd na algorytmy wzmacniające jako iteracyjne zejście gradientu funkcjonalnego algorytmy. To znaczy algorytmy, które optymalizują funkcję kosztu w przestrzeni funkcyjnej, wybierając iteracyjnie funkcję (słaba hipoteza), która wskazuje ujemny kierunek gradientu. Ten funkcjonalny gradientowy pogląd na wzmacnianie doprowadził do rozwoju algorytmów wzmacniania w wielu obszarach uczenia maszynowego i statystyki poza regresją i klasyfikacją.
Nieformalne wprowadzenie
(Ta sekcja jest zgodna z opisem wzmacniania gradientu przez Chenga).
Podobnie jak inne metody wzmacniania, wzmacnianie gradientowe łączy słabych „uczniów” w jednego silnego ucznia w iteracyjny sposób. Najłatwiej to wyjaśnić w regresji metodą kwadratów , gdzie celem „nauczenie” modelu przewidywania wartości postaci minimalizując błąd średniokwadratowy gdzie indeksy na pewnym zbiorze treningowym rzeczywistych wartości zmiennej wyjściowej :
- przewidywana wartość
- obserwowana wartość
- liczba próbek w
Rozważmy teraz algorytm zwiększania gradientu . Na każdym etapie zwiększania gradientu załóżmy, że jakiś niedoskonały model (dla niskiego m {\ Displaystyle M}} 1 M , ten model może po prostu zwrócić , gdzie RHS jest średnią ). Aby nowy _ Zatem,
lub równoważnie,
- .
Dlatego wzmocnienie gradientu będzie pasować { \ . Podobnie jak w innych wariantach wzmacniania, każdy poprawić błędy swojego poprzednika. } Uogólnienie tego pomysłu na funkcje strat inne niż błąd kwadratowy i na problemów klasyfikacji i rankingu z obserwacji, że reszty modelu są proporcjonalne do ujemnych gradientów (MSE funkcja (w odniesieniu do ):
- .
Tak więc wzmacnianie gradientu może być wyspecjalizowane w algorytmie opadania gradientu , a uogólnienie go pociąga za sobą „podłączenie” innej straty i jej gradientu.
Algorytm
W wielu problemach uczenia nadzorowanego istnieje zmienna wyjściowa y i wektor zmiennych wejściowych x , powiązanych ze sobą pewnym rozkładem probabilistycznym. Celem znalezienie jakiejś funkcji zmienną wyjściową z wartości zmiennych Jest to sformalizowane przez wprowadzenie pewnej funkcji straty i minimalizując go w oczekiwaniu:
- .
Metoda wzmacniania gradientu zakłada wartość rzeczywistą y . Poszukuje przybliżenia w postaci sumy ważonej x ) x niektóre klasy , zwane podstawowymi (lub słabymi ) uczniami:
- .
Zwykle otrzymujemy zbiór uczący znanych przykładowych wartości x i odpowiadających im wartości y . Zgodnie z empiryczną zasadą minimalizacji ryzyka , metoda próbuje znaleźć przybliżenie minimalizuje średnią wartość funkcji straty na zbiorze treningowym, tj. minimalizuje ryzyko empiryczne. Robi to, zaczynając od modelu składającego się ze stałej funkcji i stopniowo rozszerza ją w zachłanny sposób:
- ,
- ,
dla , gdzie jest podstawową funkcją uczącą
Niestety, wybór najlepszej funkcji na każdym kroku dla dowolnej funkcji straty jest ogólnie niewykonalnym obliczeniowo problemem Dlatego ograniczamy nasze podejście do uproszczonej wersji problemu.
Chodzi o to, aby zastosować najbardziej stromy krok zejścia do tego problemu minimalizacji (funkcjonalne zejście gradientu).
Podstawową ideą najbardziej stromego spadku jest znalezienie lokalnego minimum funkcji straty przez iterację po . . W rzeczywistości lokalny kierunek maksymalnego spadku funkcji strat jest gradientem ujemnym.
Stąd przesunięcie o niewielką wartość tak, aby przybliżenie liniowe pozostało ważne:
gdzie . γ oznacza to, że .
Dowód postaci funkcjonalnej pochodnej
|
---|
Aby udowodnić następujące twierdzenie, rozważ cel
Dokonywanie rozwinięcia Taylora do pierwszego rzędu Teraz różnicując drugiego . Jest to kierunek najbardziej stromego wzniesienia, dlatego musimy poruszać się w przeciwnym (tj. ujemnym) kierunku, aby poruszać się w kierunku najbardziej stromego zejścia. |
Ponadto możemy zoptymalizować , znajdując wartość, dla której funkcja straty ma minimum:
Gdybyśmy rozważyli przypadek ciągły, tj. gdzie jest zbiorem dowolnych funkcji różniczkowalnych na zaktualizowalibyśmy model zgodnie z następujące równania
gdzie jest długością kroku, zdefiniowaną jako.
Wejście: zestaw treningowy różniczkowalna funkcja straty liczba iteracji M .
Algorytm:
- Zainicjuj model stałą wartością:
- Dla m = 1 do M :
- Obliczamy tak zwane pseudoreszty :
- Dopasuj podstawowego ucznia (lub słabego ucznia, np. Drzewo) zamkniętego pod skalowaniem . wytrenuj go za pomocą zestawu .
- Oblicz mnożnik
- Zaktualizuj model:
- Obliczamy tak zwane pseudoreszty :
- Wyjście
Wzmocnienie drzewa gradientu
Wzmocnienie gradientu jest zwykle używane z drzewami decyzyjnymi (zwłaszcza CART ) o stałym rozmiarze jako podstawowymi uczniami. W tym szczególnym przypadku Friedman proponuje modyfikację metody wzmacniania gradientu, która poprawia jakość dopasowania każdego podstawowego ucznia.
na m -tym kroku pasowałoby do drzewa decyzyjnego -reszt Niech liczbą jego Drzewo dzieli przestrzeń wejściową na rozłączne regiony i przewiduje stałą wartość w każdym regionie. Używając notacji wskaźnika , wynik dla wejścia x można zapisać jako sumę:
gdzie jest wartością przewidywaną w regionie {
Następnie współczynniki się przez pewną wartość, liniowego, aby zminimalizować funkcję straty, a model jest aktualizowany jako b jot m co następuje:
tak, aby wybierał oddzielną optymalną wartość dla każdego z regionów drzewa, zamiast pojedynczego dla całego drzewa. Zmodyfikowany algorytm nazywa „TreeBoost”. Współczynniki z procedury dopasowywania drzewa można następnie po prostu odrzucić, a reguła aktualizacji modelu przyjmuje postać:
Rozmiar drzew
, liczba węzłów końcowych w drzewach, to parametr metody, który można dostosować do dostępnego zestawu danych. Kontroluje maksymalny dozwolony poziom interakcji między zmiennymi w modelu. Z pniaki decyzyjne między zmiennymi . W przypadku obejmować efekty interakcji między maksymalnie dwiema zmiennymi i tak dalej
Hastie i in. skomentuj że zazwyczaj na wybór w tym zakresie, niewystarczający dla wielu zastosowań i jest mało , aby był
Regularyzacja
Zbyt ścisłe dopasowanie zbioru uczącego może prowadzić do pogorszenia zdolności generalizacji modelu. Kilka tak zwanych technik regularyzacji zmniejsza ten efekt nadmiernego dopasowania poprzez ograniczenie procedury dopasowania.
Jednym z naturalnych parametrów regularyzacji jest liczba iteracji wzmacniania gradientu M (tj. liczba drzew w modelu, gdy podstawowym uczniem jest drzewo decyzyjne). Zwiększenie M zmniejsza błąd na zbiorze treningowym, ale ustawienie go zbyt wysoko może prowadzić do przeuczenia. Optymalna wartość M jest często wybierana przez monitorowanie błędu przewidywania na oddzielnym zbiorze danych walidacyjnych. Oprócz kontrolowania M stosuje się kilka innych technik regularyzacji.
Kolejnym parametrem regularyzacji jest głębokość drzew. Im wyższa ta wartość, tym większe prawdopodobieństwo, że model przetrenuje dane treningowe.
Kurczenie się
Ważną częścią metody wzmacniania gradientu jest regularyzacja przez skurcz, która polega na zmodyfikowaniu reguły aktualizacji w następujący sposób:
gdzie parametr nazywany jest „szybkością uczenia się
Empirycznie stwierdzono, że stosowanie małych współczynników uczenia się (takich jak ) daje radykalną poprawę uogólniania modeli w porównaniu ze zwiększaniem gradientu bez kurczenia się ( ). Jednak odbywa się to kosztem wydłużenia czasu obliczeń zarówno podczas szkolenia, jak i zapytań : niższy wskaźnik uczenia wymaga większej liczby iteracji.
Wzmocnienie gradientu stochastycznego
Wkrótce po wprowadzeniu wzmacniania gradientu Friedman zaproponował niewielką modyfikację algorytmu, motywowaną metodą agregacji bootstrap Breimana („bagging”). W szczególności zaproponował, aby w każdej iteracji algorytmu podstawowy uczeń pasował do losowo wylosowanej bez zwracania podpróby zestawu szkoleniowego. Dzięki tej modyfikacji Friedman zaobserwował znaczną poprawę dokładności zwiększania gradientu.
Wielkość podpróbki to pewien stały ułamek wielkości zbioru Kiedy algorytmem opisanym powyżej. Mniejsze wartości do algorytmu i pomagają zapobiegać dopasowaniu , działając jako rodzaj regularyzacji . Algorytm staje się również szybszy, ponieważ drzewa regresji muszą być dopasowane do mniejszych zbiorów danych w każdej iteracji. Friedman uzyskał, że prowadzi do dobrych wyników dla małych i średnich zestawów treningowych. Dlatego , co oznacza, że połowa zestawu szkoleniowego jest używana do zbudowania każdego podstawowego ucznia
Podobnie jak w przypadku workowania, podpróbkowanie umożliwia zdefiniowanie błędu out-of-bag poprawy wydajności prognozy poprzez ocenę prognoz dotyczących tych obserwacji, które nie zostały wykorzystane w budowaniu następnego podstawowego ucznia. Gotowe oszacowania pomagają uniknąć konieczności posiadania niezależnego zbioru danych do walidacji, ale często niedoszacują faktycznej poprawy wydajności i optymalnej liczby iteracji.
Liczba obserwacji w liściach
Implementacje wzmacniające drzewa gradientowe często również wykorzystują regularyzację, ograniczając minimalną liczbę obserwacji w węzłach końcowych drzew. Jest używany w procesie budowania drzewa poprzez ignorowanie wszelkich podziałów, które prowadzą do węzłów zawierających mniej niż ta liczba instancji zbioru uczącego.
Nałożenie tego limitu pomaga zmniejszyć wariancję prognoz na liściach.
Penalizuj złożoność drzewa
Inną użyteczną techniką regularyzacji dla drzew wzmocnionych gradientem jest karanie złożoności modelu wyuczonego. Złożoność modelu można określić jako proporcjonalną liczbę liści w wyuczonych drzewach. Łączna optymalizacja strat i złożoności modelu odpowiada algorytmowi post-przycinania w celu usunięcia gałęzi, które nie zmniejszają strat o próg. Można również dodać inne rodzaje regularyzacji, takie jak kara za wartości aby przeuczenia .
Stosowanie
Gradient boosting może być wykorzystany w nauce rangowania . Komercyjne wyszukiwarki internetowe Yahoo i Yandex wykorzystują warianty zwiększania gradientu w swoich silnikach rankingowych uczących się maszynowo. Wzmocnienie gradientu jest również wykorzystywane w fizyce wysokich energii w analizie danych. W Wielkim Zderzaczu Hadronów (LHC) warianty głębokich sieci neuronowych (DNN) ze wzmacnianiem gradientu z powodzeniem odtwarzały wyniki metod analizy niezwiązanych z uczeniem maszynowym na zestawach danych używanych do odkrywania bozonu Higgsa . Drzewo decyzyjne wzmacniające gradient znalazło również zastosowanie w badaniach ziemnych i geologicznych – np. ocena jakości złoża piaskowcowego.
Nazwy
Metoda ma różne nazwy. Friedman przedstawił swoją technikę regresji jako „Gradient Boosting Machine” (GBM). Mason, Baxter i in. opisał uogólnioną abstrakcyjną klasę algorytmów jako „funkcjonalne wzmacnianie gradientu”. Friedmana i in. opisać postęp modeli wzmocnionych gradientem jako drzewa regresji wielokrotnej addytywnej (MART); Elith i in. opisują to podejście jako „Boosted Regression Trees” (BRT).
Popularna implementacja open source dla języka R nazywa to „uogólnionym modelem wspomagania”, jednak pakiety rozszerzające tę pracę używają BRT. Jeszcze inna nazwa to TreeNet, po wczesnej komercyjnej implementacji Dana Steinberga z Salford System, jednego z badaczy, którzy byli pionierami w stosowaniu metod opartych na drzewach. XGBoost to kolejna popularna nowoczesna implementacja metody z pewnymi rozszerzeniami, takimi jak optymalizacja drugiego rzędu.
Niedogodności
Podczas gdy wzmacnianie może zwiększyć dokładność podstawowego elementu uczącego, takiego jak drzewo decyzyjne lub regresja liniowa, poświęca zrozumiałość i interpretowalność . Na przykład podążanie ścieżką, którą podąża drzewo decyzyjne, aby podjąć decyzję, jest trywialne i oczywiste, ale podążanie ścieżkami setek lub tysięcy drzew jest znacznie trudniejsze. Aby osiągnąć zarówno wydajność, jak i interpretowalność, niektóre techniki kompresji modeli umożliwiają przekształcenie XGBoost w pojedyncze drzewo decyzyjne „narodzone na nowo”, które przybliża tę samą funkcję decyzyjną. Ponadto jego implementacja może być utrudniona ze względu na większe zapotrzebowanie obliczeniowe.
Zobacz też
Dalsza lektura
- Boehmke, Bradley; Greenwell, Brandon (2019). „Wzmocnienie gradientu”. Praktyczne uczenie maszynowe z R . Chapmana i Halla. s. 221–245. ISBN 978-1-138-49568-5 .