Wzmacnianie uczenia maszynowego: co to jest, funkcje, typy i cechy

Opublikowany: 2020-05-29

Wzmocnienie w uczeniu maszynowym to ważny temat. Wielu analityków nie rozumie znaczenia tego terminu. Dlatego w tym artykule dowiemy się, co oznacza wzmacnianie uczenia maszynowego i jak to działa. Wzmocnienie pomaga modelom ML w poprawie ich dokładności predykcji. Omówmy szczegółowo ten algorytm:

Spis treści

Co to jest wzmocnienie w uczeniu maszynowym?

Zanim omówimy „ wzmacnianie uczenia maszynowego ”, powinniśmy najpierw zastanowić się nad definicją tego terminu. Wzmacnianie oznacza „zachęcanie lub pomaganie w ulepszeniu”. Wzmacnianie uczenia maszynowego robi dokładnie to samo, co wzmacnia modele uczenia maszynowego i zwiększa ich dokładność. Z tego powodu jest to popularny algorytm w nauce o danych.

Boosting w ML odnosi się do algorytmów, które przekształcają słabe modele uczenia się w silne. Załóżmy, że musimy sklasyfikować e-maile w kategoriach „Spam” i „Nie spam”. Aby dokonać tych rozróżnień, możemy przyjąć następujące podejście:

  • Jeśli wiadomość e-mail zawiera tylko jeden plik obrazu, jest to spam (ponieważ obraz jest zwykle promocyjny)
  • Jeśli wiadomość e-mail zawiera frazę podobną do „Wygrałeś na loterii”, jest to spam.
  • Jeśli wiadomość e-mail zawiera tylko kilka linków, jest to spam.
  • Jeśli wiadomość e-mail pochodzi ze źródła, które znajduje się na naszej liście kontaktów, nie jest to spam.

Teraz, mimo że mamy zasady klasyfikacji, czy uważasz, że są one wystarczająco silne, aby określić, czy wiadomość e-mail jest spamem, czy nie? Oni nie są. W ujęciu indywidualnym te reguły są słabe i nie wystarczają do sklasyfikowania wiadomości e-mail jako „Nie spam” lub „Spam”. Będziemy musieli je wzmocnić i możemy to zrobić, używając średniej ważonej lub biorąc pod uwagę przewidywanie wyższego głosu.

Tak więc w tym przypadku mamy pięć klasyfikatorów, z których trzy oznaczają wiadomość e-mail jako „Spam”, dlatego domyślnie uznamy wiadomość e-mail za „Spam”, ponieważ ta klasa ma wyższy głos niż „Nie spam”. Kategoria.

Ten przykład miał dać ci wyobrażenie o tym, czym są algorytmy wzmacniające. Są bardziej złożone niż to.

Spójrz na: 25 pytań i odpowiedzi dotyczących uczenia maszynowego

Jak oni pracują?

Powyższy przykład pokazał nam, że wzmacnianie łączy słabych uczniów w tworzenie ścisłych zasad. Jak więc zidentyfikowałbyś te słabe zasady? Aby znaleźć niepewną regułę, będziesz musiał użyć algorytmów uczenia się opartych na instancjach. Za każdym razem, gdy zastosujesz podstawowy algorytm uczenia się, powstanie słaba reguła przewidywania. Powtórzysz ten proces dla wielu iteracji, a przy każdej iteracji algorytm wzmacniający połączy słabe reguły, aby utworzyć silną regułę.

Algorytm wzmacniania wybiera odpowiednią dystrybucję dla każdej iteracji w kilku krokach. Najpierw weźmie wszystkie różne alokacje i przypisze im równą wagę. Jeśli pierwszy podstawowy algorytm uczenia się popełni błąd, doda większą wagę tym obserwacjom. Po przypisaniu wagi przechodzimy do kolejnego kroku.

W tym kroku będziemy powtarzać ten proces, dopóki nie zwiększymy dokładności naszego algorytmu. Następnie połączymy wyniki słabych uczniów i stworzymy silny, który wzmocni nasz model i pomoże mu w dokonywaniu lepszych prognoz. Algorytm wzmacniający koncentruje się bardziej na założeniach, które powodują wysokie błędy ze względu na ich słabe reguły.

Dowiedz się więcej: 5 przełomowych zastosowań uczenia maszynowego

Różne rodzaje algorytmów wzmacniających

Algorytmy wspomagające mogą korzystać z wielu rodzajów podstawowych silników, w tym maksymalizacji marży, stempli decyzyjnych i innych. Przede wszystkim istnieją trzy rodzaje algorytmów zwiększania uczenia maszynowego:

  1. Adaptacyjne wzmocnienie (znane również jako AdaBoosta)
  2. Wzmocnienie gradientu
  3. XGBoost

Pierwsze dwa, AdaBoost i Gradient Boosting, omówimy pokrótce w tym artykule. XGBoost to znacznie bardziej skomplikowany temat, który omówimy w innym artykule.

1. Adaptacyjne wzmocnienie

Załóżmy, że masz pudełko, które ma pięć plusów i pięć minusów. Twoim zadaniem jest sklasyfikować je i umieścić w różnych tabelach.

W pierwszej iteracji przypisujesz równe wagi do każdego punktu danych i stosujesz kikut decyzyjny w polu. Jednak linia oddziela tylko dwa plusy z grupy, a wszystkie pozostałe pozostają razem. Twój kikut decyzyjny (która jest linią przechodzącą przez nasze rzekome pudełko) nie przewidział poprawnie wszystkich punktów danych i umieścił trzy plusy z minusami.

