Was ist der Unterschied zwischen einem generativen und einem diskriminativen Algorithmus?


587

Bitte helfen Sie mir, den Unterschied zwischen einem generativen und einem diskriminativen Algorithmus zu verstehen , und denken Sie daran, dass ich nur ein Anfänger bin.


4
Dieses Dokument (auch von anguyen8 unten hervorgehoben) ist gut: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku

5
Siehe auch die gleiche Frage auf Statistiken.SE: Generativ gegen Diskriminativ
Lenar Hoyt

Für eine einfache und visuelle Antwort klicken Sie hier stackoverflow.com/a/52412379/7160346
Ravi G

Antworten:


840

Angenommen, Sie haben Eingabedaten xund möchten die Daten in Beschriftungen klassifizieren y. Ein generatives Modell lernt die gemeinsame Wahrscheinlichkeitsverteilung p(x,y)und ein diskriminatives Modell lernt die bedingte Wahrscheinlichkeitsverteilung p(y|x)- die Sie als " ygegebene Wahrscheinlichkeit x" lesen sollten .

Hier ist ein wirklich einfaches Beispiel. Angenommen, Sie haben die folgenden Daten im Formular (x,y):

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

p(x,y) ist

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

p(y|x) ist

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

Wenn Sie sich einige Minuten Zeit nehmen, um auf diese beiden Matrizen zu starren, werden Sie den Unterschied zwischen den beiden Wahrscheinlichkeitsverteilungen verstehen.

Die Verteilung p(y|x)ist die natürliche Verteilung zum Klassifizieren eines bestimmten Beispiels xin eine Klasse y, weshalb Algorithmen, die dies direkt modellieren, als diskriminative Algorithmen bezeichnet werden. Generatives Algorithmusmodell p(x,y), in das p(y|x)durch Anwendung der Bayes-Regel transformiert und dann zur Klassifizierung verwendet werden kann. Die Distribution p(x,y)kann jedoch auch für andere Zwecke verwendet werden. Zum Beispiel könnten Sie generieren wahrscheinlich Paare.p(x,y)(x,y)

Aus der obigen Beschreibung geht möglicherweise hervor, dass generative Modelle allgemeiner nützlich und daher besser sind, aber es ist nicht so einfach. Dieses Papier ist eine sehr beliebte Referenz zum Thema diskriminierende vs. generative Klassifikatoren, aber es ist ziemlich schwerfällig. Das Wesentliche ist, dass diskriminierende Modelle generative Modelle bei Klassifizierungsaufgaben im Allgemeinen übertreffen.


48
Danke für das Papier. Der Autor ist jetzt Professor an der Stanford University und verfügt über wunderbare Ressourcen unter stanford.edu/class/cs229/materials.html
unj2

26
Eine schöne Erklärung auch von Andrew Ng hier
Clyfe

39
Wenn Sie auf die Matrizen starren, beachten Sie, dass im ersten alle Einträge bis zu 1,0 summieren, während im zweiten jede Zeile bis eins summiert. Dies wird die Erleuchtung beschleunigen (und Verwirrung reduzieren)
Maxim Khesin

5
Eine Notiz von Andrew Ng hier ist auch sehr nützlich: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8

1
"Deshalb werden Algorithmen, die dies direkt modellieren, als diskriminative Algorithmen bezeichnet", immer noch nicht sicher, warum p(y|x)impliziert wird, dass Algorithmen, die es modellieren, als "diskriminative Modelle" bezeichnet werden.
nbro

291

Ein generativer Algorithmus modelliert, wie die Daten generiert wurden, um ein Signal zu kategorisieren. Es stellt sich die Frage: Welche Kategorie erzeugt dieses Signal aufgrund meiner Generierungsannahmen am wahrscheinlichsten?

Ein Unterscheidungsalgorithmus kümmert sich nicht darum, wie die Daten erzeugt wurden, er kategorisiert einfach ein gegebenes Signal.


6
Diese Antwort verwirrt mich. Beide Klassen von Algorithmen fallen in die Klasse der überwachten Lernalgorithmen, die ein Modell von gekennzeichneten Trainingsdaten lernen, um eine Funktion abzuleiten, die andere Daten vorhersagt. Der diskriminierende Algorithmus, wie Sie ihn beschreiben, klingt so, als würde er kein Modell erstellen. Ist das richtig? Ich würde mich freuen, wenn Sie Ihre diesbezügliche Antwort bestätigen könnten.
Lenar Hoyt

