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

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

  • Pakowanie,
  • Zwiększanie,
  • Stacking?

Który z nich jest najlepszy? I dlaczego?

Czy możesz mi dać przykład dla każdego?

Komentarze

  • jako odniesienie do podręcznika polecam: ” Metody zespolone: fundamenty i algorytmy ” autorstwa Zhou, Zhi-Hua
  • Zobacz tutaj pytanie .

Odpowiedź

Wszystkie trzy to tak zwane „meta-algorytmy”: podejścia łączące kilka technik uczenia maszynowego do jednego modelu predykcyjnego w celu zmniejszenia wariancji ( gromadzenie ), odchylenia ( wzmacnianie ) lub poprawianie siły predykcyjnej ( układanie w stosy alias zespół ).

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

  1. Tworzenie dystr Wprowadzenie prostych modeli ML do podzbiorów oryginalnych danych.

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

Oto krótki opis wszystkich trzech metod:

  1. Pakowanie (oznacza B ootstrap Agg regat ing ) to sposób na zmniejszenie wariancja prognozy przez generowanie dodatkowych danych do uczenia z oryginalnego zbioru danych przy użyciu kombinacji z powtórzeniami w celu uzyskania zestawów wielokrotnych o tej samej liczności / rozmiarze co oryginalne dane. Zwiększając rozmiar zestawu treningowego, nie można „poprawić siły predykcyjnej modelu, ale po prostu zmniejszyć wariancję, zawężając prognozę do oczekiwanego wyniku.

  2. Wzmocnienie to podejście dwuetapowe, w którym najpierw wykorzystuje się podzbiory oryginalne dane, aby stworzyć serię średnio wydajnych modeli, a następnie „zwiększają” ich wydajność, łącząc je razem przy użyciu określonej funkcji kosztu (= głosowanie większościowe). W przeciwieństwie do pakowania w worki, klasyczne wzmocnienie tworzenie podzbioru nie jest przypadkowe i zależy od wydajności poprzednich modeli: każdy nowy podzestaw zawiera elementy, które zostały (prawdopodobnie) błędnie sklasyfikowane przez poprzednie modele.

  3. Kumulowanie jest podobne do zwiększania : stosujesz również kilka modeli do swoich oryginalnych danych. Różnica polega na tym, Jednak że nie masz tylko empirycznego wzoru na swoją funkcję wagi, zamiast tego wprowadzasz metapoziom i używasz innego modelu / podejścia do oszacowania wkładu wraz z wynikami każdego modelu w celu oszacowania wag lub innymi słowy, aby określić, które modele działają dobrze, a które źle, biorąc pod uwagę te dane wejściowe.

Oto tabela porównawcza:

Tabela porównawcza

Jak widzisz, są to różne podejścia do łączenia kilku modeli w lepszy. nie ma tu jednego zwycięzcy: wszystko zależy od Twojej domeny i tego, co zamierzasz zrobić. Nadal możesz traktować układanie w stosy jako rodzaj bardziej zaawansowanego ulepszania , jednak trudność w znalezieniu dobrego podejścia do Twojego metapoziomu utrudnia zastosowanie tego podejścia w praktyce .

Krótkie przykłady:

  1. Pakowanie : Dane ozonu .
  2. Wzmocnienie : służy do poprawy dokładności optycznego rozpoznawania znaków (OCR).
  3. Stacking : jest używany w klasyfikacji mikromacierzy raka w medycynie.

Komentarze

  • Wygląda na to, że Twoja definicja wzmocnienia różni się od tej na wiki (do której utworzyłeś link) lub w tym artykule . Obaj twierdzą, że podczas wzmacniania następnego klasyfikatora wykorzystuje wyniki wcześniej wytrenowanych, ale nie ' o tym nie wspomniałeś. Metoda, którą opisujesz z drugiej strony, przypomina niektóre techniki głosowania / uśredniania modelu.
  • @ 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 zwiększanie jest również rodzajem głosowania / uśredniania, czy też źle cię zrozumiałem?
  • @AlexanderGalkin Miałem na myśli Zwiększanie gradientu w momencie komentowania: nie ' t wygląda jak głosowanie, ale raczej jak iteracyjna technika aproksymacji funkcji. Jednak np. AdaBoost wygląda bardziej jak głosowanie, więc wygrałem ' i nie dyskutować o tym.
  • W pierwszym zdaniu mówisz, że Zwiększenie zmniejsza odchylenie, ale w tabeli porównawczej mówisz zwiększa siłę predykcyjną.Czy to prawda?

Odpowiedź

Pakowanie :

  1. parallel zespół: każdy model jest budowany niezależnie

  2. ma na celu zmniejszenie wariancji , not bias

  3. odpowiednie dla modeli o dużej wariancji i niskiej odchyłce (modele złożone)

  4. przykład metody opartej na drzewie to losowy las , w którym rozwijają się w pełni wyrośnięte drzewa (zauważ, że RF modyfikuje procedurę wzrostu w celu zmniejszenia korelacji między drzewami)