W następnej iteracji przypisujemy większą wagę trzem plusom, które wcześniej przegapiliśmy; ale tym razem kikut decyzyjny dzieli od grupy tylko dwie minuty. Przypiszemy większą wagę minusom, które przegapiliśmy w tej iteracji i powtórzymy proces. Po jednym lub dwóch powtórzeniach możemy połączyć kilka z tych wyników, aby uzyskać jedną ścisłą regułę przewidywania.

AdaBoost działa właśnie tak. Najpierw przewiduje, używając oryginalnych danych i przypisuje równą wagę każdemu punktowi. Następnie przywiązuje większą wagę do obserwacji, których pierwszy uczeń nie przewidział poprawnie. Powtarza proces, aż osiągnie granicę dokładności modelu.

Za pomocą Adaboost można używać stempli decyzyjnych, a także innych algorytmów uczenia maszynowego.

Oto przykład AdaBoost w Pythonie:

z sklearn.ensemble import AdaBoostClassifier

ze sklearn.datasets importuj make_classification

X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,

n_nadmiarowy=0, n_powtarzany=0, losowy_stan=102)

clf = AdaBoostClassifier(n_estimators=4, random_state=0, algorytm='SAMME')

dopasuj(X, Y)

2. Wzmocnienie gradientu

Gradient Boosting wykorzystuje metodę opadania gradientu w celu zmniejszenia funkcji strat w całej operacji. Zejście gradientowe to algorytm optymalizacji pierwszego rzędu, który znajduje lokalne minimum funkcji (funkcja różniczkowalna). Wzmocnienie gradientowe sekwencyjnie szkoli wiele modeli i może dopasować nowe modele, aby uzyskać lepsze oszacowanie odpowiedzi.

Buduje nowych bazowych uczniów, którzy mogą korelować z ujemnym gradientem funkcji straty i są połączeni z całym systemem. W Pythonie będziesz musiał użyć Gradient Tree Boosting (znanego również jako GBRT). Możesz go używać do problemów z klasyfikacją i regresją.

Oto przykład wzmocnienia drzewa gradientowego w Pythonie:

from sklearn.ensemble import GradientBoostingRegressor

model = GradientBoostingRegressor(n_estimators=3,learning_rate=1)

model.fit(X,Y)

# do klasyfikacji

from sklearn.ensemble import GradientBoostingClassifier

model = GradientBoostingClassifier()

model.fit(X,Y)

Funkcje wspomagania w uczeniu maszynowym

Boosting ma wiele zalet i jak każdy inny algorytm ma również swoje ograniczenia:

  • Interpretacja przewidywań wzmocnienia jest całkiem naturalna, ponieważ jest to model zespołowy.
  • Dobiera cechy w sposób niejawny, co jest kolejną zaletą tego algorytmu.
  • Moc predykcyjna algorytmów wzmacniających jest bardziej niezawodna niż drzewa decyzyjne i bagging.
  • Skalowanie go w górę jest nieco trudne, ponieważ każdy estymator we wzmacnianiu opiera się na poprzednich estymatorach.

Przeczytaj także: Pomysły na projekty uczenia maszynowego dla początkujących

Dokąd iść stąd?

Mamy nadzieję, że ten artykuł o doładowaniu okazał się przydatny. Najpierw omówiliśmy, czym jest ten algorytm i jak rozwiązuje problemy z uczeniem maszynowym. Następnie przyjrzeliśmy się jego działaniu i sposobowi działania.

Omówiliśmy również różne jego rodzaje. O AdaBoost i Gradient Boosting dowiedzieliśmy się, dzieląc się także ich przykładami. Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Jak w prosty sposób zdefiniować wzmacnianie w uczeniu maszynowym?

Wzmacnianie w maszynach polega na odwoływaniu się do algorytmów, które pomagają przekształcić słabe modele uczenia się w silne modele. Jeśli weźmiemy przykład klasyfikacji wiadomości e-mail jako spam, a nie spam, istnieją pewne rozróżnienia, które można wykorzystać, aby ułatwić zrozumienie. Do tych różnic można podejść, gdy wiadomość e-mail ma jeden plik, zawiera podobną frazę, jak Wygrałeś na loterii, zawiera kilka linków i pochodzi z listy kontaktów.

Jak działa algorytm wzmacniający?

Słabe reguły są identyfikowane za pomocą algorytmów uczenia opartych na instancjach. Po zastosowaniu podstawowego algorytmu uczenia się w wielu iteracjach, ostatecznie łączy on słabe reguły w jedną silną regułę. Algorytm wzmacniający dokonuje właściwych wyborów w celu rozłożenia każdej iteracji w wielu krokach. Po pobraniu alokacji przypisuje równą wagę aż do popełnienia błędu, po czym przypisuje się większą wagę. Ten proces jest powtarzany aż do uzyskania lepszej dokładności. Następnie wszystkie słabe wyniki są łączone w celu uzyskania silnego.

Jakie są rodzaje algorytmów wzmacniających i ich cechy?

Różne typy to wzmocnienie adaptacyjne, wzmocnienie gradientowe i XGBoost. Boosting ma takie cechy, jak niejawny wybór funkcji. Drzewa decyzyjne są mniej wiarygodne niż moce predykcyjne. Ponadto skalowanie jest trudniejsze, ponieważ estymatory są oparte na poprzednich. Interpretacja przewidywań dotyczących wzmocnienia jest naturalna, ponieważ jest to model zespołowy.