42
@mcb Ein generativer Algorithmus modelliert, wie die Daten "generiert" wurden. Sie fragen ihn also: "Wie wahrscheinlich ist es, dass diese oder jene Klasse diese Instanz generiert hat?" und wählen Sie die mit der besseren Wahrscheinlichkeit. Ein Unterscheidungsalgorithmus verwendet die Daten, um eine Entscheidungsgrenze zu erstellen. Sie fragen also: "Auf welcher Seite der Entscheidungsgrenze befindet sich diese Instanz?" Es wird also kein Modell dafür erstellt, wie die Daten generiert wurden, sondern es wird ein Modell dafür erstellt, wie die Grenze zwischen Klassen aussieht.
Anthony

1
Ein generatives Modell wie Naive Bayes hat also keine Entscheidungsgrenze?
sheetal_158

4
Generative Modelle scheinen also besser für die Interpretierbarkeit zu sein?
Candic3

157

Stellen Sie sich vor, Ihre Aufgabe ist es, eine Rede einer Sprache zuzuordnen.

Sie können es entweder tun:

  1. Lernen Sie jede Sprache und klassifizieren Sie sie dann anhand des soeben erworbenen Wissens

oder

  1. Bestimmen des Unterschieds in den Sprachmodellen, ohne die Sprachen zu lernen, und Klassifizieren der Sprache.

Der erste ist der generative Ansatz und der zweite ist der diskriminative Ansatz.

Weitere Informationen finden Sie in dieser Referenz: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .


2
Ist es nicht umgekehrt? In Anbetracht dessen, dass Sie die Sprache gelernt haben, arbeiten Sie mit einer bedingten Verteilung und es sollte daher ein diskriminierender Ansatz sein?
Londoner Typ

Ich denke, es ist auch umgekehrt, nachdem ich die Antworten unten gelesen habe - Beispiel aus den Vorlesungsskripten von CS299 von Ghrua
Mitali Cyrus

132

In der Praxis werden die Modelle wie folgt verwendet.

In diskriminierenden Modellen müssen Sie Folgendes bewerten , um das Etikett anhand ydes Trainingsbeispiels vorherzusagen x:

Geben Sie hier die Bildbeschreibung ein

die lediglich wählt , was ist die wahrscheinlichste Klasse unter yBerücksichtigung x. Es ist, als wollten wir die Entscheidungsgrenze zwischen den Klassen modellieren . Dieses Verhalten ist in neuronalen Netzen sehr deutlich, wo die berechneten Gewichte als komplex geformte Kurve angesehen werden können, die die Elemente einer Klasse im Raum isoliert.

Ersetzen wir nun nach der Bayes-Regel das Geben Sie hier die Bildbeschreibung einin der Gleichung durch Geben Sie hier die Bildbeschreibung ein. Da Sie nur an arg max interessiert sind , können Sie den Nenner auslöschen, der für alle gleich ist y. Sie bleiben also bei

Geben Sie hier die Bildbeschreibung ein

Welches ist die Gleichung, die Sie in generativen Modellen verwenden .

Während im ersten Fall , dass Sie die hatte bedingte Wahrscheinlichkeitsverteilung p(y|x) , die die Grenze zwischen Klassen modelliert, in der zweiten hatten Sie die gemeinsame Verteilungswahrscheinlichkeit p(x, y) , da p(x | y) p(y) = p(x, y), die explizit Modelle die tatsächliche Verteilung der einzelnen Klassen .

Mit der gemeinsamen Wahrscheinlichkeitsverteilungsfunktion ykönnen Sie bei gegebener a ihre jeweiligen berechnen ("generieren") x. Aus diesem Grund werden sie "generative" Modelle genannt.


3
Sind nach dieser Überlegung das generative und das diskriminative Modell nicht gleich, wenn sie auf dieselbe Verteilung angewendet werden? Warum gibt es dann einen Unterschied im Klassifizierungsverhalten? Oder sind sie in diesem Maximum-Likelihood-Kontext einfach gleich?
Sebastian Graf

