Quelle est la différence entre un algorithme génératif et un algorithme discriminant?


587

S'il vous plaît, aidez-moi à comprendre la différence entre un algorithme génératif et un algorithme discriminant , en gardant à l'esprit que je ne suis qu'un débutant.


4
Ce document (également souligné par anguyen8 ci-dessous) est bon: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku

5
Voir aussi la même question sur stats.SE: Génératif vs Discriminant
Lenar Hoyt

Pour une réponse simple et visuelle, cliquez ici stackoverflow.com/a/52412379/7160346
Ravi G

Réponses:


840

Disons que vous avez des données d'entrée xet que vous souhaitez classer les données en étiquettes y. Un modèle génératif apprend la distribution de probabilité conjointep(x,y) et un modèle discriminant apprend la distribution de probabilité conditionnellep(y|x) - que vous devriez lire comme «la probabilité de ydonnée x» .

Voici un exemple vraiment simple. Supposons que vous ayez les données suivantes dans le formulaire (x,y):

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

p(x,y) est

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

p(y|x) est

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

Si vous prenez quelques minutes pour regarder ces deux matrices, vous comprendrez la différence entre les deux distributions de probabilité.

La distribution p(y|x)est la distribution naturelle pour classer un exemple donné xdans une classe y, c'est pourquoi les algorithmes qui modélisent cela directement sont appelés algorithmes discriminants. Modèle d'algorithmes génératifs p(x,y), qui peut être transformé en p(y|x)appliquant la règle de Bayes puis utilisé pour la classification. Cependant, la distribution p(x,y)peut également être utilisée à d'autres fins. Par exemple, vous pouvez utiliser p(x,y)pour générer des(x,y) paires probables .

D'après la description ci-dessus, vous pensez peut-être que les modèles génératifs sont plus généralement utiles et donc meilleurs, mais ce n'est pas aussi simple que cela. Cet article est une référence très populaire sur le sujet des classificateurs discriminatifs vs génératifs, mais c'est assez lourd. L'essentiel est que les modèles discriminants surpassent généralement les modèles génératifs dans les tâches de classification.


48
Merci pour le papier. L'auteur est maintenant professeur à Stanford et dispose de merveilleuses ressources sur stanford.edu/class/cs229/materials.html
unj2

26
Une belle explication également par Andrew Ng ici
clyfe

39
Lorsque vous regardez les matrices, observez que dans la première, toutes les entrées totalisent 1,0, tandis que dans la seconde, chaque ligne en résume une. Cela accélérera l'illumination (et réduira la confusion)
Maxim Khesin

5
Une note d'Andrew Ng ici est également très utile: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8

1
"ce qui explique pourquoi les algorithmes qui modélisent cela directement sont appelés algorithmes discriminants", ne sais toujours pas pourquoi cela p(y|x)implique que les algorithmes qui le modélisent sont appelés "modèles discriminants".
nbro

291

Un algorithme génératif modélise la façon dont les données ont été générées afin de catégoriser un signal. Il pose la question: sur la base de mes hypothèses de génération, quelle catégorie est la plus susceptible de générer ce signal?

Un algorithme discriminant ne se soucie pas de la façon dont les données ont été générées, il catégorise simplement un signal donné.


6
Cette réponse m'embrouille. Les deux classes d'algorithmes entrent dans la classe des algorithmes d'apprentissage supervisé, qui apprennent un modèle de données d'apprentissage étiquetées pour dériver une fonction qui prédit d'autres données. L'algorithme discriminant tel que vous le décrivez semble ne pas créer de modèle, est-ce exact? Je serais heureux si vous pouviez améliorer votre réponse à cet égard.
Lenar Hoyt

42
@mcb Un algorithme génératif modélise la façon dont les données ont été "générées", donc vous lui demandez "quelle est la probabilité que telle ou telle classe ait généré cette instance?" et choisissez celui qui a la meilleure probabilité. Un algorithme discriminant utilise les données pour créer une frontière de décision, vous lui demandez donc "de quel côté de la frontière de décision se trouve cette instance?" Donc, il ne crée pas un modèle de la façon dont les données ont été générées, il crée un modèle de ce à quoi ressemble la frontière entre les classes.
Anthony

1
Donc, un modèle génératif comme Naive Bayes, n'a pas de frontière de décision?
sheetal_158

4
Les modèles génératifs semblent-ils donc meilleurs pour l'interprétabilité?
Candic3

157

Imaginez que votre tâche consiste à classer un discours dans une langue.

Vous pouvez le faire soit par:

  1. apprendre chaque langue, puis la classer en utilisant les connaissances que vous venez d'acquérir

ou

  1. déterminer la différence dans les modèles linguistiques sans apprendre les langues, puis classer le discours.

La première est l' approche générative et la seconde est l' approche discriminante .

Consultez cette référence pour plus de détails: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .


2
N'est-ce pas l'inverse? Étant donné que vous avez appris la langue, vous opérez sur une distribution conditionnelle et donc cela devrait être une approche discriminatoire?
London guy

Je pense que c'est l'inverse aussi après avoir lu les réponses ci-dessous - Exemple des notes de cours de CS299 par Ghrua
Mitali Cyrus

132

En pratique, les modèles sont utilisés comme suit.

Dans les modèles discriminants , pour prédire l'étiquette à ypartir de l'exemple de formation x, vous devez évaluer:

entrez la description de l'image ici

qui choisit simplement ce qui est la classe la plus probable ycompte tenu x. C'est comme si nous essayions de modéliser la frontière de décision entre les classes . Ce comportement est très clair dans les réseaux de neurones, où les poids calculés peuvent être vus comme une courbe de forme complexe isolant les éléments d'une classe dans l'espace.

Maintenant, en utilisant la règle de Bayes, remplaçons le entrez la description de l'image icidans l'équation par entrez la description de l'image ici. Puisque l' arg max vous intéresse , vous pouvez effacer le dénominateur, ce sera le même pour tous y. Donc, vous vous retrouvez avec

entrez la description de l'image ici

qui est l'équation que vous utilisez dans les modèles génératifs .

Alors que dans le premier cas, vous aviez la distribution de probabilité conditionnelle p(y|x) , qui modélisait la frontière entre les classes, dans le second, vous aviez la distribution de probabilité conjointe p(x, y) , car p(x | y) p(y) = p(x, y), qui modélise explicitement la distribution réelle de chaque classe .

Avec la fonction de distribution de probabilité conjointe, étant donné a y, vous pouvez calculer ("générer") son respectif x. Pour cette raison, ils sont appelés modèles "génératifs".


3
Par ce raisonnement, le modèle génératif et le modèle discriminant ne sont-ils pas égaux lorsqu'ils sont appliqués à la même distribution? Pourquoi y a-t-il alors une différence de comportement de classification? Ou sont-ils juste égaux dans ce contexte de maximum de vraisemblance?
Sebastian Graf

Pour dire s'ils sont "égaux" ou non, nous devons d'abord définir ce que nous entendons par là. Il y a beaucoup de choses en commun, mais la plus grande différence est la stratégie utilisée: modéliser la distribution (générative) vs prédire une classe, quelle que soit la distribution (discriminante) - pensez à KNN pendant une seconde pour un exemple.
Saul Berardo

90

Voici la partie la plus importante des notes de cours de CS299 (par Andrew Ng) liées au sujet, qui m'aide vraiment à comprendre la différence entre les algorithmes d'apprentissage discriminants et génératifs .

Supposons que nous ayons deux classes d'animaux, les éléphants ( y = 1) et les chiens ( y = 0). Et x est le vecteur caractéristique des animaux.

Étant donné un ensemble d'entraînement, un algorithme comme la régression logistique ou l'algorithme perceptron (essentiellement) tente de trouver une ligne droite - c'est-à-dire une limite de décision - qui sépare les éléphants et les chiens. Ensuite, pour classer un nouvel animal en tant qu'éléphant ou chien, il vérifie de quel côté de la frontière de décision il tombe et fait sa prédiction en conséquence. Nous appelons ces algorithmes d'apprentissage discriminant .

Voici une approche différente. Tout d'abord, en regardant les éléphants, nous pouvons construire un modèle de ce à quoi ressemblent les éléphants. Ensuite, en regardant les chiens, nous pouvons construire un modèle distinct de ce à quoi ressemblent les chiens. Enfin, pour classer un nouvel animal, nous pouvons faire correspondre le nouvel animal avec le modèle d'éléphant, et le faire correspondre avec le modèle de chien, pour voir si le nouvel animal ressemble plus aux éléphants ou plus aux chiens que nous avons vus dans l'ensemble d'entraînement . Nous appelons ces algorithmes d'apprentissage génératif .


33

Généralement, il existe une pratique dans la communauté d'apprentissage automatique de ne pas apprendre quelque chose que vous ne voulez pas. Par exemple, considérons un problème de classification dans lequel l'objectif est d'attribuer des étiquettes y à une entrée x donnée. Si nous utilisons un modèle génératif

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

