Was ist der Unterschied zwischen einem generative und diskriminative Algorithmus?
Bitte helfen Sie mir zu verstehen, den Unterschied zwischen einem generative und ein
diskriminative - Algorithmus, wenn man bedenkt, dass ich bin nur ein Anfänger.
- Dieses Dokument (wies auch darauf hin, indem anguyen8 unten) ist ein guter: cs229.stanford.edu/notes/cs229-notes2.pdf
- Siehe auch die gleiche Frage auf Statistiken.SE: Generative versus Diskriminative
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Sie uns sagen, Sie haben Eingabedaten
x
und Sie wollen, klassifizieren Sie die Daten in die Etiketteny
. Ein generatives Modell lernt die gemeinsame Wahrscheinlichkeitsverteilungp(x,y)
und ein diskriminierender Modell lernt die bedingte Wahrscheinlichkeitsverteilungp(y|x)
- die Sie Lesen sollten, als "die Wahrscheinlichkeit, dassy
gegebenx
".Hier ist ein wirklich einfaches Beispiel. Angenommen, Sie haben die folgenden Daten in der form
(x,y)
:(1,0), (1,0), (2,0), (2, 1)
p(x,y)
istp(y|x)
istWenn Sie ein paar Minuten starren Sie auf diese beiden Matrizen, die Sie verstehen, den Unterschied zwischen zwei Wahrscheinlichkeitsverteilungen.
Den Vertrieb
p(y|x)
ist die Natürliche Verteilung für die Klassifizierung eines gegebenen Beispielx
in einer Klassey
, das ist der Grund, warum algorithmen, die dieses Modell direkt aufgerufen werden unterscheidenden algorithmen. Generative algorithmen Modellp(x,y)
, die transformiert werden kann inp(y|x)
durch die Anwendung der Bayes-Regel und dann für die Klassifizierung. Allerdings ist die Verteilungp(x,y)
können auch für andere Zwecke verwendet werden. Zum Beispiel könnten Siep(x,y)
zu generieren wahrscheinlich(x,y)
Paare.Aus der vorstehenden Beschreibung, könnte man denken, dass generative Modelle sind generell nützlich, und daher besser, aber es ist nicht so einfach. Dieses Papier ist eine sehr beliebte Verweis auf das Thema diskriminative vs. generative Klassifikatoren, aber es ist ziemlich schwer zu gehen. Der gesamte Kern ist, dass die diskriminative Modelle in der Regel übertreffen die generative Modelle für die Klassifizierung von Aufgaben.
p(y|x)
bedeutet, dass algorithmen, die Modell sind sogenannte "diskriminative Modelle".Einen generative Algorithmus Modelle, wie die Daten generiert wurden, um zu kategorisieren, ein signal. Es stellt sich die Frage: basierend auf meine generation Annahmen, welche Kategorie am ehesten zu generieren, dieses signal?
Einen diskriminative Algorithmus nicht kümmern, wie die Daten generiert wurden, ist es einfach kategorisiert, einem bestimmten signal.
Sich vorstellen, Ihre Aufgabe ist es, zu klassifizieren, eine Sprache zu einer Sprache.
Können Sie es tun, indem Sie entweder:
oder
Die erste ist die generative Ansatz und der zweite ist der diskriminative Ansatz.
Überprüfen diese Referenz für weitere Informationen: http://www.cedar.buffalo.edu/~srihari/CSE574/Diskriminierend-Generative.pdf.
In der Praxis, die Modelle verwendet werden, wie folgt.
In diskriminative Modelle, um vorherzusagen, das label
y
von der Ausbildung Beispielx
müssen Sie bewerten:die nur wählt, was ist die wahrscheinlichste Klasse
y
angesichtsx
. Es ist so, als würden wir versuchen, Modell die Entscheidung, die Grenze zwischen den Klassen. Dieses Verhalten ist sehr deutlich in neuronalen Netzen, wo die berechneten GEWICHTE kann gesehen werden als ein Komplex geformter Kurve zu isolieren, die Elemente einer Klasse in den Raum.Nun, mithilfe der Bayes-Regel, lassen Sie uns ersetzen die . Da sind Sie einfach nur interessiert an der arg max, können Sie wischen Sie die Nenner, das wird das gleiche für jedes
y
. So bleibt man mitist die Gleichung, die Sie verwenden in generative Modelle.
Während im ersten Fall hatte die bedingte Wahrscheinlichkeitsverteilung
p(y|x)
, die modelliert, die Grenze zwischen den Klassen, in der zweiten hatte Sie die gemeinsame Wahrscheinlichkeitsverteilung p(x, y), da p(x, y) = p(x | y) p(y), die explizit Modelle der tatsächlichen Verteilung der einzelnen Klassen.Mit der gemeinsamen Verteilungsfunktion gegeben, ein
y
können Sie berechnen ("generieren"), seinen jeweiligenx
. Aus diesem Grund werden Sie als "generative" Modelle.Hier der wichtigste Teil aus der lecture notes von CS299 (von Andrew Ng) in Bezug auf das Thema, die wirklich hilft mir, zu verstehen, den Unterschied zwischen diskriminative und generative learning-algorithmen.
Angenommen, wir haben zwei Klassen von Tieren, Elefanten (
y = 1
) und Hund (y = 0
). Und x ist der feature-Vektor der Tiere.Gegeben eine trainingsmenge, ein Algorithmus wie der logistischen regression oder der perceptron-Algorithmus (im Grunde) versucht zu finden, eine gerade Linie — das ist eine Entscheidung, die Grenze — trennt die Elefanten und die Hunde. Dann, zu klassifizieren
ein neues Tier als entweder ein Elefant oder ein Hund, es wird überprüft, auf welcher Seite der
Entscheidung-Grenze fällt, und macht sich auf die Vorhersage entsprechend. Wir nennen diese unterscheidenden Lern-Algorithmus.
Hier ist ein anderer Ansatz. Erste, Blick auf die Elefanten, die wir bauen können
ein Modell, wie Elefanten Aussehen. Dann, Blick auf die Hunde, die wir bauen können
separaten Modell, wie die Hunde Aussehen. Schließlich, zu klassifizieren, ein neues Tier,
wir können mit der neuen Tier gegen das Elefanten-Modell und passen Sie es gegen
der Hund-Modell, um zu sehen, ob das neue Tier sieht mehr wie die Elefanten
oder mehr wie die Hunde, die wir gesehen hatten wir in der Ausbildung gesetzt werden. Wir nennen diese generative learning Algorithmus.
In der Regel, es ist eine Praxis im machine-learning-community nicht etwas lernen, was Sie nicht wollen. Betrachten Sie beispielsweise eine Klassifizierung problem, wo das Ziel ist die Zuordnung y-labels, die zu einer gegebenen x-Eingang. Wenn wir das generative Modell
wir haben zu Modell p(x), die irrelevant für die Aufgabe in der hand. Praktische Einschränkungen wie Daten Kargheit zwingt uns Modell
p(x)
mit einigen schwachen Unabhängigkeit Annahmen. Daher haben wir intuitiv verwenden diskriminative Modelle für Klassifikation.Neben einer informativen Punkt, dass geht auch mit der Antwort von StompChicken oben.
Den grundlegende Unterschied zwischen diskriminative Modelle und generative Modelle ist:
Edit:
Ein Generatives Modell, das eine erzeugen können Daten. Es Modelle, die sowohl die Funktionen und die Klasse (d.h. die vollständigen Daten).
Wenn wir das Modell
P(x,y)
: ich kann mit dieser Wahrscheinlichkeitsverteilung Daten generieren, die Punkte - und somit alle algorithmen ModellierungP(x,y)
sind generativ.ZB. der generative Modelle
Naive Bayes-Modelle
P(c)
undP(d|c)
- woc
ist die Klasse und died
ist der feature-Vektor.Auch
P(c,d) = P(c) * P(d|c)
Daher, Naive Bayes in irgendeiner form Modelle,
P(c,d)
Bayes-Netz
Markov-Netze
Einer diskriminierenden Modell ist das eine, die können nur verwendet werden, um unterscheiden/klassifizieren Sie die Daten Punkte.
Sie benötigen nur ein Modell
P(y|x)
in solchen Fällen (D. H. Wahrscheinlichkeit der Klasse der feature-Vektor).ZB. der diskriminative Modelle:
Logistische regression
Neuronale Netze
Conditional random fields
Im Allgemeinen, generative Modelle zu Modell viel mehr als die diskriminative Modelle und sind daher manchmal nicht so effektiv. Als eine Angelegenheit von der Tat, die meisten (nicht sicher, ob alle) unüberwachten Lernalgorithmen wie clustering etc aufgerufen werden kann, generative, da Sie Modell
P(d)
(und es keine Klassen mehr gibt:P)PS: ein Teil der Antwort ist entnommen aus Quelle
Die verschiedenen Modelle sind summiert in der Tabelle unten:
Meine zwei Cent:
Diskriminative Ansätze markieren Unterschiede
Generative Ansätze konzentrieren Sie sich nicht auf die Unterschiede, Sie versuchen, ein Modell zu bauen, die Vertreter der Klasse.
Es gibt eine überlappung zwischen den beiden.
Im Idealfall werden beide Ansätze verwendet werden sollte: man wird nützlich sein, um Gemeinsamkeiten zu finden und die andere nützlich finden dis-ähnlichkeiten.
Einen generativen Algorithmus Modell-lernen, völlig aus dem training-Daten und Vorhersagen, die Reaktion.
Einer diskriminierenden Algorithmus Aufgabe ist es nur, zu klassifizieren oder unterscheiden zwischen den 2 Ergebnissen.
Alle bisherigen Antworten sind toll, und ich möchte die plug-in einen Punkt.
Vom generativen Algorithmus Modelle, können wir herleiten Verteilung; während wir nur erhalten, die bedingte Verteilung P(Y|X) von der diskriminierenden Algorithmus Modelle(oder wir können sagen, Sie sind nur nützlich für die Unterscheidung der Y-label), und das ist, warum es heißt diskriminierend Modell. Die diskriminative Modell nicht annehmen, dass der X sind unabhängig gegeben Y($X_i \perp X_{ -i} | Y$) und ist daher in der Regel stärker für eine Berechnung, nach der bedingten Verteilung.