(Die Antwort von hamner ist großartig, also stelle meine Antwort von MetaOptimize der Vollständigkeit halber einfach quer.)
Ich stelle mir generative Algorithmen als ein Modell dafür vor, wie die Daten tatsächlich generiert werden (ich stelle mir vor, dass sie Ihnen ein Modell sowohl von als auch von , anstatt von . obwohl ich denke, dass es äquivalent ist) und diskriminierende Algorithmen als einfaches Bereitstellen von Klassifikationsteilen (und nicht unbedingt auf probabilistische Weise).P(X|Y)P(Y)P(X,Y)
Vergleichen Sie beispielsweise Gaußsche Mischungsmodelle und k-Mean-Clustering. Im ersten Fall haben wir ein gutes Wahrscheinlichkeitsmodell für die Punkterzeugung (wählen Sie mit einiger Wahrscheinlichkeit eine Komponente aus und geben Sie dann einen Punkt durch Abtasten aus der Gaußschen Verteilung der Komponente aus), aber über die letztere können wir nichts sagen.
Beachten Sie, dass generative Algorithmen diskriminative Eigenschaften haben, da Sie sobald Sie und (gemäß Bayes 'Theorem), obwohl diskriminative Algorithmen nicht wirklich generative Eigenschaften haben.P(Y|X)P(X|Y)P(Y)
1: Mit diskriminativen Algorithmen können Sie Punkte klassifizieren, ohne ein Modell dafür bereitzustellen, wie die Punkte tatsächlich generiert werden. Das können also entweder sein:
- probabilistische Algorithmen versuchen zu lernen (zB logistische Regression);P(Y|X)
- oder nicht-probabilistische Algorithmen, die versuchen, die Zuordnungen direkt von den Punkten zu den Klassen zu lernen (z. B. geben Perceptron und SVMs einfach eine separate Hyperebene, aber kein Modell zum Erzeugen neuer Punkte).
Ja, diskriminative Klassifikatoren sind Klassifikatoren, die nicht generativ sind.
Eine andere Art, darüber nachzudenken, ist, dass generative Algorithmen eine Art von Strukturannahmen für Ihr Modell treffen, aber diskriminative Algorithmen weniger Annahmen treffen. Beispielsweise geht Naive Bayes von einer bedingten Unabhängigkeit Ihrer Funktionen aus, während dies bei der logistischen Regression (dem diskriminierenden "Gegenstück" von Naive Bayes) nicht der Fall ist.
2: Ja, Naive Bayes ist generativ, weil es und erfasst . Wenn wir beispielsweise wissen, dass und , zusammen mit den englischen und französischen Wortwahrscheinlichkeiten, können wir jetzt ein neues Dokument erstellen, indem wir zuerst die Sprache des Dokuments auswählen ( Englisch mit einer Wahrscheinlichkeit von 0,7, Französisch mit einer Wahrscheinlichkeit von 0,3) und dann Erzeugen von Wörtern gemäß den Wortwahrscheinlichkeiten der gewählten Sprache.P(X|Y)P(Y)P(Y=English)=0.7P(Y=French)=0.3
Ja, ich vermute, Sie könnten die logistische Regression auf diese Weise generieren, aber nur, weil Sie der logistischen Regression etwas hinzufügen, das noch nicht vorhanden ist. Das heißt, wenn Sie eine Naive Bayes-Klassifikation durchführen, berechnen Sie direkt (die Terme rechts, und können Sie ein neues Dokument erstellen. Wenn Sie jedoch in der logistischen Regression berechnen, berechnen Sie diese beiden Dinge nicht, sondern wenden lediglich eine logistische Funktion auf ein Skalarprodukt an.P(Y|X)∝P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)
3: Generative Modelle übertreffen häufig diskriminative Modelle für kleinere Datasets, da ihre generativen Annahmen Ihrem Modell eine gewisse Struktur verleihen, die eine Überanpassung verhindert . Betrachten wir beispielsweise Naive Bayes vs. Logistic Regression. Die Annahme von Naive Bayes wird natürlich selten erfüllt, sodass die logistische Regression mit zunehmendem Datenvolumen die von Naive Bayes übertrifft (da Abhängigkeiten erfasst werden können, die Naive Bayes nicht erfassen kann). Wenn Sie jedoch nur über einen kleinen Datensatz verfügen, erkennt die logistische Regression möglicherweise unechte Muster, die nicht wirklich vorhanden sind. Daher fungiert der Naive Bayes als eine Art Regularisierer für Ihr Modell, der eine Überanpassung verhindert. Es gibt einen Artikel von Andrew Ng und Michael Jordan über diskriminierende vs. generative Klassifikatoren, der mehr darüber spricht.
4: Ich denke, was es bedeutet, dass generative Modelle die zugrunde liegende Struktur der Daten tatsächlich lernen können, wenn Sie Ihr Modell korrekt angeben und das Modell tatsächlich gilt. Diskriminative Modelle können jedoch eine Outperformance erzielen, wenn Ihre generativen Annahmen nicht erfüllt sind (da diskriminative Algorithmen dies sind) weniger an eine bestimmte Struktur gebunden, und die reale Welt ist chaotisch und Annahmen sind sowieso selten perfekt erfüllt. (Ich würde diese Anführungszeichen wahrscheinlich einfach ignorieren, wenn sie verwirrend sind.)