Pakowanie, ulepszanie i układanie w stosy w uczeniu maszynowym

245

Jakie są podobieństwa i różnice między tymi 3 metodami:

  • Parcianka,
  • Wzmocnienie,
  • Układanie?

Który jest najlepszy? I dlaczego?

Czy możesz podać mi przykład dla każdego z nich?

Bucsa Lucian
źródło
3
dla odniesienia do podręcznika polecam: „Metody łączenia: podstawy i algorytmy” Zhou, Zhi-Hua
Vadim Smolyakov
1
Zobacz tutaj powiązane pytanie .
Ricardo Cruz,

Odpowiedzi:

252

Wszystkie trzy są tak zwane „meta-algorytmy”: podejścia do łączenia kilku technik uczenia maszynowego do jednego modelu predykcyjnego w celu zmniejszenia wariancji ( pakującej ) bias ( zwiększenie ) lub poprawę siły predykcyjnej ( spiętrzania alias zespół ).

Każdy algorytm składa się z dwóch kroków:

  1. Tworzenie dystrybucji prostych modeli ML na podzbiorach oryginalnych danych.

  2. Łączenie rozkładu w jeden „zagregowany” model.

Oto krótki opis wszystkich trzech metod:

  1. Pakowanie (skrót B ootstrap Agg Regat ing ) to sposób, aby zmniejszyć wariancję swojej przepowiedni generując dodatkowe dane dotyczące treningu z oryginalnego zbioru danych przy użyciu kombinacji z powtórzeniami produkować multisets tej samej liczności / wielkości jak oryginalnych danych. Zwiększając rozmiar zestawu treningowego, nie można poprawić siły predykcyjnej modelu, ale po prostu zmniejszyć wariancję, ściśle dostosowując prognozę do oczekiwanego wyniku.

  2. Zwiększenie jest podejściem dwuetapowym, w którym najpierw wykorzystuje się podzbiory oryginalnych danych, aby stworzyć serię średnio wydajnych modeli, a następnie „zwiększa” ich wydajność, łącząc je ze sobą przy użyciu określonej funkcji kosztu (= głosowanie większościowe). W przeciwieństwie do workowania, w klasycznym wzmocnieniu tworzenie podzbioru nie jest losowe i zależy od wydajności poprzednich modeli: każdy nowy podzbiór zawiera elementy, które były (prawdopodobnie będą) błędnie sklasyfikowane przez poprzednie modele.

  3. Układanie jest podobne do zwiększania: stosuje się również kilka modeli do oryginalnych danych. Różnica polega jednak na tym, że nie masz tylko empirycznej formuły dla swojej funkcji wagi, a raczej wprowadzasz meta-poziom i używasz innego modelu / podejścia do oszacowania danych wejściowych wraz z wynikami każdego modelu do oszacowania wag lub , innymi słowy, aby ustalić, które modele działają dobrze, a co źle, biorąc pod uwagę te dane wejściowe.

Oto tabela porównawcza:

Tabela porównawcza

Jak widać, są to różne podejścia do połączenia kilku modeli w jeden lepszy i nie ma tutaj jednego zwycięzcy: wszystko zależy od domeny i tego, co zamierzasz zrobić. Nadal możesz traktować układanie jako rodzaj większej liczby ulepszeń , jednak trudność w znalezieniu dobrego podejścia do twojego meta-poziomu utrudnia zastosowanie tego podejścia w praktyce.

Krótkie przykłady każdego:

  1. Pakowanie : dane dotyczące ozonu .
  2. Wzmocnienie : służy do poprawy dokładności optycznego rozpoznawania znaków (OCR).
  3. Układanie w stos : jest stosowane w klasyfikacji mikromacierzy nowotworowych w medycynie.
