Jaka jest różnica między algorytmem generatywnym a dyskryminacyjnym?

Proszę, pomóż mi zrozumieć różnicę między generatywnym i dyskryminacyjnym algorytmem, pamiętając, że jestem dopiero początkującym.

Author: nbro, 2009-05-18

10 answers

Załóżmy, że masz Dane wejściowe x i chcesz sklasyfikować dane do etykiet y. model generatywny uczy się wspólnego rozkładu prawdopodobieństwa p(x,y), a model dyskryminacyjny uczy się warunkowego rozkładu prawdopodobieństwa p(y|x) - który powinieneś przeczytać jako"prawdopodobieństwo y podane x".

Oto bardzo prosty przykład. Załóżmy, że masz następujące dane w postaci (x, y):

(1,0), (1,0), (2,0), (2, 1)

p(x,y) is

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x) is

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

Jeśli poświęcisz kilka minut, aby spojrzeć na te dwie macierze, zrozumiesz różnicę między dwoma rozkładami prawdopodobieństwa.

Rozkład p(y|x) jest naturalnym rozkładem do klasyfikacji danego przykładu x do klasy y, dlatego algorytmy, które go bezpośrednio modelują, nazywane są algorytmami dyskryminacyjnymi. Model algorytmów generatywnych p(x,y), który można przekształcić w p(y|x) poprzez zastosowanie reguły Bayesa, a następnie wykorzystać do klasyfikacji. Jednak Dystrybucja p(x,y) może być również wykorzystywana do innych celów. Na przykład możesz użyć p(x,y) do wygenerowania prawdopodobnych par (x,y).

Z powyższego opisu można by pomyśleć, że modele generatywne są bardziej ogólnie użyteczne i dlatego lepsze, ale to nie jest takie proste. ten artykuł jest bardzo popularnym odniesieniem na temat klasyfikatorów dyskryminacyjnych kontra generatywnych, ale jest dość ciężki. Ogólna istota jest taka, że dyskryminujący modele generalnie przewyższają modele generatywne w zadaniach klasyfikacyjnych.

 686
Author: Stompchicken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 00:57:16

A algorytm generatywny modeluje sposób generowania danych w celu sklasyfikowania sygnału. Zadaje pytanie: w oparciu o moje założenia generacyjne, która kategoria najprawdopodobniej wygeneruje ten sygnał?

A algorytm dyskryminacyjny nie dba o to, jak dane zostały wygenerowane, po prostu kategoryzuje dany sygnał.

 279
Author: Carlos Rendon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-03 15:12:15

Wyobraź sobie, że Twoim zadaniem jest klasyfikacja mowy do języka.

Możesz to zrobić poprzez:

  1. nauka każdego języka, a następnie klasyfikowanie go za pomocą wiedzy, którą właśnie zdobyłeś

LUB

  1. określanie różnic w modelach językowych bez uczenia się języków, a następnie klasyfikowanie mowy.

Pierwszy to generatywne podejście, a drugi to dyskryminacyjne podejdźcie.

Sprawdź ten odnośnik, aby uzyskać więcej szczegółów: http://www.cedar.buffalo.edu/ ~ srihari / CSE574 / dyskryminacyjne-generatywne. pdf .

 140
Author: madCode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 01:08:33

W praktyce modele są stosowane w następujący sposób.

W modelach dyskryminacyjnych, aby przewidzieć Etykietę y z przykładu treningowego x, należy ocenić:

Tutaj wpisz opis obrazka

, która jedynie wybiera najbardziej prawdopodobną klasę y biorąc pod uwagę x. To tak, jakbyśmy próbowali modelować granicę decyzyjną między klasami . Takie zachowanie jest bardzo wyraźne w sieciach neuronowych, gdzie obliczone wagi można postrzegać jako izolację krzywej o złożonym kształcie elementy klasy w przestrzeni.

Teraz, używając Zasady Bayesa, zastąp Tutaj wpisz opis obrazka w równaniu przez Tutaj wpisz opis obrazka. Ponieważ interesuje Cię tylko arg max , możesz wymazać mianownik, który będzie taki sam dla każdego y. Więc zostajesz z

Tutaj wpisz opis obrazka

Które jest równaniem używanym w modelach generatywnych.

Podczas gdy w pierwszym przypadku miałeś warunkowy rozkład prawdopodobieństwa p(y|x), który wzorował się na granica między klasami, w drugim masz wspólny rozkład prawdopodobieństwa p(x, y), ponieważ p(x, y) = p(x | y) p(y), który jawnie modeluje rzeczywisty rozkład każdej klasy.

Za pomocą wspólnej funkcji rozkładu prawdopodobieństwa, podanej y, można obliczyć ("wygenerować") jej odpowiedni x. Z tego powodu nazywane są modelami "generatywnymi".

 111
Author: Saul Berardo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 01:13:01

Oto najważniejsza część notatek wykładowych CS299 (autorstwa Andrew Ng) związanych z tym tematem, co naprawdę pomaga mi zrozumieć różnicę między dyskryminacyjnymi i generatywnymi algorytmami uczenia się.

