Wzmocnienie gradientu - Gradient boosting

Gradient pobudzanie jest uczenie maszynowe technika regresji , klasyfikacji i innych zadań, które produkuje modelu predykcji w postaci zespołu słabych modeli predykcyjnych, zwykle drzewa decyzyjne . Gdy drzewo decyzyjne jest słabym uczniem, powstały algorytm nazywa się drzewami wzmacnianymi gradientem, które zwykle przewyższają losowy las . Buduje model etapowo, tak jak robią to inne metody wzmacniające , i uogólnia je, umożliwiając optymalizację dowolnej różniczkowalnej funkcji straty .

Historia

Idea wzmacniania gradientu zrodziła się z obserwacji Leo Breimana, że wzmacnianie może być interpretowane jako algorytm optymalizacji odpowiedniej funkcji kosztu. Wyraźne algorytmy wzmacniania gradientem regresji zostały następnie opracowane przez Jerome'a ​​H. Friedmana , jednocześnie z bardziej ogólną perspektywą funkcjonalnego wzmacniania gradientem Llew Masona, Jonathana Baxtera, Petera Bartletta i Marcusa Freana. W dwóch ostatnich artykułach przedstawiono pogląd na algorytmy wzmacniające jako iteracyjne algorytmy funkcjonalnego spadku gradientu . To znaczy algorytmy, które optymalizują funkcję kosztu w przestrzeni funkcji przez iteracyjne wybieranie funkcji (hipoteza słaba), która wskazuje w kierunku gradientu ujemnego. Ten funkcjonalny, gradientowy widok wzmacniania doprowadził do rozwoju algorytmów wzmacniania w wielu obszarach uczenia maszynowego i statystyki, poza regresją i klasyfikacją.

Nieformalne wprowadzenie

(Ta sekcja jest następująca po przedstawieniu zwiększania gradientu przez Li.)

Podobnie jak inne metody wzmacniania, wzmacnianie gradientem łączy słabych „uczących się” w jednego silnego ucznia w sposób iteracyjny. Najłatwiej to wyjaśnić w ustawieniu regresji najmniejszych kwadratów , gdzie celem jest „nauczenie” modelu przewidywania wartości formularza poprzez zminimalizowanie błędu średniokwadratowego , gdzie indeksy w pewnym zbiorze uczącym wielkości rzeczywistych wartości danych wyjściowych zmienna :

  • przewidywana wartość
  • obserwowana wartość
  • liczba próbek w

Rozważmy teraz algorytm zwiększania gradientu ze stopniami. Na każdym etapie ( ) wzmacniania gradientu, załóżmy jakiś niedoskonały model (dla low model ten może po prostu zwrócić , gdzie RHS jest średnią z ). Aby ulepszyć , nasz algorytm powinien dodać nowy estymator, . Zatem,

lub równoważnie

.

Dlatego zwiększanie gradientu będzie pasować h do rezydualnego . Podobnie jak w innych wariantach dopalających, każdy próbuje poprawić błędy poprzednika . Uogólnienie tego pomysłu na funkcje straty inne niż błąd kwadratowy oraz problemy klasyfikacji i rankingu wynika z obserwacji, że reszty dla danego modelu są proporcjonalnie równoważne do ujemnych gradientów funkcji straty średniokwadratowego błędu (MSE) (w odniesieniu do do ):

.

Tak więc zwiększanie gradientu może być wyspecjalizowane w algorytmie zniżania gradientu , a uogólnienie go pociąga za sobą „podłączenie” innej straty i jej gradientu.

Algorytm

W wielu nadzorowanych problemach uczenia się występuje zmienna wyjściowa y oraz wektor zmiennych wejściowych x , powiązane ze sobą pewnym rozkładem probabilistycznym. Celem jest znalezienie funkcji, która najlepiej przybliża zmienną wyjściową z wartości zmiennych wejściowych. Jest to sformalizowane poprzez wprowadzenie pewnej funkcji straty i jej minimalizację:

.

Metoda wzmacniania gradientu zakłada wartość rzeczywistą y i szuka przybliżenia w postaci ważonej sumy funkcji z pewnej klasy , zwanych bazowymi (lub słabymi ) uczącymi się:

.

Zwykle otrzymujemy zestaw uczący znanych wartości próbek x i odpowiadających im wartości y . Zgodnie z empiryczną zasadą minimalizacji ryzyka metoda stara się znaleźć przybliżenie, które minimalizuje średnią wartość funkcji straty na zbiorze uczącym, czyli minimalizuje ryzyko empiryczne. Robi to, zaczynając od modelu składającego się ze stałej funkcji i stopniowo rozszerzając go w zachłanny sposób:

,
,

gdzie jest podstawowa funkcja ucznia.

Niestety, wybór najlepszej funkcji h na każdym etapie dla dowolnej funkcji straty L jest ogólnie niewykonalnym obliczeniowo problemem optymalizacji. Dlatego ograniczamy nasze podejście do uproszczonej wersji problemu.

Pomysł polega na zastosowaniu najbardziej stromego stopnia zejścia do tego problemu minimalizacji (funkcjonalne zejście gradientowe).

Podstawową ideą najbardziej stromego zejścia jest znalezienie lokalnego minimum funkcji straty przez iterację na . W rzeczywistości można udowodnić, że kierunek maksymalizacji (najsilniejsza ujemna pochodna) funkcji straty do lokalnego minimum wzdłuż tej funkcji jest odejmowany przez sam gradient funkcji straty. Stąd:



Gdzie . Oznacza to: .


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 zbiór dowolnych funkcji różniczkowalnych na , zaktualizowalibyśmy model zgodnie z następującymi równaniami

Gdzie:

gdzie pochodne są brane w odniesieniu do funkcji dla , i jest długością kroku. Jednak w przypadku dyskretnym, tj. gdy zbiór jest skończony, wybieramy funkcję kandydującą h najbliższą gradientowi L, dla której współczynnik γ można następnie obliczyć za pomocą wyszukiwania liniowego na powyższych równaniach. Zauważ, że to podejście jest heurystyczne i dlatego nie daje dokładnego rozwiązania danego problemu, ale raczej przybliżenie. W pseudokodzie ogólna metoda zwiększania gradientu to:

Dane wejściowe: zestaw uczący różniczkowalną funkcję straty liczba iteracji M .

Algorytm:

  1. Zainicjuj model ze stałą wartością:
  2. Dla m = 1 do M :
    1. Oblicz tzw. pseudoreszt :
    2. Dopasuj uczącego się podstawowego (lub uczącego słabego, np. drzewo) zamkniętego pod skalowaniem do pseudoreszt, tj. wytrenuj go za pomocą zestawu uczącego .
    3. Oblicz mnożnik , rozwiązując następujący problem optymalizacji jednowymiarowej :
    4. Zaktualizuj model:
  3. Wyjście

Wzmocnienie drzewa gradientowego

Wzmacnianie gradientowe jest zwykle stosowane z drzewami decyzyjnymi (zwłaszcza drzewami CART ) o ustalonym rozmiarze jako podstawami uczącymi się. W tym szczególnym przypadku Friedman proponuje modyfikację metody wzmacniania gradientu, która poprawia jakość dopasowania każdego podstawowego ucznia.

Wzmocnienie gradientu ogólnego na m -tym kroku dopasuje drzewo decyzyjne do pseudoreszt. Niech będzie liczba jego liści. Drzewo dzieli przestrzeń wejściową na rozłączne regiony i przewiduje stałą wartość w każdym regionie. Używając notacji wskaźnikowej , wynik dla wejścia x można zapisać jako sumę:

gdzie jest przewidywana wartość w regionie .

Następnie współczynniki są mnożone przez pewną wartość , wybraną metodą wyszukiwania liniowego tak, aby zminimalizować funkcję straty, a model jest aktualizowany w następujący sposób:

Friedman proponuje zmodyfikowanie tego algorytmu tak, aby wybierał osobną optymalną wartość dla każdego z regionów drzewa, zamiast jednej dla całego drzewa. Zmodyfikowany algorytm nazywa „TreeBoost”. Współczynniki z procedury dopasowywania drzewa można wtedy po prostu odrzucić, a reguła aktualizacji modelu staje się:

Wielkość drzew

, liczba węzłów końcowych w drzewach, jest parametrem metody, który można dostosować do danego zestawu danych. Kontroluje maksymalny dozwolony poziom interakcji między zmiennymi w modelu. W przypadku ( kikutów decyzyjnych ) nie jest dozwolona żadna interakcja między zmiennymi. Z modelu może obejmować efekty oddziaływania między maksymalnie dwóch zmiennych, i tak dalej.

Hastie i in. komentarz, który zwykle działa dobrze w przypadku wzmocnienia, a wyniki są dość niewrażliwe na wybór w tym zakresie, są niewystarczające dla wielu zastosowań i jest mało prawdopodobne, aby były wymagane.

Regularyzacja

Zbyt ścisłe dopasowanie zestawu szkoleniowego może prowadzić do degradacji zdolności uogólniania modelu. Kilka tak zwanych technik regularyzacji zmniejsza ten efekt nadmiernego dopasowania , ograniczając procedurę dopasowania.

Jednym z naturalnych parametrów regularyzacji jest liczba iteracji zwiększających gradient M (tj. liczba drzew w modelu, gdy bazowy uczący się jest drzewem decyzyjnym). Zwiększenie M zmniejsza błąd na serii treningowej, ale ustawienie go zbyt wysoko może prowadzić do overfittingu. Optymalna wartość M jest często wybierana przez monitorowanie błędu predykcji na oddzielnym zestawie 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 przepełni dane uczące.

Kurczenie się

Ważną częścią metody wzmacniania gradientu jest regularyzacja przez kurczenie polegająca na modyfikacji reguły aktualizacji w następujący sposób:

gdzie parametr nazywany jest „szybkością uczenia się”.

Empirycznie stwierdzono, że stosowanie małych szybkości uczenia się (takich jak ) daje radykalną poprawę zdolności uogólniania modeli w stosunku do zwiększania gradientu bez zmniejszania ( ). Jednak odbywa się to za cenę wydłużenia czasu obliczeniowego zarówno podczas uczenia, jak i wykonywania zapytań : niższy wskaźnik uczenia wymaga większej liczby iteracji.

Stochastyczne zwiększanie gradientu

Wkrótce po wprowadzeniu gradientu przypominającej, Friedman zaproponowano modyfikację drobnej algorytmu motywowane Breiman jest agregacji ładujący metodą ( «workowania»). W szczególności zaproponował, aby w każdej iteracji algorytmu podstawowy uczący się był dopasowany do podpróbki zbioru uczącego wylosowanego bez zastępowania. Friedman zaobserwował znaczną poprawę dokładności wzmocnienia gradientu dzięki tej modyfikacji.

Rozmiar podpróbki to pewien stały ułamek rozmiaru zbioru uczącego. Gdy , algorytm jest deterministyczny i identyczny z opisanym powyżej. Mniejsze wartości wprowadzają do algorytmu losowość i zapobiegają przeuczeniu , działając jako swego rodzaju regularyzacja . Algorytm staje się również szybszy, ponieważ drzewa regresji muszą być dopasowane do mniejszych zestawów danych w każdej iteracji. Friedman uzyskał, co prowadzi do dobrych wyników dla małych i średnich zestawów treningowych. Dlatego zwykle jest ustawiony na 0,5, co oznacza, że ​​połowa zestawu szkoleniowego jest używana do budowania każdego podstawowego ucznia.

Podobnie jak w przypadku baggingu, podpróbkowanie pozwala na zdefiniowanie poza-bagowego błędu poprawy wydajności predykcji poprzez ocenę predykcji na tych obserwacjach, które nie zostały wykorzystane w budowaniu następnego podstawowego ucznia. Szacunki out-of-bag pomagają uniknąć potrzeby niezależnego zestawu danych walidacyjnych, ale często nie doceniają rzeczywistej poprawy wydajności i optymalnej liczby iteracji.

Liczba obserwacji w liściach

Implementacje wzmacniania drzew gradientowych często wykorzystują również regularyzację, ograniczając minimalną liczbę obserwacji w węzłach końcowych drzew. Jest używany w procesie budowania drzewa przez ignorowanie wszelkich podziałów, które prowadzą do węzłów zawierających mniej niż ta liczba instancji zestawu treningowego.

Nałożenie tego limitu pomaga zmniejszyć rozbieżności w przewidywaniach na liściach.

Ukarać złożoność drzewa

Inną użyteczną techniką regularyzacji drzew ze wzmocnieniem gradientowym 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, który usuwa gałęzie, które nie zmniejszają strat o próg. Inne rodzaje regularyzacji, takie jak kara na wartości liścia, mogą być również dodane, aby uniknąć overfittingu .

Stosowanie

Gradient boosting może być wykorzystany w dziedzinie nauki rangowania . Komercyjne wyszukiwarki internetowe Yahoo i Yandex używają wariantów zwiększania gradientu w swoich uczących się maszynowo silnikach rankingowych. Wzmocnienie gradientowe jest również wykorzystywane w fizyce wysokich energii w analizie danych. W Wielkim Zderzaczu Hadronów (LHC) warianty wzmacniania gradientu Deep Neural Networks (DNN) z powodzeniem odtwarzały wyniki analizy metodami non-machine learning na zbiorach danych wykorzystywanych do odkrycia bozonu Higgsa .

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 wzmocnienie gradientu”. Friedman i in. opisać postęp modeli ze wzmocnieniem gradientowym jako drzewa regresji wielokrotnej addytywnej (MART); Elith i in. opisz to podejście jako "Drzewa Regresji Wzmocnionej" (BRT).

Popularna implementacja open-source dla języka R nazywa go „Generalized Boosting Model”, 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 drzewie. XGBoost to kolejna popularna nowoczesna implementacja metody z pewnymi rozszerzeniami, takimi jak optymalizacja drugiego rzędu.

Niedogodności

Chociaż wzmacnianie może zwiększyć dokładność podstawowego ucznia, takiego jak drzewo decyzyjne lub regresja liniowa, poświęca to zrozumiałość i interpretację . Ponadto jego implementacja może być utrudniona ze względu na większe wymagania obliczeniowe.

Zobacz też

Bibliografia

Dalsza lektura

  • Boehmkego, Bradleya; Greenwell, Brandon (2019). „Wzmocnienie gradientu”. Praktyczne uczenie maszynowe z R . Chapmana i Halla. s. 221-245. Numer ISBN 978-1-138-49568-5.

Zewnętrzne linki