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.
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.
Antworten:
Angenommen, Sie haben Eingabedaten x
und 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 " y
gegebene 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 x
in 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.
p(y|x)
impliziert wird, dass Algorithmen, die es modellieren, als "diskriminative Modelle" bezeichnet werden.
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.
Stellen Sie sich vor, Ihre Aufgabe ist es, eine Rede einer Sprache zuzuordnen.
Sie können es entweder tun:
oder
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 .
In der Praxis werden die Modelle wie folgt verwendet.
In diskriminierenden Modellen müssen Sie Folgendes bewerten , um das Etikett anhand y
des Trainingsbeispiels vorherzusagen x
:
die lediglich wählt , was ist die wahrscheinlichste Klasse unter y
Berü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 in der Gleichung durch . 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
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 y
können Sie bei gegebener a ihre jeweiligen berechnen ("generieren") x
. Aus diesem Grund werden sie "generative" Modelle genannt.
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 .
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.
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 c
ist die Klasse und d
ist 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
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)
undp(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 .
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:
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.
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.
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.
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.
Dieser Artikel hat mir sehr geholfen, das Konzept zu verstehen.
Zusammenfassend,
Gutes Lesematerial: Bedingte Wahrscheinlichkeit , gemeinsames PDF