Pomóż mi zrozumieć różnicę między algorytmem generatywnym a dyskryminacyjnym , pamiętając, że jestem dopiero początkujący.
587
Pomóż mi zrozumieć różnicę między algorytmem generatywnym a dyskryminacyjnym , pamiętając, że jestem dopiero początkujący.
Odpowiedzi:
Załóżmy, że masz dane wejściowe
x
i chcesz sklasyfikować dane do etykiety
. Model generatywny uczy się wspólnego rozkładu prawdopodobieństwa,p(x,y)
a model dyskryminacyjny uczy się warunkowego rozkładu prawdopodobieństwap(y|x)
- które należy odczytywać jako „prawdopodobieństwoy
danegox
” .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)
jestp(y|x)
jestJeś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ładux
do klasyy
, dlatego algorytmy modelujące to bezpośrednio nazywane są algorytmami dyskryminacyjnymi. Model algorytmów generatywnychp(x,y)
, w który można przekształcićp(y|x)
stosując regułę Bayesa, a następnie zastosować do klasyfikacji. Jednak dystrybucjap(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.
źródło
p(y|x)
implikuje, że algorytmy, które to modelują, nazywane są „modelami dyskryminacyjnymi”.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ł.
źródło
Wyobraź sobie, że Twoim zadaniem jest sklasyfikowanie mowy na język.
Możesz to zrobić przez:
lub
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 .
źródło
W praktyce modele są używane w następujący sposób.
W modelach dyskryminujących , aby przewidzieć etykietę
y
z przykładu szkoleniax
, musisz ocenić:które jedynie wybiera to, co jest najbardziej prawdopodobne, klasa
y
rozważax
. 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 równanie przez . Ponieważ jesteś zainteresowany arg arg , możesz wymazać mianownik, który będzie taki sam dla każdego
y
. Więc zostajeszktó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ństwap(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”.źródło
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 .
źródło
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
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.źródło
Różne modele podsumowano w poniższej tabeli:
źródło
Dodatkowy punkt informacyjny, który dobrze pasuje do odpowiedzi StompChicken powyżej.
Zasadnicza różnica między dyskryminacyjnych modeli i modeli generatywnych jest:
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ówP(x,y)
są generatywne.Na przykład. modeli generatywnych
Naiwne modele Bayesa
P(c)
iP(d|c)
- gdziec
jest klasa id
wektor 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
źródło
Krótka odpowiedź
Wiele odpowiedzi tutaj opiera się na szeroko stosowanej definicji matematycznej [1]:
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:
Ź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:
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
źródło
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.
źródło
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.
źródło
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.
źródło
Ten artykuł bardzo mi pomógł w zrozumieniu tej koncepcji.
W podsumowaniu,
Dobry materiał do czytania: prawdopodobieństwo warunkowe , wspólny plik PDF
źródło