Załóżmy, że mamy dwie klasy zwierząt, słonia(y = 1) i psa (y = 0). I x jest cechą zwierząt.

Biorąc pod uwagę zestaw szkoleń, algorytm regresji logistycznej lub algorytm perceptron (w zasadzie) próbuje znaleźć linię prostą-czyli granica decyzji-która oddziela słonie i psy. Następnie do klasyfikacji nowe zwierzę jako słoń lub pies, sprawdza po której stronie granica decyzji spada, i sprawia, że jego przewidywania odpowiednio. Nazywamy je dyskryminacyjnym algorytmem uczenia się.

Oto inne podejście. Po pierwsze, patrząc na słonie, możemy zbudować model jak wyglądają słonie. Wtedy, patrząc na psy, możemy zbudować osobny model jakie psy na to wygląda. Wreszcie, aby sklasyfikować nowe zwierzę, możemy dopasować nowe zwierzę do modelu słonia i dopasować je do model psa, aby sprawdzić, czy nowe zwierzę wygląda bardziej jak słonie albo bardziej jak psy, które widzieliśmy na planie treningowym. Nazywamy je generatywnym algorytmem uczenia się.

 64
Author: Ghrua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 01:02:23

Ogólnie rzecz biorąc, w społeczności uczenia maszynowego istnieje praktyka, aby nie uczyć się czegoś, czego nie chcesz. Na przykład rozważmy problem klasyfikacji, w którym celem jest przypisanie etykiet y do danego wejścia x. Jeśli użyjemy modelu generatywnego

p(x,y)=p(y|x).p(x)

Musimy modelować p (x), co jest nieistotne dla danego zadania. Praktyczne ograniczenia, takie jak rzadkość danych, zmuszą nas do modelowania p(x) z pewnymi słabymi założeniami niezależności. Dlatego intuicyjnie używamy modeli rozróżniających do klasyfikacji.

 28
Author: Sriwantha Attanayake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-28 01:37:46

Dodatkowy punkt informacyjny, który dobrze pasuje do odpowiedzi StompChicken powyżej.

Podstawowa różnica między modelami dyskryminacyjnymi a modelami generatywnymi wynosi:

Modele dyskryminacyjne poznaj (twardą lub miękką) granicę między klasami

Modele generatywne model rozkład poszczególnych klas

Edit:

Generatywny model jest tym , który może generować dane . Modeluje zarówno funkcje, jak i klasę (tj. Pełne Dane).

Jeśli modelujemy P(x,y): mogę użyć tego rozkładu prawdopodobieństwa do generowania punktów danych - i stąd wszystkie algorytmy modelujące P(x,y) są generatywne.

Np. z modeli generatywnych

  • Naiwne modele Bayesa P(c) i P(d|c) - Gdzie c jest klasą, A {[5] } jest wektorem funkcji.

    Również, P(c,d) = P(c) * P(d|c)

    Stąd naiwny Bayes w niektóre modele postaci, P(c,d)

  • Bayes Net

  • Sieci Markow

Model dyskryminacyjny jest Tym, który może być użyty tylko do rozróżniania / klasyfikacji punktów danych . W takich przypadkach wymagane jest jedynie modelowanie P(y|x) (tj. prawdopodobieństwo klasy, biorąc pod uwagę wektor funkcji).

Np. z modeli dyskryminacyjnych:

  • Regresja logistyczna

  • Sieci Neuronowe

  • Warunkowe losowe pola

Ogólnie rzecz biorąc, modele generatywne muszą modelować znacznie więcej niż modele dyskryminacyjne i dlatego czasami nie są tak skuteczne. W rzeczywistości większość (Nie wiem, czy wszystkie) nienadzorowanych algorytmów uczenia się, takich jak grupowanie itp., można nazwać generatywnymi, ponieważ modelują P(d) (i nie ma klas: P)

PS: część odpowiedzi pochodzi ze źródła

 18
Author: Prakhar Agrawal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-25 06:50:01

Poszczególne modele podsumowano w poniższej tabeli: Tutaj wpisz opis obrazka

 3
Author: Ravi Gurnatham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 18:45:32

Moje dwa grosze: Podejścia dyskryminacyjne podkreślają różnice Podejścia generatywne nie koncentrują się na różnicach; starają się zbudować model, który jest reprezentatywny dla klasy. Istnieje nakładanie się między nimi. Najlepiej byłoby zastosować oba podejścia: jedno będzie przydatne do znalezienia podobieństw, a drugie będzie przydatne do znalezienia podobieństw.

 1
Author: Arun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-31 10:17:00

Model algorytmu generatywnego będzie uczyć się całkowicie z danych treningowych i będzie przewidywać odpowiedź.

Zadanie algorytmu rozróżniającego polega na sklasyfikowaniu lub rozróżnieniu dwóch wyników.

 1
Author: Nages,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-17 09:31:50