Co oznacza „słaby uczeń”?

34

Czy ktoś może mi powiedzieć, co oznacza wyrażenie „słaby uczeń”? Czy to ma być słaba hipoteza? Jestem zmieszany relacją między słabym uczniem a słabym klasyfikatorem. Czy oba są takie same, czy jest jakaś różnica?

W algorytmie adaboost, T=10. Co to znaczy? Dlaczego wybieramy T=10?

vrushali
źródło
1
Witamy na stronie, @vrushali. Zredagowałem to, aby język angielski był płynniejszy; upewnij się, że nadal mówi, co masz na myśli. Nie jestem też pewien, czy drugi zestaw pytań (o adaboost) jest taki sam jak pierwszy zestaw pytań; bardziej sensowne może być podzielenie ich na różne wątki.
gung - Przywróć Monikę

Odpowiedzi:

35

„Słaby” uczeń (klasyfikator, predyktor itp.) To taki, który działa stosunkowo słabo - jego dokładność jest wyższa niż przypadek, ale tylko ledwo. Często wiąże się z tym dodatkowa implikacja, że ​​jest ona prosta obliczeniowo. Słaby uczeń sugeruje również, że wiele wystąpień algorytmu jest łączonych (poprzez wzmacnianie, tworzenie worków itp.), Aby stworzyć „silny” klasyfikator zespołu.

Jest wspomniany w oryginalnym artykule AdaBoost Freunda i Schapire'a:

Być może najbardziej zaskakujące z tych aplikacji jest wyprowadzenie nowej aplikacji do „wzmocnienia”, tj. Konwersji „słabego” algorytmu uczenia się PAC, który działa tylko nieco lepiej niż losowe zgadywanie w jedno z arbitralnie wysoką dokładnością. - (Freund i Schapire, 1995)

ale myślę, że to zdanie jest starsze - widziałem, jak ludzie cytują artykuł z okresu (?!) Michaela Kearnsa z lat 80.

Klasycznym przykładem słabego ucznia jest Kikut decyzyjny, drzewo decyzyjne na jednym poziomie (1R lub OneR to kolejny powszechnie używany słaby uczeń; jest dość podobny). Byłoby nieco dziwne nazywanie SVM „słabym uczniem”, nawet w sytuacjach, w których działa on słabo, ale byłoby całkowicie rozsądne nazywanie pojedynczej decyzji kikutem słabego ucznia, nawet jeśli sam sobie radzi zaskakująco dobrze.


Adaboost jest algorytmem iteracyjnym, a zazwyczaj oznacza liczbę iteracji lub „rund”. Algorytm rozpoczyna się od szkolenia / przetestowania słabego ucznia na temat danych, przy równoczesnym ważeniu każdego przykładu. Przykłady, które są źle sklasyfikowane, zwiększają ich wagi w następnej rundzie (rundach), podczas gdy te, które są prawidłowo sklasyfikowane, zmniejszają ich wagi.T

Nie jestem pewien, czy w jest coś magicznego . W artykule z 1995 r. podano jako parametr swobodny (tzn. Sam go ustawiasz).T=10T

Matt Krause
źródło
O ile mi wiadomo, decyzja może różnić się od reguły 1. Kikut decyzyjny jest zawsze binarnym drzewkiem 1-poziomowym (zarówno dla atrybutów nominalnych, jak i liczbowych). Reguła 1 może mieć więcej niż 2 elementy podrzędne (zarówno dla wartości nominalnej, jak i liczbowej), a dla atrybutów numerycznych mieć bardziej złożony test niż binarny podział na wartości. Ponadto w WEKA istnieją 2 różne implementacje: DecisionStump i OneR.
rapaio
Hmmm ... Chyba masz rację. Oryginalny artykuł 1R mówi: „Szczególny rodzaj zasad analizowanych w tym dokumencie, zwanych 1-regułami, to reguły, które klasyfikują obiekt na podstawie jednego atrybutu (tzn. Są to drzewa decyzyjne 1-poziomowe”. Ale drzewa decyzyjne mogą zaimplementować na wiele różnych sposobów. Wyedytuję to wyjaśnienie
Matt Krause,
Istnieje również natywna implementacja OneR: Pakiet OneR na CRAN: CRAN.R-project.org/package=OneR , oto winieta: cran.r-project.org/web/packages/OneR/vignettes/OneR. HTML (pełne ujawnienie: Jestem autorem tego pakietu).
vonjd
7

Słaba osoba ucząca się to osoba ucząca się, która bez względu na to, jaka jest dystrybucja danych szkoleniowych, zawsze będzie lepsza niż przypadek, gdy spróbuje oznaczyć dane. Robienie lepiej niż przypadek oznacza, że ​​zawsze będziemy mieli poziom błędów mniejszy niż 1/2.

Oznacza to, że algorytm uczący się zawsze będzie się czegoś uczył, nie zawsze całkowicie dokładny, tj. Jest słaby i słaby, jeśli chodzi o uczenie się związków między (dane wejściowe) i (cel).XY

Ale potem następuje wzmocnienie , w którym zaczynamy od przeglądania danych treningowych i generowania niektórych rozkładów, a następnie znajdowania zestawu słabych uczniów (klasyfikatorów) z niskimi błędami, a każdy uczeń wysyła jakąś hipotezę, . Generuje to trochę (etykieta klasy), a na końcu łączy zestaw dobrych hipotez w celu wygenerowania ostatecznej hipotezy.HxY

To ostatecznie poprawia słabych uczniów i przekształca ich w silnych uczniów.

Aby uzyskać więcej informacji: https://youtu.be/zUXJb1hdU0k .

Anish Singh Walia
źródło
Witamy w CV. Ponieważ jesteś tutaj nowy, możesz wybrać się na naszą wycieczkę , która zawiera informacje dla nowych użytkowników. . Ta odpowiedź nie wydaje się oferować czegoś nowego ani ulepszać w stosunku do poprzednich odpowiedzi. Czy uważasz, że czegoś brakuje w poprzednich?
TEG - Przywróć Monikę
dlaczego powinno być poniżej 1/2. Jeśli poziom błędu jest wyższy niż 1/2, powinien być również słabym klasyfikatorem.
Kod Papież
@CodePope, mam rację, ale tak naprawdę „słaby uczeń” jest formalnie zdefiniowany w takich terminach. Zgadzam się, że każdy model, w którym błąd przekracza 50%, jest również słaby i słaby. Ale mówiąc o formalnych definicjach zdefiniowanych przez naukowców, słabym uczniem jest taki, który ma błąd mniejszy niż 1/2 lub 50%.
Anish Singh Walia
1

Słaby uczeń jest tym samym, co słaby klasyfikator lub słaby predyktor. Chodzi o to, że używasz klasyfikatora, który ... no cóż, nie jest tak dobry, ale przynajmniej lepszy niż losowy. Korzyścią jest to, że klasyfikator będzie odporny na nadmierne dopasowanie. Oczywiście nie używasz tylko jednego, ale duży zestaw, każdy nieco lepszy niż losowy. Dokładny sposób ich wyboru / łączenia zależy od metodologii / algorytmu, np. AdaBoost.

W praktyce jako słaby klasyfikator używasz czegoś w rodzaju prostego progu na jednej funkcji. Jeśli funkcja jest powyżej progu, przewidujesz, że należy ona do pozytywów, w przeciwnym razie zdecydujesz, że należy do negatywów. Nie jestem pewien co do T = 10, ponieważ nie ma kontekstu, ale mogę założyć, że jest to przykład progowania niektórych funkcji.

iliasfl
źródło