Um festzustellen, ob sie "gleich" sind oder nicht, müssen wir zunächst definieren, was wir damit meinen. Es gibt viele Gemeinsamkeiten, aber der größte Unterschied ist die angewandte Strategie: Modellieren Sie die Verteilung (generativ) und prognostizieren Sie eine Klasse, unabhängig von der Verteilung (diskriminativ) - denken Sie ein Beispiel für eine Sekunde an KNN.
Saul Berardo

90

Hier ist der wichtigste Teil der Vorlesungsunterlagen von CS299 (von Andrew Ng) zum Thema, der mir wirklich hilft, den Unterschied zwischen diskriminativen und generativen Lernalgorithmen zu verstehen .

Angenommen, wir haben zwei Tierklassen, Elefant ( y = 1) und Hund ( y = 0). Und x ist der Merkmalsvektor der Tiere.

Bei einem Trainingssatz versucht ein Algorithmus wie die logistische Regression oder der Perzeptron-Algorithmus (im Grunde genommen), eine gerade Linie - dh eine Entscheidungsgrenze - zu finden, die die Elefanten und Hunde trennt. Um ein neues Tier entweder als Elefanten oder als Hund zu klassifizieren, prüft es, auf welche Seite der Entscheidungsgrenze es fällt, und macht seine Vorhersage entsprechend. Wir nennen diesen diskriminativen Lernalgorithmus .

Hier ist ein anderer Ansatz. Wenn wir uns Elefanten ansehen, können wir zunächst ein Modell erstellen, wie Elefanten aussehen. Wenn wir uns dann Hunde ansehen, können wir ein separates Modell erstellen, wie Hunde aussehen. Um ein neues Tier zu klassifizieren, können wir das neue Tier mit dem Elefantenmodell und mit dem Hundemodell vergleichen, um festzustellen, ob das neue Tier eher wie die Elefanten oder eher wie die Hunde aussieht, die wir im Trainingsset gesehen haben . Wir nennen diesen generativen Lernalgorithmus .


33

Im Allgemeinen gibt es in der Community des maschinellen Lernens die Praxis, etwas nicht zu lernen, was Sie nicht möchten. Stellen Sie sich beispielsweise ein Klassifizierungsproblem vor, bei dem das Ziel darin besteht, einer bestimmten x-Eingabe y-Beschriftungen zuzuweisen. Wenn wir ein generatives Modell verwenden

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

wir müssen p (x) modellieren, was für die jeweilige Aufgabe irrelevant ist. Praktische Einschränkungen wie Datenknappheit zwingen uns, p(x)mit einigen schwachen Unabhängigkeitsannahmen zu modellieren . Daher verwenden wir intuitiv diskriminierende Modelle zur Klassifizierung.



22

Ein zusätzlicher informativer Punkt, der gut zu der Antwort von StompChicken oben passt.

Der grundlegende Unterschied zwischen diskriminierenden und generativen Modellen ist:

Diskriminierende Modelle lernen die (harte oder weiche) Grenze zwischen Klassen

Generative Modelle modellieren die Verteilung einzelner Klassen

Bearbeiten:

Ein generatives Modell kann Daten generieren . Es modelliert sowohl die Merkmale als auch die Klasse (dh die vollständigen Daten).

Wenn wir modellieren P(x,y): Ich kann diese Wahrscheinlichkeitsverteilung verwenden, um Datenpunkte zu generieren - und daher sind alle Modellierungsalgorithmen P(x,y)generativ.

Z.B. von generativen Modellen

  • Naive Bayes Modelle P(c)und P(d|c)- wo cist die Klasse und dist der Merkmalsvektor.

    Ebenfalls, P(c,d) = P(c) * P(d|c)

    Daher Naive Bayes in irgendeiner Form Modelle, P(c,d)

  • Bayes Net

  • Markov-Netze

Ein Unterscheidungsmodell kann nur zur Unterscheidung / Klassifizierung der Datenpunkte verwendet werden . Sie müssen nur P(y|x)in solchen Fällen modellieren (dh die Wahrscheinlichkeit einer Klasse bei gegebenem Merkmalsvektor).

Z.B. von diskriminierenden Modellen:

  • logistische Regression

  • Neuronale Netze

  • Bedingte Zufallsfelder

