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

587

Pomóż mi zrozumieć różnicę między algorytmem generatywnym a dyskryminacyjnym , pamiętając, że jestem dopiero początkujący.

unj2
źródło
4
Ten dokument (wskazany również przez anguyen8 poniżej) jest dobry: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku
5
Zobacz także to samo pytanie dotyczące statystyk. SE: Generative vs. Discriminative
Lenar Hoyt
Aby uzyskać prostą i wizualną odpowiedź, kliknij tutaj stackoverflow.com/a/52412379/7160346
Ravi G

Odpowiedzi:

840

Załóżmy, że masz dane wejściowe xi 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óre należy odczytywać jako „prawdopodobieństwo ydanego x .

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

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

p(x,y) jest

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

p(y|x) jest

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

Jeśli spojrzysz na te dwie macierze przez kilka minut, zrozumiesz różnicę między tymi dwoma rozkładami prawdopodobieństwa.

Rozkład p(y|x)jest rozkładem naturalnym służącym do zaklasyfikowania danego przykładu xdo klasy y, dlatego algorytmy modelujące to bezpośrednio nazywane są algorytmami dyskryminacyjnymi. Model algorytmów generatywnych p(x,y), w który można przekształcić p(y|x)stosując regułę Bayesa, a następnie zastosować do klasyfikacji. Jednak dystrybucja p(x,y)może być również wykorzystana do innych celów. Na przykład możesz użyć p(x,y)do wygenerowania prawdopodobnych (x,y)par.

Z powyższego opisu możesz myśleć, że modele generatywne są bardziej użyteczne, a zatem lepsze, ale nie jest to takie proste. Ten artykuł jest bardzo popularnym odniesieniem na temat klasyfikatorów dyskryminujących i generatywnych, ale jest dość ciężki. Ogólną zasadą jest to, że modele dyskryminacyjne zwykle przewyższają modele generatywne w zadaniach klasyfikacyjnych.

Stompchicken
źródło
48
Dzięki za gazetę. Autor jest teraz profesorem w Stanford i ma wspaniałe zasoby na stanford.edu/class/cs229/materials.html
unj2
26
Ładne wyjaśnienie również tutaj
clyfe
39
Patrząc na macierze, zauważ, że w pierwszym wszystkie wpisy sumują się do 1,0, podczas gdy w drugim każdy rząd sumuje się do jednego. Przyspieszy to oświecenie (i zmniejszy zamieszanie)
Maxim Khesin,
5
Notatka Andrew Ng tutaj jest również bardzo przydatna: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8
1
„dlatego algorytmy modelujące to bezpośrednio nazywane są algorytmami dyskryminacyjnymi”, wciąż nie wiadomo, dlaczego p(y|x)implikuje, że algorytmy, które to modelują, nazywane są „modelami dyskryminacyjnymi”.
nbro
291

A generatywne algorytm modele jak dane został wygenerowany w celu kategoryzowania sygnał. Powstaje pytanie: w oparciu o założenia generacyjne, która kategoria najprawdopodobniej wygeneruje ten sygnał?

Dyskryminacyjną algorytm nie obchodzi, w jaki sposób dane zostały wygenerowane, to po prostu klasyfikuje dany sygnał.

Carlos Rendon
źródło
6
Ta odpowiedź mnie myli. Obie klasy algorytmów należą do klasy nadzorowanych algorytmów uczenia się, które uczą się modelu oznaczonych danych treningowych w celu uzyskania funkcji przewidującej inne dane. Algorytm dyskryminacyjny, jak go opisujesz, brzmi tak, jakby nie tworzył modelu, czy to prawda? Byłbym zadowolony, gdybyś mógł wzmocnić swoją odpowiedź w tym zakresie.
Lenar Hoyt
42
@mcb Algorytm generatywny modeluje sposób, w jaki dane zostały „wygenerowane”, więc pytasz go „jakie jest prawdopodobieństwo, że ta lub inna klasa wygenerowała to wystąpienie?” i wybierz ten z większym prawdopodobieństwem. Algorytm dyskryminacyjny wykorzystuje dane do utworzenia granicy decyzji, więc pytasz ją „po której stronie granicy decyzji znajduje się ta instancja?” Więc nie tworzy modelu tego, jak dane zostały wygenerowane, tworzy model tego, jak według niego wygląda granica między klasami.
Anthony
1
Czyli model generatywny, taki jak Naive Bayes, nie ma granicy decyzji?
sheetal_158,
4
Więc modele generatywne wydają się być lepsze dla interpretacji?
Candic3
157

Wyobraź sobie, że Twoim zadaniem jest sklasyfikowanie mowy na język.

Możesz to zrobić przez:

  1. uczenie się każdego języka, a następnie klasyfikowanie go przy użyciu właśnie zdobytej wiedzy