Wzmocnienie :

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

  2. dąż do zmniejszenia b ias , a nie wariancja

  3. odpowiednia dla modeli o dużej odchyłce o niskiej wariancji

  4. przykładem metody opartej na drzewie jest wzmocnienie gradientu

Komentarze

  • Komentowanie każdego z punktów, aby odpowiedzieć, dlaczego tak jest i jak zostało to osiągnięte, byłoby wspaniale poprawa odpowiedzi.
  • Czy możesz udostępnić dowolny dokument / link, który wyjaśnia, że wzmocnienie zmniejsza wariancję i jak to się dzieje? Chcę tylko głębiej zrozumieć.
  • Dziękuję Tim, ' dodam kilka komentarzy później. @ML_Pro, z procedury boostingu (np. Strona 23 cs.cornell.edu/courses/cs578/2005fa/… ), to ' jest zrozumiałe, że wzmocnienie może zmniejszyć odchylenie.

Odpowiedź

Żeby nieco rozwinąć odpowiedź Yuqiana. Pomysł polegający na pakowaniu polega na tym, że kiedy OVERFITujesz za pomocą nieparametrycznej metody regresji (zwykle regresji lub drzew klasyfikacyjnych, ale może to być prawie każda metoda nieparametryczna) mają tendencję do przechodzenia na dużą wariancję, brak (lub niskie) odchylenie części kompromisu odchylenie / wariancja. Dzieje się tak, ponieważ model nadmiernego dopasowania jest bardzo elastyczny (tak niskie odchylenie w wielu powtórzeniach z tej samej populacji, jeśli były dostępne), ale ma duża zmienność (jeśli pobiorę próbkę i przepasuję ją, a ty zbierzesz próbkę i przepasujesz ją, nasze wyniki będą się różnić, ponieważ regresja nieparametryczna śledzi szum w danych) .Co możemy zrobić? Możemy wziąć wiele prób (z ładowanie początkowe) , każdy przeładowany i uśrednij je razem. Powinno to prowadzić do tego samego odchylenia (niskiego), ale wyeliminować część wariancji, przynajmniej w teorii.

Podbicie gradientu w jego sercu działa z nieparametrycznymi regresjami UNDERFIT, które są zbyt proste i dlatego nie są wystarczająco elastyczne, aby opisać rzeczywistą relację w danych (tj. tendencyjne), ale ponieważ są niedopasowane, mają niską wariancję (miałbyś tendencję do uzyskiwania tego samego wyniku, jeśli zbierzesz nowe zestawy danych). Jak to poprawiasz? Zasadniczo, jeśli nie jesteś w dobrej formie, RESIDUALS twojego modelu nadal zawiera użyteczną strukturę (informacje o populacji), więc powiększasz posiadane drzewo (lub inny nieparametryczny predyktor) o drzewo zbudowane na resztach. Powinno być bardziej elastyczne niż oryginalne drzewo. Wielokrotnie generujesz coraz więcej drzew, każde w kroku k powiększane o ważone drzewo na podstawie drzewa dopasowanego do reszt z kroku k-1. Jedno z tych drzew powinno być optymalne, więc kończy się na zważeniu wszystkich tych drzew razem lub wybraniu takiego, które wydaje się najlepiej dopasowane. Dlatego wzmacnianie gradientu jest sposobem na zbudowanie grupy bardziej elastycznych drzew kandydujących.

Podobnie jak w przypadku wszystkich podejść do regresji nieparametrycznej lub klasyfikacji, czasami wypełnianie lub wzmacnianie działa świetnie, czasami jedno lub drugie podejście jest mierne, a czasami jedno albo inne podejście (lub jedno i drugie) ulegnie awarii i spaleniu.

Ponadto obie te techniki można zastosować do metod regresji innych niż drzewa, ale są one najczęściej kojarzone z drzewami, być może dlatego, że jest to trudne aby ustawić parametry, aby uniknąć niedopasowania lub nadmiernego dopasowania.

Komentarze

  • +1 dla argumentu overfit = variance, underfit = bias! Jednym z powodów stosowania drzew decyzyjnych jest to, że są one strukturalnie niestabilne, a zatem odnoszą większe korzyści z niewielkich zmian warunków. ( abbottanalytics.com / asset / pdf / … )

Odpowiedź

Odpowiedź

Podsumowując, Pakowanie i Wzmocnienie są zwykle używane w ramach jednego algorytmu, podczas gdy Układanie w stosy jest zwykle używany do podsumowania kilku wyników z różnych algorytmów.

  • Pakowanie : Bootstrap podzbiory funkcji i próbek w celu uzyskania kilku prognoz i średniej (lub innymi sposobami) wyniki, na przykład Random Forest, które eliminują wariancję i nie powodują nadmiernego dopasowania.
  • Wzmocnienie : różnica w stosunku do dodawania polega na tym, że nowszy model próbuje poznaj błąd popełniony przez poprzedni, na przykład GBM i XGBoost, które eliminują wariancję, ale powodują problem z nadmiernym dopasowaniem.
  • Stacking : Zwykle używane w zawodach, kiedy używa się wielu algorytmów do treningu na tym samym zestawie danych i średniej (maks., min lub inne kombinacje) wynik, aby uzyskać większą dokładność przewidywania.