Alexander Galkin
źródło
8
Wygląda na to, że twoja definicja wzmocnienia różni się od definicji na wiki (do której prowadzisz link) lub w tym dokumencie . Obaj twierdzą, że przy podwyższaniu następnego klasyfikatora wykorzystuje wyniki wcześniej wytrenowanych, ale o tym nie wspomniałeś. Metoda, którą opisujesz z drugiej strony, przypomina niektóre techniki głosowania / uśredniania modelu.
Alexander Rodin
2
@ a-rodin: Dziękuję za wskazanie tego ważnego aspektu, całkowicie przepisałem tę sekcję, aby lepiej to odzwierciedlić. Co do twojej drugiej uwagi, rozumiem, że wzmacnianie jest również rodzajem głosowania / uśredniania, czy też zrozumiałem, że się myliłeś?
Alexander Galkin
@AlexanderGalkin Miałem na myśli zwiększenie gradientu w momencie komentowania: nie wygląda to na głosowanie, ale raczej na technikę aproksymacji funkcji iteracyjnej. Jednak np. AdaBoost wygląda bardziej jak głosowanie, więc nie będę się o to kłócić.
Alexander Rodin
3
W pierwszym zdaniu mówisz, że Wzmocnienie zmniejsza obciążenie, ale w tabeli porównawczej mówisz, że zwiększa siłę predykcyjną. Czy oba są prawdziwe?
Ben Lindsay,
68

Pakowanie :

  1. zespół równoległy : każdy model jest budowany niezależnie

  2. dążyć do zmniejszenia wariancji , a nie stronniczości

  3. nadaje się do modeli o dużym odchyleniu i niskim odchyleniu (modele złożone)

  4. przykładem metody opartej na drzewach jest losowy las , w którym rozwijają się w pełni dorosłe drzewa (należy zauważyć, że RF modyfikuje procedurę uprawy w celu zmniejszenia korelacji między drzewami)

Zwiększenie :

  1. zespół sekwencyjny : spróbuj dodać nowe modele, które dobrze sobie radzą tam, gdzie brakuje poprzednich modeli

  2. dążyć do zmniejszenia nastawienia , a nie wariancji

  3. nadaje się do modeli o niskiej wariancji i dużym odchyleniu

  4. przykładem metody opartej na drzewie jest zwiększenie gradientu

yuqian
źródło
5
Komentowanie każdego z punktów, aby odpowiedzieć na pytanie, dlaczego tak jest i jak zostało osiągnięte, byłoby wielką poprawą w twojej odpowiedzi.
Tim
2
Czy możesz udostępnić dowolny dokument / link, który wyjaśnia, że ​​zwiększenie redukuje wariancję i jak to robi? Chcę tylko zrozumieć głębiej
GeorgeOfTheRF
1
Dzięki Tim, dodam kilka komentarzy później. @ML_Pro, z procedury zwiększania (np. Strona 23 cs.cornell.edu/courses/cs578/2005fa/... ), zrozumiałe jest, że zwiększanie może zmniejszyć stronniczość.
yuqian,
43

Wystarczy trochę rozwinąć odpowiedź Yuqiana. Ideą workowania jest to, że kiedy PRZESZKADZASZ metodą regresji nieparametrycznej (zwykle drzewa regresji lub klasyfikacji, ale może to być prawie dowolna metoda nieparametryczna), masz tendencję do przechodzenia do części o dużym odchyleniu, braku (lub niskiej) stronniczości / kompromis wariancji. Wynika to z faktu, że model nadmiernego dopasowania jest bardzo elastyczny (tak niski błąd systematyczny w przypadku wielu próbek z tej samej populacji, jeśli były one dostępne), ale ma dużą zmienność (jeśli pobiorę próbkę i dopasuję ją, a ty pobierzesz próbkę i dopasujesz ją, nasze wyniki będą się różnić, ponieważ regresja nieparametryczna śledzi szum w danych). Co możemy zrobić? Możemy pobrać wiele próbek (od ładowania początkowego), każda z nich jest zbyt duża i uśrednić je razem. Powinno to prowadzić do tego samego błędu (niski), ale anulować część wariancji,

Zwiększanie gradientu w jego sercu działa z regresjami nieparametrycznymi UNDERFIT, które są zbyt proste, a zatem nie są wystarczająco elastyczne, aby opisać rzeczywistą relację w danych (tj. Stronniczość), ale ponieważ są niedopasowane, mają małą wariancję (miałbyś tendencję aby uzyskać ten sam wynik, jeśli zbierzesz nowe zestawy danych). Jak to naprawisz? Zasadniczo, jeśli nie jesteś w dobrej formie, RESIDUALS twojego modelu nadal zawierają użyteczną strukturę (informacje o populacji), więc powiększasz posiadane drzewo (lub dowolny predyktor nieparametryczny) o drzewo zbudowane na resztkach. Powinno to być bardziej elastyczne niż oryginalne drzewo. Wielokrotnie generujesz coraz więcej drzew, każde w kroku k powiększone o drzewo ważone na podstawie drzewa dopasowanego do resztek z kroku k-1. Jedno z tych drzew powinno być optymalne, więc albo kończy się na zważeniu wszystkich tych drzew razem lub wybraniu jednego, który wydaje się najlepiej pasować. Zatem zwiększanie gradientu jest sposobem na zbudowanie grona bardziej elastycznych drzew kandydujących.