Generelle Modelle müssen im Allgemeinen viel mehr modellieren als diskriminative Modelle und sind daher manchmal nicht so effektiv. Tatsächlich können die meisten (nicht alle) nicht überwachten Lernalgorithmen wie Clustering usw. als generativ bezeichnet werden, da sie modellieren P(d)(und es gibt keine Klassen: P).

PS: Ein Teil der Antwort stammt aus der Quelle


8

Die kurze Antwort

Viele der Antworten hier stützen sich auf die weit verbreitete mathematische Definition [1]:

  • Diskriminationsmodelle lernen direkt die bedingte Vorhersageverteilung p(y|x).
  • Generative Modelle lernen die gemeinsame Verteilung p(x,y)(oder besser gesagt, p(x|y)und p(y)).
    • Die prädiktive Verteilung p(y|x)kann mit der Bayes-Regel erhalten werden.

Obwohl diese enge Definition sehr nützlich ist, setzt sie die überwachte Einstellung voraus und ist weniger praktisch, wenn unbeaufsichtigte oder halbüberwachte Methoden untersucht werden. Es gilt auch nicht für viele zeitgenössische Ansätze zur tiefen generativen Modellierung . Zum Beispiel haben wir jetzt implizite generative Modelle, z. B. Generative Adversarial Networks (GANs), die auf Stichproben basieren und die Wahrscheinlichkeitsdichte nicht einmal explizit modellieren p(x)(stattdessen lernen wir ein Divergenzmaß über das Diskriminatornetzwerk). Wir nennen sie jedoch "generative Modelle", da sie zur Erzeugung von (hochdimensionalen [10]) Proben verwendet werden.

Eine umfassendere und grundlegendere Definition [2] scheint für diese allgemeine Frage gleichermaßen geeignet zu sein:

  • Diskriminierende Modelle lernen die Grenze zwischen Klassen.
    • So können sie unterscheiden zwischen verschiedenen Arten von Dateninstanzen.
  • Generative Modelle lernen die Verteilung von Daten.
    • So können sie neue Dateninstanzen generieren .

Von http://primo.ai/index.php?title=Discriminative_vs._Generative Bildquelle


Eine genauere Betrachtung

Trotzdem impliziert diese Frage eine falsche Dichotomie [3]. Die generativ-diskriminative "Dichotomie" ist in der Tat ein Spektrum, zwischen dem Sie sogar reibungslos interpolieren können [4].

Infolgedessen wird diese Unterscheidung willkürlich und verwirrend, insbesondere wenn viele populäre Modelle nicht genau in das eine oder andere fallen [5,6] oder tatsächlich Hybridmodelle sind (Kombinationen von klassisch "diskriminierenden" und "generativen" Modellen). .

Trotzdem ist es immer noch eine sehr nützliche und übliche Unterscheidung. Wir können einige eindeutige Beispiele für generative und diskriminative Modelle auflisten, sowohl kanonische als auch neuere:

  • Generativ: Naive Bayes, latente Dirichlet-Zuordnung (LDA), Generative Adversarial Networks (GAN), Variational Autoencoder (VAE), Normalisierung von Flüssen.
  • Diskriminativ: Support Vector Machine (SVM), logistische Regression, tiefste neuronale Netze.

Es gibt auch viele interessante Arbeiten, die die generativ-diskriminative Kluft [7] und das Spektrum [4,8] eingehend untersuchen und sogar diskriminative Modelle in generative Modelle umwandeln [9].

Am Ende entwickeln sich die Definitionen ständig weiter, insbesondere in diesem schnell wachsenden Bereich :) Es ist am besten, sie mit einer Prise Salz zu nehmen und sie vielleicht sogar für sich und andere neu zu definieren.


Quellen

  1. Möglicherweise aus "Maschinelles Lernen - diskriminierend und generativ" (Tony Jebara, 2004).
  2. Crashkurs in maschinellem Lernen von Google
  3. Der generativ-diskriminative Irrtum
  4. "Prinzipielle Hybride generativer und diskriminativer Modelle" (Lasserre et al., 2006)
  5. @ Shimaos Frage
  6. Binu Jasims Antwort
  7. Vergleich der logistischen Regression und der naiven Bayes:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Ihr Klassifikator ist insgeheim ein energiebasiertes Modell" (Grathwohl et al., 2019)
  10. Anmerkungen von Stanford CS236 : Technisch gesehen ist ein probabilistisches Diskriminationsmodell auch ein generatives Modell der von den Daten konditionierten Bezeichnungen. Der Begriff generative Modelle ist jedoch typischerweise hochdimensionalen Daten vorbehalten.