Odpowiedź

obie oraz wspomaganie – używaj jednego algorytmu uczenia się na wszystkich etapach; ale używają różnych metod obsługi próbek szkoleniowych. obie są metodą uczenia się w formie zespolonej, która łączy decyzje z wielu modeli
Pakowanie :
1. ponowne próbkowanie danych treningowych, aby uzyskać M podzbiorów (ładowanie początkowe);
2. trenuje M klasyfikatorów (ten sam algorytm) na podstawie M zbiorów danych (różne próbki);
3. klasyfikator końcowy łączy M wyjść poprzez głosowanie;
próbki mają jednakową wagę;
klasyfikatory mają taką samą wagę;
zmniejsza błąd poprzez zmniejszenie wariancji
Wzmocnienie : tutaj skup się na algorytmie adaboost
1. zacznij od jednakowej wagi dla wszystkich próbek w pierwszej rundzie;
2. w kolejnych rundach M-1 zwiększ wagi próbek, które zostały błędnie sklasyfikowane w ostatniej rundzie, zmniejsz wagi próbek poprawnie sklasyfikowanych w ostatniej rundzie
3. za pomocą głosowania ważonego ostateczny klasyfikator łączy wiele klasyfikatorów z poprzednich rund i nadaje większe wagi klasyfikatorom z mniejszą liczbą błędnych klasyfikacji.
stopniowo ponownie waży próbki; wagi dla każdej rundy w oparciu o wyniki z ostatniej rundy
ponowne zważenie próbek (zwiększenie) zamiast ponownego próbkowania (worek).

Odpowiedź

Pakowanie

ZGRZEWANIE Bootstrap (pakowanie) to metoda generowania zespołu, która używa odmian próbek używanych do uczenia klasyfikatorów podstawowych. Dla każdego generowanego klasyfikatora, Bagging wybiera (z powtórzeniami) N próbek ze zbioru uczącego o rozmiarze N i trenuje klasyfikator bazowy. Jest to powtarzane, aż osiągnięty zostanie pożądany rozmiar zbioru.

Pakowanie powinno być używane z niestabilnymi klasyfikatorami, to znaczy klasyfikatorami wrażliwymi na zmiany w zbiorze uczącym, takimi jak drzewa decyzyjne i perceptrony.

Losowa podprzestrzeń to interesujące, podobne podejście, które wykorzystuje wariacje cech zamiast wariacji w próbkach, zwykle wskazanych w zbiorach danych o wielu wymiarach i niewielkiej przestrzeni cech.

Wzmocnienie

Wzmocnienie generuje zbiór przez dodanie klasyfikatorów , które poprawnie klasyfikują „trudne próbki” . Dla każdej iteracji wzmocnienie aktualizuje wagi próbek, tak że próbki błędnie sklasyfikowane przez zespół mogą mieć wyższą wagę, a tym samym większe prawdopodobieństwo, że zostaną wybrane do trenowania nowego klasyfikatora.

Wzmocnienie jest interesującym podejściem, ale jest bardzo wrażliwy na szum i jest skuteczny tylko przy użyciu słabych klasyfikatorów. Istnieje kilka odmian technik Boosting AdaBoost, BrownBoost (…), każda z nich ma własną regułę aktualizacji wagi w celu uniknięcia pewnych specyficznych problemów (szum, brak równowagi klas…).

Zestawianie

Układanie to meta-learning , w którym zespół jest używany do „wyodrębniania cech” , które będą używane przez kolejna warstwa zestawu. Poniższy obraz (z Kaggle Ensembling Guide ) pokazuje, jak to działa.

tutaj wprowadź opis obrazu

Najpierw (na dole) kilka różnych klasyfikatorów jest trenowanych z zestawem uczącym, a ich wyniki (prawdopodobieństwa) są używane do trenowania następnej warstwy (warstwa środkowa), ostatecznie wyniki (prawdopodobieństwa) klasyfikatorów w drugiej warstwie są łączone przy użyciu średniej (AVG).

Istnieje kilka strategii wykorzystujących walidacja krzyżowa, mieszanie i inne podejścia mające na celu uniknięcie nadmiernego dopasowania. Jednak niektóre ogólne zasady polegają na unikaniu takiego podejścia na małych zbiorach danych i próbie użycia różnych klasyfikatorów, aby mogły się wzajemnie „uzupełniać”.

Stosowano stosy w kilku konkursach uczenia maszynowego, takich jak Kaggle i Top Koder. Jest to zdecydowanie pozycja obowiązkowa w uczeniu maszynowym.

Odpowiedź

Pakowanie i przyspieszanie zwykle używają wielu jednorodnych modeli.

Zestawianie łączy wyniki z heterogenicznych typów modeli.

Ponieważ żaden pojedynczy typ modelu nie wydaje się najlepiej pasować do całej dystrybucji, możesz zobaczyć, dlaczego może to zwiększyć moc predykcyjną.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *