web-dev-qa-db-fra.com

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

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.

545
unj2

Supposons que vous avez des données d'entrée x et que vous souhaitez classer les données dans des étiquettes y. Un modèle génératif apprend la distribution de probabilité conjointe p(x,y) et un modèle discriminatif apprend la conditionnelle distribution de probabilité p(y|x) - que vous devriez lire comme "la probabilité de y étant donné x" .

Voici un exemple très simple. Supposons que vous ayez les données suivantes sous la forme (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 permettant de classer un exemple donné x dans une classe y, raison pour laquelle les algorithmes qui modélisent ceci directement sont appelés algorithmes discriminants. Le modèle d'algorithmes génératifs p(x,y), qui peut être transformé en p(y|x) en 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 paires probables (x,y).

Dans la description ci-dessus, vous pourriez penser 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 discriminants par rapport aux générateurs, mais c'est assez lourd. En résumé, les modèles discriminants sont généralement plus performants que les modèles génératifs dans les tâches de classification.

789
Stompchicken

Un algorithme génératif modélise la manière dont les données ont été générées afin de catégoriser un signal. Il pose la question suivante: 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 manière dont les données ont été générées, il catégorise simplement un signal donné.

285
Carlos Rendon

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 classifier le discours.

Le premier est l'approche générative et le second est l'approche discriminative approche.

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

151
madCode

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

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

enter image description here

qui choisit simplement quelle est la classe la plus probable y compte tenu de x. C'est comme si nous essayions de modéliser la limite 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 enter image description here dans l'équation par enter image description here. Puisque vous êtes seulement intéressé par le arg max , vous pouvez effacer le dénominateur, ce sera la même chose pour chaque y. Donc, vous êtes laissé avec

enter image description here

qui est l'équation que vous utilisez dans 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 limite entre les classes, dans le second, le distribution de probabilité conjointe p (x, y), puisque p (x, y) = p (x | y) p (y), qui modélise explicitement la distribution réelle de chaque classe.

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

125
Saul Berardo

Voici la partie la plus importante des notes de cours de CS299 (par Andrew Ng) en relation avec le sujet, ce qui aide vraiment à comprendre la différence entre algorithmes d’apprentissage génératifs et génératifs .

Supposons que nous ayons deux classes d'animaux, l'éléphant (y = 1) et le chien (y = 0). Et x est le vecteur de caractéristiques des animaux.

À partir d'un ensemble d'apprentissage, un algorithme tel que la régression logistique ou l'algorithme de perceptron (essentiellement) tente de trouver une ligne droite - c'est-à-dire une limite de décision - séparant les éléphants et les chiens. Ensuite, pour classer un nouvel animal parmi les éléphants ou les chiens, il vérifie de quel côté de la limite de décision il tombe et effectue sa prédiction en conséquence. Nous appelons cela algorithme d'apprentissage discriminatif .

Voici une approche différente. Premièrement, 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 au modèle de l'éléphant et au modèle du chien, pour voir si le nouvel animal ressemble plus aux éléphants ou plus aux chiens que nous avions vus dans le jeu de dressage. . Nous appelons ces algorithmes d'apprentissage génératif .

81
Ghrua

En règle générale, la communauté de l'apprentissage automatique a pour pratique 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 y étiquettes à une entrée x donnée. Si on utilise le modèle génératif

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

nous devons modéliser p(x), ce qui n'est pas pertinent pour la tâche à accomplir. Des limitations pratiques telles que le manque de 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.

32

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

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

Modèles discriminants apprennent la limite (dure ou douce) entre les classes

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

Modifier:

Un modèle génératif est celui pouvant générer des données . Il modélise à la fois les caractéristiques 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 modélisant P(x,y) sont génératifs.

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

  • Naive Bayes models P(c) et P(d|c) - où c est la classe et d est le vecteur de fonctions.

    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/classifier les points de données . Vous devez uniquement modéliser P(y|x) dans de tels cas (c'est-à-dire la probabilité de classe compte tenu du vecteur de caractéristiques).

Par exemple. des 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 sont donc parfois moins efficaces. En fait, la plupart des algorithmes d'apprentissage non supervisés tels que la mise en cluster, etc. (on ne sait pas si tous) peuvent être qualifiés de 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 est tirée de source

20
Prakhar Agrawal

Les différents modèles sont résumés dans le tableau ci-dessous: enter image description here

20
Ravi G

Un modèle d'algorithme génératif tirera un apprentissage complet 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.

0
Nages

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 qui est 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 dis-similitudes.

0
Arun

Toutes les réponses précédentes sont excellentes et je voudrais ajouter un dernier point.

À partir de modèles d’algorithmes génératifs, nous pouvons dériver n’importe quelle distribution; alors que nous ne pouvons obtenir que la distribution conditionnelle P (Y | X) à partir des modèles d’algorithmes discriminants (ou nous pouvons dire qu’ils ne servent qu’à discriminer le libellé de Y), c’est pourquoi on parle de 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
Lerner Zhang