1
Dies sollte wirklich mehr positive Stimmen haben. Sie waren die einzige Antwort, die die Idee der "falschen Dichotomie" berührte, die ich gefunden habe. Meine Frage ist ähnlich wie diese: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra

1

Alle vorherigen Antworten sind großartig, und ich möchte noch einen Punkt hinzufügen.

Aus generativen Algorithmusmodellen können wir jede Verteilung ableiten. Wir können zwar nur die bedingte Verteilung P (Y | X) aus den diskriminativen Algorithmusmodellen erhalten (oder wir können sagen, dass sie nur zur Unterscheidung der Bezeichnung von Y nützlich sind), weshalb sie als diskriminatives Modell bezeichnet wird. Das Unterscheidungsmodell geht nicht davon aus, dass die X angesichts des Y ($ X_i \ perp X _ {- i} | Y $) unabhängig sind, und ist daher normalerweise leistungsfähiger für die Berechnung dieser bedingten Verteilung.


0

Meine zwei Cent: Diskriminative Ansätze heben Unterschiede hervor Generative Ansätze konzentrieren sich nicht auf Unterschiede; Sie versuchen, ein Modell zu erstellen, das für die Klasse repräsentativ ist. Es gibt eine Überlappung zwischen den beiden. Idealerweise sollten beide Ansätze verwendet werden: Einer ist nützlich, um Ähnlichkeiten zu finden, und der andere ist nützlich, um Unähnlichkeiten zu finden.


0

Ein generatives Algorithmusmodell lernt vollständig aus den Trainingsdaten und sagt die Reaktion voraus.

Ein diskriminierender Algorithmusjob besteht lediglich darin, die beiden Ergebnisse zu klassifizieren oder zu unterscheiden.


Was ich bekomme, ist ein generatives Modell, das auf überwachtem Lernen basiert, während ein Unterscheidungsmodell auf unbeaufsichtigtem Lernen basiert. Habe ich recht?
Waseem Ahmad Naeem

@WaseemAhmadNaeem Irgendwie, aber irgendwie nicht. y ist immer das Ziel und wird als Teil der Eingabedaten benötigt, sodass beide überwacht werden. Generativ scheint unbeaufsichtigt zu sein, da der erste Schritt darin besteht, die vollständige Verteilung zu erhalten (in allen Varianten, wobei y nicht als speziell betrachtet wird). Wenn Sie dort angehalten haben und y nicht als etwas Besonderes behandeln, ist dieser Teil für sich genommen unbeaufsichtigt.
Mitch

@Mitch kann ich Sie bitten, etwas Papier / Notizen / Link über den Unterschied von beiden zu teilen? Eigentlich bin ich etwas verwirrt über dieses Konzept. Vielen Dank im Voraus
Waseem Ahmad Naeem

@WaseemAhmadNaeem Suche bei Cross Validated.SE (die Statistik / ML SE-Site), insbesondere generative vs diskriminierende oder generative vs diskriminative Modelle in einem Bayes'schen Kontext . Elementare Beispiele Naive Bayes ist generativ, logistische Regression ist diskriminierend. Weitere Beispiele für beides .
Mitch

0

Dieser Artikel hat mir sehr geholfen, das Konzept zu verstehen.

Zusammenfassend,

  • Beide sind Wahrscheinlichkeitsmodelle, dh beide verwenden die Wahrscheinlichkeit ( genauer gesagt die bedingte Wahrscheinlichkeit ), um Klassen für die unbekannten Daten zu berechnen.
  • Die generativen Klassifikatoren wenden den gemeinsamen PDF- und Bayes-Satz auf den Datensatz an und berechnen die bedingte Wahrscheinlichkeit unter Verwendung von Werten aus diesen.
  • Die diskriminierenden Klassifikatoren finden die bedingte Wahrscheinlichkeit direkt im Datensatz

Gutes Lesematerial: Bedingte Wahrscheinlichkeit , gemeinsames PDF

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.