lub

  1. określenie różnicy w modelach językowych bez nauki języków, a następnie klasyfikacja mowy.

Pierwszy to podejście generatywne, a drugie to podejście dyskryminacyjne .

Sprawdź to odniesienie, aby uzyskać więcej informacji: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .

madCode
źródło
2
Czy nie jest odwrotnie? Biorąc pod uwagę, że nauczyłeś się języka, działasz w oparciu o dystrybucję warunkową, więc powinno to być podejście dyskryminujące?
facet z Londynu
Myślę, że jest też na odwrót po przeczytaniu poniższych odpowiedzi - Przykład z notatek z wykładu CS299 autorstwa Ghrua
Cyrus
132

W praktyce modele są używane w następujący sposób.

W modelach dyskryminujących , aby przewidzieć etykietę yz przykładu szkolenia x, musisz ocenić:

wprowadź opis zdjęcia tutaj

które jedynie wybiera to, co jest najbardziej prawdopodobne, klasa yrozważa x. To tak, jakbyśmy próbowali modelować granicę decyzyjną między klasami . To zachowanie jest bardzo wyraźne w sieciach neuronowych, gdzie obliczone wagi można postrzegać jako krzywą o złożonym kształcie izolującą elementy klasy w przestrzeni.

Teraz, stosując zasadę Bayesa, zastąpmy wprowadź opis zdjęcia tutajrównanie przez wprowadź opis zdjęcia tutaj. Ponieważ jesteś zainteresowany arg arg , możesz wymazać mianownik, który będzie taki sam dla każdego y. Więc zostajesz

wprowadź opis zdjęcia tutaj

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 modelował granicę między klasami, w drugim przypadku miałeś wspólny rozkład prawdopodobieństwa p(x, y) , ponieważ p(x | y) p(y) = p(x, y), który wyraźnie modeluje rzeczywisty rozkład każdej klasy .

Dzięki funkcji łącznego rozkładu prawdopodobieństwa, przy danym a y, możesz obliczyć („wygenerować”) jego odpowiednią wartość x. Z tego powodu nazywane są modelami „generatywnymi”.

Saul Berardo
źródło
3
Zgodnie z tym rozumowaniem, czy model generatywny i dyskryminacyjny nie są równe w przypadku zastosowania do tego samego rozkładu? Dlaczego zatem występuje różnica w zachowaniu klasyfikacyjnym? A może są one po prostu równe w tym kontekście maksymalnego prawdopodobieństwa?
Sebastian Graf
Aby stwierdzić, czy są one „równe”, czy nie, musimy najpierw zdefiniować, co rozumiemy przez to. Jest wiele wspólnych cech, ale najsilniejszą różnicą jest zastosowana strategia: modeluj rozkład (generatywny) vs. przewiduj klasę, bez względu na rozkład (dyskryminacyjny) - na przykład zastanów się nad KNN.
Saul Berardo
90

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

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

Biorąc pod uwagę zestaw treningowy, algorytm taki jak regresja logistyczna lub algorytm perceptronowy (w zasadzie) próbuje znaleźć linię prostą - to znaczy granicę decyzji - oddzielającą słonie i psy. Następnie, aby sklasyfikować nowe zwierzę jako słonia lub psa, sprawdza, po której stronie granicy decyzji spada, i odpowiednio prognozuje. Nazywamy ten algorytm uczenia się dyskryminującego .

Oto inne podejście. Po pierwsze, patrząc na słonie, możemy zbudować model tego, jak wyglądają słonie. Następnie, patrząc na psy, możemy zbudować osobny model tego, jak wyglądają psy. Wreszcie, aby sklasyfikować nowe zwierzę, możemy dopasować nowe zwierzę do modelu słonia i dopasować je do modelu psa, aby zobaczyć, czy nowe zwierzę bardziej przypomina słonie, czy bardziej psy, które widzieliśmy w zestawie treningowym . Nazywamy ten algorytm uczenia generatywnego .

Ghrua
źródło
33

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

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

musimy modelować p (x), co nie ma znaczenia dla danego zadania. Praktyczne ograniczenia, takie jak rzadkość danych, zmuszą nas do modelowania p(x)przy pewnych słabych założeniach dotyczących niezależności. Dlatego intuicyjnie używamy modeli dyskryminacyjnych do klasyfikacji.

Sriwantha Attanayake
źródło
30

Różne modele podsumowano w poniższej tabeli: wprowadź opis zdjęcia tutaj

Ravi G.
źródło
2
Czy możesz dodać źródło do tego obrazu? Myślę, że to jedna z lepszych odpowiedzi tutaj
Alex L
4
Zdjęcie pochodzi stąd: stanford.edu/~shervine/teaching/cs-229/...
Ali Abbas Jaffri
22

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

Zasadnicza różnica między dyskryminacyjnych modeli i modeli generatywnych jest:

Modele dyskryminacyjne uczą się (twardej lub miękkiej) granicy między klasami

Modele generatywne modelują rozkład poszczególnych klas

Edytować:

Model generatywny to taki, który może generować dane . Modeluje zarówno cechy, jak i klasę (tj. Kompletne dane).

Jeśli modelujemy P(x,y): mogę użyć tego rozkładu prawdopodobieństwa do wygenerowania punktów danych - a zatem wszystkie modele algorytmów P(x,y)są generatywne.

Na przykład. modeli generatywnych

  • Naiwne modele Bayesa P(c)i P(d|c)- gdzie cjest klasa i dwektor cech.

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

    Dlatego Naive Bayes w niektórych modelach form, P(c,d)

  • Bayes Net

  • Sieci Markowa

Model dyskryminacyjny to taki, którego można używać wyłącznie do dyskryminacji / klasyfikacji punktów danych . Musisz modelować tylko P(y|x)w takich przypadkach (tj. Prawdopodobieństwo klasy, biorąc pod uwagę wektor cech).

Na przykład. modeli dyskryminujących:

  • regresja logistyczna

  • Sieci neuronowe

  • Warunkowe pola losowe

Zasadniczo modele generatywne muszą modelować znacznie więcej niż modele dyskryminacyjne, a zatem czasami nie są tak skuteczne. W rzeczywistości większość algorytmów uczenia się bez nadzoru, takich jak klastrowanie itp., Można nazwać generatywnymi, ponieważ modelują one P(d)(i nie ma klas: P)

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

Prakhar Agrawal
źródło
8

Krótka odpowiedź

Wiele odpowiedzi tutaj opiera się na szeroko stosowanej definicji matematycznej [1]:

  • Modele dyskryminacyjne bezpośrednio uczą się warunkowej dystrybucji predykcyjnej p(y|x).
  • Modele generatywne uczą się wspólnej dystrybucji p(x,y)(a raczej p(x|y)i p(y)).
    • Rozkład predykcyjny p(y|x)można uzyskać z regułą Bayesa.

Mimo że jest bardzo przydatna, ta wąska definicja zakłada nadzorowane ustawienie i jest mniej przydatna podczas badania metod bez nadzoru lub częściowo nadzorowanych. Nie dotyczy to również wielu współczesnych podejść do głębokiego modelowania generatywnego . Na przykład, teraz mamy dorozumiane modele generatywne, np. Generatywne sieci przeciwników (GAN), które są oparte na próbkowaniu i nawet nie jawnie modelują gęstości prawdopodobieństwa p(x)(zamiast tego uczą się miary dywergencji poprzez sieć dyskryminacyjną). Ale nazywamy je „modelami generatywnymi”, ponieważ są one używane do generowania (wielowymiarowych [10]) próbek.

Szersze i bardziej zasadnicze Definicja [2] wydaje się być równie montażu tego ogólnego problemu:

  • Modele dyskryminacyjne poznają granicę między klasami.
    • Dzięki temu mogą rozróżniać różne rodzaje instancji danych.
  • Modele generatywne uczą się dystrybucji danych.
    • Mogą więc generować nowe instancje danych.

Od http://primo.ai/index.php?title=Discriminative_vs._Generative Źródło obrazu


Bliższe spojrzenie

Mimo to pytanie to sugeruje poniekąd fałszywą dychotomię [3]. „Dychotomia generatywno-dyskryminacyjna” jest w rzeczywistości spektrum, które można nawet płynnie interpolować między [4].

W rezultacie to rozróżnienie staje się arbitralne i mylące, szczególnie gdy wiele popularnych modeli nie wpada w odpowiedni sposób w jeden lub drugi [5,6], lub w rzeczywistości są modelami hybrydowymi (kombinacje modeli klasycznie „dyskryminujących” i „generatywnych”) .

Niemniej jednak jest to bardzo użyteczne i powszechne rozróżnienie. Możemy wymienić kilka wyraźnych przykładów modeli generatywnych i dyskryminacyjnych, zarówno kanonicznych, jak i najnowszych:

  • Generatywne: Naiwne Bayesa, utajony przydział Dirichleta (LDA), Generatywne sieci przeciwne (GAN), zmienne autoencodery (VAE), normalizujące przepływy.
  • Dyskryminacja: maszyna wektorów wsparcia (SVM), regresja logistyczna, najbardziej głębokie sieci neuronowe.

Istnieje również wiele interesujących prac dogłębnie badających podział generatywno-dyskryminacyjny [7] i spektrum [4,8], a nawet przekształcających modele dyskryminacyjne w modele generatywne [9].

Ostatecznie definicje ciągle ewoluują, szczególnie w tej szybko rozwijającej się dziedzinie :) Najlepiej wziąć je ze szczyptą soli, a może nawet przedefiniować je dla siebie i innych.