Podobnie jak wszystkie podejścia do regresji lub klasyfikacji nieparametrycznej, czasami workowanie lub wzmacnianie działa świetnie, czasem jedno lub drugie podejście jest mierne, a czasem jedno lub drugie podejście (lub oba) ulega awarii i pali.

Obie te techniki można również zastosować do metod regresji innych niż drzewa, ale najczęściej są one związane z drzewami, być może dlatego, że trudno jest ustawić parametry, aby uniknąć niedopasowania lub przeregulowania.

AlaskaRon
źródło
3
+1 za overfit = wariancja, underfit = argument błędu! Jednym z powodów korzystania z drzew decyzyjnych jest to, że są one niestabilne strukturalnie, a zatem odnoszą większe korzyści z niewielkich zmian warunków. ( abbottanalytics.com/assets/pdf/… )
Mark Horvath,
3

Podsumowując, Bagging i Boosting są zwykle używane w jednym algorytmie, podczas gdy Stacking jest zwykle używany do podsumowania kilku wyników z różnych algorytmów.

  • Pakowanie : podzbiory Bootstrap funkcji i próbek, aby uzyskać kilka prognoz i uśrednić (lub w inny sposób) wyniki, na przykład Random Forest, które eliminują wariancję i nie mają problemu z przeregulowaniem.
  • Wzmocnienie : Różnica w stosunku do tworzenia worków polega na tym, że późniejszy model próbuje poznać błąd popełniony przez poprzedni, na przykład GBMi XGBoostktóry eliminuje wariancję, ale ma problem z przeregulowaniem.
  • Układanie w stosy : zwykle używane w zawodach, gdy używa się wielu algorytmów do trenowania na tym samym zbiorze danych i uśrednia (maks., Min. Lub inne kombinacje) wynik w celu uzyskania większej dokładności prognozowania.
MJeremy
źródło
2

zarówno workowanie, jak i przyspieszanie używają jednego algorytmu uczenia się dla wszystkich kroków; ale używają różnych metod postępowania z próbkami szkoleniowymi. oba są metodami uczenia się w zespole, które łączą decyzje z wielu modeli.
Pakowanie :
1. zmienia dane treningowe, aby uzyskać M podzbiorów (ładowanie początkowe);
2. szkoli M klasyfikatorów (ten sam algorytm) w oparciu o M zestawów danych (różne próbki);
3. klasyfikator końcowy łączy wyniki M poprzez głosowanie;
waga próbek równomiernie;
klasyfikatory ważą jednakowo;
zmniejsza błąd poprzez zmniejszenie wariancji
Pobudzanie : tu skupić się na algorytmie adaboost
1. Uruchom z równą wadze dla wszystkich próbek w pierwszej rundzie;
2. w kolejnych rundach M-1, zwiększ wagę próbek błędnie sklasyfikowanych w ostatniej rundzie, zmniejsz wagę próbek poprawnie sklasyfikowanych w ostatniej rundzie
3. używając ważonego głosowania, ostateczny klasyfikator łączy wiele klasyfikatorów z poprzednich rund i daje większe wagi do klasyfikatorów z mniejszymi błędami klasyfikacji.
próbki powtórnych wag; wagi dla każdej rundy w oparciu o wyniki z ostatniej rundy
ponownie ważą próbki (zwiększenie) zamiast ponownego próbkowania (workowanie).

Shrek
źródło
0

Bagging i boosting mają tendencję do używania wielu jednorodnych modeli.

Układanie łączy wyniki z heterogenicznych typów modeli.

Ponieważ żaden typ jednego modelu nie jest najlepiej dopasowany do całej dystrybucji, możesz zrozumieć, dlaczego może to zwiększyć moc predykcyjną.

Ćwiek
źródło