nous devons modéliser p (x) qui n'est pas pertinent pour la tâche à accomplir. Des limitations pratiques comme la rareté des données nous obligeront à modéliser p(x)avec quelques hypothèses d'indépendance faibles. Par conséquent, nous utilisons intuitivement des modèles discriminants pour la classification.



22

Un point informatif supplémentaire qui va bien avec la réponse de StompChicken ci-dessus.

La différence fondamentale entre les modèles discriminants et les modèles génératifs est:

Les modèles discriminants apprennent la frontière (dure ou molle) entre les classes

Les modèles génératifs modélisent la distribution des classes individuelles

Éditer:

Un modèle génératif est celui qui peut générer des données . Il modélise à la fois les fonctionnalités et la classe (c'est-à-dire les données complètes).

Si nous modélisons P(x,y): je peux utiliser cette distribution de probabilité pour générer des points de données - et donc tous les algorithmes de modélisation P(x,y)sont génératifs.

Par exemple. de modèles génératifs

  • Modèles Naive Bayes P(c)et P(d|c)- où cest la classe et dest le vecteur d'entité.

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

    Par conséquent, Naive Bayes dans certains modèles de forme, P(c,d)

  • Bayes Net

  • Filets de Markov

Un modèle discriminant est celui qui ne peut être utilisé que pour discriminer / classer les points de données . Vous n'avez besoin de modéliser que P(y|x)dans de tels cas (c.-à-d. Probabilité de classe compte tenu du vecteur caractéristique).

Par exemple. de modèles discriminants:

  • régression logistique

  • Les réseaux de neurones

  • Champs aléatoires conditionnels

En général, les modèles génératifs doivent modéliser beaucoup plus que les modèles discriminants et ne sont donc parfois pas aussi efficaces. En fait, la plupart (pas sûr si tous) des algorithmes d'apprentissage non supervisés comme le clustering, etc. peuvent être appelés génératifs, car ils modélisent P(d)(et il n'y a pas de classes: P)

PS: Une partie de la réponse provient de la source


8

La réponse courte

Beaucoup de réponses ici reposent sur la définition mathématique largement utilisée [1]:

  • Les modèles discriminants apprennent directement la distribution prédictive conditionnelle p(y|x).
  • Les modèles génératifs apprennent la distribution conjointe p(x,y)(ou plutôt, p(x|y)et p(y)).
    • La distribution prédictive p(y|x)peut être obtenue avec la règle de Bayes.

Bien que très utile, cette définition étroite suppose le cadre supervisé et est moins pratique lors de l'examen de méthodes non supervisées ou semi-supervisées. Elle ne s'applique pas non plus à de nombreuses approches contemporaines de modélisation générative profonde . Par exemple, nous avons maintenant des modèles génératifs implicites, par exemple les Réseaux Génératifs Adversaires (GAN), qui sont basés sur l'échantillonnage et ne modélisent même pas explicitement la densité de probabilité p(x)(au lieu d'apprendre une mesure de divergence via le réseau discriminateur). Mais nous les appelons «modèles génératifs» car ils sont utilisés pour générer des échantillons (de grande dimension [10]).

Une définition plus large et plus fondamentale [2] semble également appropriée pour cette question générale:

  • Les modèles discriminants apprennent la frontière entre les classes.
    • Ils peuvent donc faire la distinction entre différents types d'instances de données.
  • Les modèles génératifs apprennent la distribution des données.
    • Ils peuvent donc générer de nouvelles instances de données.

Depuis http://primo.ai/index.php?title=Discriminative_vs._Generative Source d'image


Regarder de plus près

Néanmoins, cette question implique quelque peu une fausse dichotomie [3]. La "dichotomie" générative-discriminante est en fait un spectre que vous pouvez même interpoler en douceur entre [4].

En conséquence, cette distinction devient arbitraire et déroutante, surtout lorsque de nombreux modèles populaires ne tombent pas parfaitement dans l'un ou l'autre [5,6], ou sont en fait des modèles hybrides (combinaisons de modèles classiquement "discriminants" et "génératifs") .

Néanmoins, c'est toujours une distinction très utile et courante à faire. Nous pouvons énumérer quelques exemples clairs de modèles génératifs et discriminants, à la fois canoniques et récents:

  • Générative: Naive Bayes, allocation de Dirichlet latente (LDA), Generative Adversarial Networks (GAN), Variational Autoencoders (VAE), normalisant les flux.
  • Discriminant: Machine à vecteurs de support (SVM), régression logistique, réseaux de neurones les plus profonds.