Źródła

  1. Prawdopodobnie wywodzi się z „Machine Learning - Discriminative and Generative” (Tony Jebara, 2004).
  2. Crash Course in Machine Learning by Google
  3. Błąd generatywno-dyskryminacyjny
  4. „Principled Hybrids of Generative and Discriminative Models” (Lasserre i in., 2006)
  5. Pytanie @ shimao
  6. Odpowiedź Binu Jasima
  7. Porównywanie regresji logistycznej i naiwnych Bayesa:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. „Twój klasyfikator jest potajemnie modelem opartym na energii” (Grathwohl i in., 2019)
  10. Notatki Stanford CS236 : Z technicznego punktu widzenia probabilistyczny model dyskryminacyjny jest również generatywnym modelem etykiet uwarunkowanych danymi. Jednak pojęcie modeli generatywnych jest zwykle zarezerwowane dla danych wielowymiarowych.
Christabella Irwanto
źródło
1
To naprawdę powinno mieć więcej pozytywnych opinii. Twoja jedyna odpowiedź dotyczyła „fałszywej dychotomii”, którą znalazłem. Moje pytanie jest podobne do tego: stats.stackexchange.com/questions/408421/...
Antonio Luis Sombra
1

Wszystkie poprzednie odpowiedzi są świetne i chciałbym podłączyć jeszcze jeden punkt.

Z generatywnych modeli algorytmów możemy wyprowadzić dowolny rozkład; podczas gdy możemy uzyskać tylko rozkład warunkowy P (Y | X) z modeli algorytmu dyskryminacyjnego (lub możemy powiedzieć, że są one użyteczne tylko do odróżniania etykiety Y), i dlatego nazywa się to modelem dyskryminacyjnym. Model dyskryminacyjny nie zakłada, że ​​X są niezależne, biorąc pod uwagę Y ($ X_i \ perp X _ {- i} | Y $), a zatem zwykle ma większą moc obliczania tego rozkładu warunkowego.

Lerner Zhang
źródło
0

Moje dwa centy: Podejścia dyskryminacyjne podkreślają różnice Podejścia generatywne nie koncentrują się na różnicach; starają się zbudować model reprezentatywny dla klasy. Te dwa elementy pokrywają się. Najlepiej byłoby zastosować oba podejścia: jedno będzie przydatne do znalezienia podobieństw, a drugie będzie przydatne do znalezienia podobieństw.

Bieg
źródło
0

Model algorytmu generatywnego nauczy się całkowicie na podstawie danych treningowych i przewidzi reakcję.

Algorytm dyskryminujący ma na celu jedynie klasyfikację lub rozróżnienie między dwoma wynikami.

Nages
źródło
To, co otrzymuję, to model generatywny oparty na uczeniu się nadzorowanym, podczas gdy model dyskryminujący oparty jest na uczeniu się bez nadzoru. Czy mam rację?
Waseem Ahmad Naeem
@WaseemAhmadNaeem Niby, ale trochę nie. y jest zawsze celem i jest potrzebny jako część danych wejściowych, więc oba są nadzorowane. Generowanie wydaje się być bez nadzoru, ponieważ pierwszym krokiem jest uzyskanie pełnej dystrybucji (we wszystkich odmianach, nie uznając y za specjalną). Jeśli się tam zatrzymałeś i nie traktujesz go jako specjalnego, to ta część sama w sobie nie jest nadzorowana.
Mitch
@Mitch, czy mogę poprosić Cię o udostępnienie papierowych / notatek / linków na temat różnic między nimi? właściwie jestem trochę zdezorientowany tą koncepcją. Z góry dziękuję
Waseem Ahmad Naeem
@WaseemAhmadNaeem Szukaj w Cross Validated.SE (strona statystyki / ML SE), w szczególności modele generatywne vs dyskryminacyjne lub generatywne vs dyskryminacyjne w kontekście bayesowskim . Podstawowe przykłady Naiwny Bayes ma charakter generatywny, regresja logistyczna jest dyskryminująca. Więcej przykładów obu .
Mitch
0

Ten artykuł bardzo mi pomógł w zrozumieniu tej koncepcji.

W podsumowaniu,

  • Oba są modelami probabilistycznymi, co oznacza, że ​​oba wykorzystują prawdopodobieństwo (a dokładniej prawdopodobieństwo warunkowe ) do obliczania klas dla nieznanych danych.
  • Klasyfikatory generatywne stosują wspólne twierdzenie PDF i Bayesa do zbioru danych i obliczają prawdopodobieństwo warunkowe na podstawie wartości z nich.
  • Klasyfikatory dyskryminujące bezpośrednio znajdują warunkowe prawdopodobieństwo w zestawie danych

Dobry materiał do czytania: prawdopodobieństwo warunkowe , wspólny plik PDF

ansh sachdeva
źródło