Czy wszystkie algorytmy uczenia maszynowego rozdzielają dane liniowo?

22

Jestem entuzjastą programowania i uczenia maszynowego. Zaledwie kilka miesięcy temu zacząłem uczyć się programowania maszynowego. Podobnie jak wielu, którzy nie mają ilościowego zaplecza naukowego, zacząłem również uczyć się o ML, majstrując przy algorytmach i zestawach danych w szeroko stosowanym pakiecie ML (Caret R).

Jakiś czas temu czytałem blog, w którym autor mówi o zastosowaniu regresji liniowej w ML. Jeśli dobrze pamiętam, mówił o tym, w jaki sposób całe uczenie maszynowe używa pewnego rodzaju „regresji liniowej” (nie jestem pewien, czy użył tego dokładnego terminu) nawet w przypadku problemów liniowych czy nieliniowych. Wtedy nie zrozumiałem, co miał na myśli.

Rozumiem, że używanie uczenia maszynowego do danych nieliniowych polega na wykorzystaniu algorytmu nieliniowego do oddzielenia danych.

Tak myślałem

Powiedzmy, że do sklasyfikowania danych liniowych zastosowaliśmy równanie liniowe a dla danych nieliniowych zastosujemy równanie nieliniowe powiedzmyy=mx+doy=sjan(x)

wprowadź opis zdjęcia tutaj

To zdjęcie pochodzi z witryny internetowej Sikit learn support vector machine. W SVM używaliśmy różnych jąder do celów ML. Tak więc początkowo myślałem, że jądro liniowe oddziela dane za pomocą funkcji liniowej, a jądro RBF używa nieliniowej funkcji do oddzielania danych.

Ale potem zobaczyłem tego bloga, w którym autor mówi o sieciach neuronowych.

Aby sklasyfikować problem nieliniowy w lewym podsieci, sieć neuronowa przekształca dane w taki sposób, że w końcu możemy użyć prostej liniowej separacji do transformowanych danych w prawym podpowierzchni

wprowadź opis zdjęcia tutaj

Moje pytanie brzmi, czy wszystkie algorytmy uczenia maszynowego wykorzystują separację liniową do klasyfikacji (liniowy / nieliniowy zestaw danych)?

Eka
źródło
1
Powiązane: stats.stackexchange.com/questions/164048/…
Sycorax mówi Przywróć Monikę
3
Twój nieliniowy model jest również liniowy. nową zmienną , wtedy twój problem stanie się - liniowy. W tym sensie wiele alg ML jest rzeczywiście liniowych. s = sin ( x ) y = θ 0 + θ 1 sgrzech(x)s=grzech(x)y=θ0+θ1s
Aksakal
Podoba mi się również odpowiedź mbq na ten wątek. Pomóż mi zrozumieć maszyny wektorów wsparcia .
Andy W,

Odpowiedzi:

26

Odpowiedź brzmi: nie. User20160 ma idealną odpowiedź, dodam 3 przykłady z wizualizacją, aby zilustrować ten pomysł. Uwaga: wykresy te mogą nie być pomocne w sprawdzeniu, czy „ostateczna decyzja” ma formę liniową, ale dają pewne pojęcie o drzewie, wzmocnieniu i KNN.

Zaczniemy od drzew decyzyjnych. Przy wielu podziałach jest to nieliniowa granica decyzji. I nie możemy myśleć, że wszystkie poprzednie podziały są „transformacjami cech”, a na końcu jest ostateczna linia decyzyjna.

Innym przykładem jest model przypominający, który agreguje wiele „słabych klasyfikatorów”, a granica ostatecznej decyzji nie jest liniowa. Można pomyśleć, że jest to skomplikowany kod / algorytm do ostatecznej prognozy.

Na koniec pomyśl o K Nearest Neighbours (KNN). Nie jest to również liniowa funkcja decyzyjna na warstwie końcowej. ponadto w KNN nie ma „przekształceń funkcji”.

Oto trzy wizualizacje w przestrzeni 2D (Tree, Boosting i KNN od góry do dołu). Podstawowa prawda jest taka, że ​​2 spirale reprezentują dwie klasy, a lewy wykres podrzędny jest przewidywaniami z modelu, a prawy wykres podrzędny to granice decyzji z modelu.

Granica decyzji drzewa

Zwiększenie granicy decyzji

Granica decyzji KNN


EDYCJA: Odpowiedź @ ssdecontrol w tym poście daje inną perspektywę.

To zależy od tego, jak zdefiniujemy „transformację” .