Il y a aussi beaucoup de travaux intéressants examinant en profondeur la fracture générative-discriminante [7] et le spectre [4,8], et même transformant des modèles discriminants en modèles génératifs [9].

En fin de compte, les définitions évoluent constamment, en particulier dans ce domaine en croissance rapide :) Il est préférable de les prendre avec une pincée de sel, et peut-être même de les redéfinir pour vous-même et pour les autres.


Sources

  1. Provenant peut-être de "Machine Learning - Discriminative and Generative" (Tony Jebara, 2004).
  2. Cours intensif d'apprentissage automatique par Google
  3. L'illusion générative-discriminatoire
  4. «Hybrides fondés sur des principes de modèles génératifs et discriminatoires» (Lasserre et al., 2006)
  5. @ shimao's question
  6. La réponse de Binu Jasim
  7. Comparaison de la régression logistique et des Bayes naïfs:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Votre classificateur est secrètement un modèle basé sur l'énergie" (Grathwohl et al., 2019)
  10. Stanford CS236 note : Techniquement, un modèle discriminatoire probabiliste est également un modèle génératif des étiquettes conditionnées sur les données. Cependant, le terme modèles génératifs est généralement réservé aux données de grande dimension.

1
Cela devrait vraiment avoir plus de votes positifs. Votre réponse a été la seule à toucher à l'idée de "fausse dichotomie" que j'ai trouvée. Ma question est similaire à celle-ci: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra

1

Toutes les réponses précédentes sont excellentes, et j'aimerais ajouter un point de plus.

À partir de modèles d'algorithmes génératifs, nous pouvons dériver n'importe quelle distribution; alors que nous ne pouvons obtenir la distribution conditionnelle P (Y | X) qu'à partir des modèles d'algorithmes discriminants (ou nous pouvons dire qu'ils ne sont utiles que pour discriminer l'étiquette de Y), et c'est pourquoi on l'appelle modèle discriminant. Le modèle discriminant ne suppose pas que les X sont indépendants étant donné le Y ($ X_i \ perp X _ {- i} | Y $) et est donc généralement plus puissant pour calculer cette distribution conditionnelle.


0

Mes deux cents: les approches discriminatoires mettent en évidence les différences Les approches génératives ne se concentrent pas sur les différences; ils essaient de construire un modèle représentatif de la classe. Il y a un chevauchement entre les deux. Idéalement, les deux approches devraient être utilisées: l'une sera utile pour trouver des similitudes et l'autre sera utile pour trouver des différences.


0

Un modèle d'algorithme génératif apprendra complètement des données d'apprentissage et prédira la réponse.

Un travail d'algorithme discriminant consiste simplement à classer ou à différencier les 2 résultats.


Ce que j'obtiens, c'est que le modèle génératif est basé sur l'apprentissage supervisé tandis que le modèle discriminant est basé sur l'apprentissage non supervisé. Ai-je raison?
Waseem Ahmad Naeem

@WaseemAhmadNaeem En quelque sorte, mais en quelque sorte non. y est toujours la cible, et nécessaire dans le cadre des données d'entrée, les deux sont donc supervisés. Generative ne semble pas supervisé car la première étape consiste à obtenir la distribution complète (dans tous les vars, sans considérer y comme spécial). Si vous vous êtes arrêté là et ne considérez pas y comme spécial, cette partie en elle-même n'est pas surveillée.
Mitch

@Mitch puis-je vous demander de partager du papier / notes / lien sur la différence des deux? en fait, je suis un peu confus sur ce concept. Merci d'avance
Waseem Ahmad Naeem

@WaseemAhmadNaeem Recherche sur Cross Validated.SE (le site stats / ML SE) en particulier les modèles Generative vs Discriminative ou Generative vs discriminative dans un contexte bayésien . Exemples élémentaires Naive Bayes est génératif, la régression logistique est discriminante. Plus d'exemples des deux .
Mitch

0

Cet article m'a beaucoup aidé à comprendre le concept.

En résumé,

  • Les deux sont des modèles probabilistes, ce qui signifie qu'ils utilisent tous deux la probabilité (probabilité conditionnelle, pour être précis ) pour calculer les classes pour les données inconnues.
  • Les classificateurs génératifs appliquent le théorème PDF et Bayes conjoint sur l'ensemble de données et calculent la probabilité conditionnelle en utilisant des valeurs de ceux-ci.
  • Les classificateurs discriminants trouvent directement la probabilité conditionnelle sur l'ensemble de données

Quelques bonnes lectures: probabilité conditionnelle , PDF commun

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.