Każda funkcja, która dzieli dane na dwie części, może zostać przekształcona w model liniowy tej postaci, z przecięciem i pojedynczym wejściem (wskaźnik, po której „stronie” partycji znajduje się punkt danych). Ważne jest, aby wziąć pod uwagę różnicę między funkcją decyzyjną a granicą decyzyjną.

Haitao Du
źródło
Nie chcę krytykować, ale wzmocnienie wydaje się trochę trudne, prawda? Czy nie można uzyskać gładszego wyniku przy różnych parametrach? Przepraszam, że jestem złośliwy, ponieważ uważam, że wszystkie wyjaśnienia są bardzo dobre.
YCR
@YCR Myślę, że to jest punkt pobudzenia tam, gdzie masz surową granicę decyzji. Chropowatość jest spowodowana agregacją wielu słabych klasyfikatorów (w tym przykładzie są to drzewa). Ale zgadzam się z tobą, że drugi przykład nie jest dobrym modelem i jest zbyt dobry :)
Haitao Du
1
(+1) Świetna wizualizacja (często używam również spiralsw swoich eksperymentach). Sugestia: wykreślić granice decyzji jako imagei być może dodać poziomy prawdopodobieństwa (jeśli używasz wyników probabilistycznych) za pomocą contour.
Firebug
@Firebug świetna sugestia! wykresy te są generowane w siatce i mogą tylko powiedzieć ostateczną etykietę. Kontur jest znacznie lepszy.
Haitao Du
Spójrz na moją odpowiedź tutaj: stats.stackexchange.com/a/218578/60613
Firebug
21

Niektóre algorytmy wykorzystują hiperpłaszczyznę (tj. Funkcję liniową) do oddzielenia danych. Widocznym przykładem jest regresja logistyczna. Inni używają hiperpłaszczyzny do oddzielania danych po transformacji nieliniowej (np. Sieci neuronowe i obsługują maszyny wektorowe z nieliniowymi ziarnami). W takim przypadku granica decyzyjna jest nieliniowa w pierwotnej przestrzeni danych, ale liniowa w przestrzeni cech, na którą mapowane są dane. W przypadku SVM formuła jądra domyślnie definiuje to mapowanie. Inne algorytmy wykorzystują wiele dzielących hiperpłaszczyzn w lokalnych regionach przestrzeni danych (np. Drzewa decyzyjne). W takim przypadku granica decyzji jest fragmentarycznie liniowa (ale ogólnie nieliniowa).

Jednak inne algorytmy mają nieliniowe granice decyzyjne i nie są sformułowane w kategoriach hiperpłaszczyzn. Widocznym przykładem jest k najbliższej klasyfikacji sąsiadów. Klasyfikatory zestawów (np. Wytwarzane przez wzmocnienie lub pakowanie innych klasyfikatorów) są zasadniczo nieliniowe.

user20160
źródło
Sieć neuronowa nie jest dobrym przykładem klasy modelowej, która wykorzystuje hiperpłaszczyzny po transformacji nieliniowej. Warstwa wyjściowa może być (w wielu przypadkach) aktywacją sigmoidalną, biorąc pod uwagę wcześniejsze warstwy jako nieliniową transformację w przestrzeń cech.
Cagdas Ozgenc
1
@CagdasOzgenc Rozważmy przypadek klasyfikacji binarnej i wyjścia sieciowego z sygnałem sigmoidalnym, jak sugerujesz. Jest to równoważne z regresją logistyczną przy aktywacjach poprzedniej warstwy (użycie wyjść softmax byłoby równoważne z wielomianową regresją logistyczną). Granica decyzyjna jest więc hiperpłaszczyzną w przestrzeni cech. Zdjęcie w pierwotnym pytaniu pokazuje dobry przykład tego.
user20160
Rozumiem, że gdy f (Ax) = 0 if jest jeden do jednego, możesz po prostu zrobić f ^ -1 z (Ax) = f ^ -1 (0) => Ax = 0 (lub jakiś stały c). W przypadku sigmoidu otrzymujesz liniową granicę decyzyjną. Zasadniczo mówimy o przypadkach, w których f nie jest odwracalny?
Cagdas Ozgenc
Czy f jest funkcją aktywacji neuronu wyjściowego i x wyjściem poprzedniej warstwy? Nie jestem pewien, czy rozumiem, o co pytasz.
user20160
x jest wektorem pochodzącym z neuronów poprzedniej warstwy, a f jest funkcją aktywacji wyjścia.
Cagdas Ozgenc