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

s'il vous Plaît, m'aider à comprendre la différence entre un générative et discriminantes de l'algorithme, en gardant à l'esprit que je suis juste un débutant.

465
demandé sur nbro 2009-05-18 23:44:45

10 réponses

disons que vous avez entré des données x et que vous voulez classer les données en étiquettes Y. Un modèle génératif apprend le joint distribution de probabilité p(x,y) et un modèle discriminant apprend le distribution conditionnelle distribution de probabilité p(y|x) - que vous devriez lire comme "la probabilité de y donnée x" .

voici un exemple très simple. Supposons que vous disposez des éléments suivants données 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 un classe y , c'est pourquoi les algorithmes qui modélisent directement ce sont appelés algorithmes discriminants. 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. Toutefois, la distribution p(x,y) peut également être utilisée à d'autres fins. Par exemple, vous pouvez utiliser p(x,y) à générer paires probables (x,y) .

de 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. Ce document est une référence très appréciés sur le sujet de discriminantes contre générative classificateurs, mais il 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.

686
répondu Stompchicken 2018-07-05 00:57:16

Un algorithme génératif les modèles de 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 discriminantes "algorithme 151920920" ne se soucie pas de la façon dont les données ont été générées, tout simplement, il catégorise un signal donné.

279
répondu Carlos Rendon 2018-05-03 15:12:15

imaginez votre tâche est de classifier un discours à une langue.

vous pouvez le faire 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.

le premier l'une est l'approche générative et la seconde est l'approche discriminatoire .

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

140
répondu madCode 2018-07-05 01:08:33

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

Dans discriminant des modèles , pour prédire le label y de la formation exemple x , vous devez évaluer:

enter image description here

qui ne choisit que la classe la plus probable y compte tenu de x . C'est comme si nous essayions de modéliser la frontière de décision entre le classes . Ce comportement est très clair dans les réseaux neuronaux, 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 simplement intéressé par le arg max , vous pouvez effacer le dénominateur, qui sera la même pour tous y . Donc, vous sont laissés 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 a modélisé la frontière entre les classes, dans le second vous aviez la distribution de probabilité conjointe p (x, y), depuis 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, étant donné un y , vous pouvez calculer ("générer") son x respectif . Pour cette raison, on les appelle des modèles "génératifs".

111
répondu Saul Berardo 2018-07-05 01:13:01

Voici la partie la plus importante de la lecture notes de CS299 (par Andrew Ng) liée au sujet, qui vraiment m'aide à comprendre la différence entre discriminative et générative apprentissage algorithmes.

supposons que nous ayons deux classes d'animaux, éléphant(y = 1) et chien (y = 0). Et x est la caractéristique des animaux.

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

Voici une autre approche. Tout d'abord, en regardant les éléphants, nous pouvons construire un modèle de ce à quoi ressemblent les Éléphants. Puis, en regardant les chiens, nous pouvons construire un modèle distinct de ce que les chiens ressemblent. Enfin, classer un nouvel animal, nous pouvons faire correspondre le nouvel animal contre le modèle de l'éléphant, et le faire correspondre contre le modèle du chien, pour voir si le nouvel animal ressemble plus aux éléphants ou plus comme les chiens que nous avions vus dans le kit d'entraînement. Nous les appelons algorithme d'apprentissage génératif .

64
répondu Ghrua 2018-07-05 01:02:23

en général, il y a une pratique dans la communauté d'apprentissage machine de ne pas apprendre quelque chose que vous ne voulez pas apprendre. Par exemple, considérons un problème de classification où le but est d'attribuer des étiquettes y à une entrée x donnée. Si nous utilisons le 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 en question. Les limites pratiques comme la rareté des données nous forceront à modéliser p(x) avec quelques hypothèses d'indépendance faibles. Par conséquent, nous utiliser intuitivement des modèles discriminants pour la classification.

28
répondu Sriwantha Attanayake 2016-04-28 01:37:46

un point d'information supplémentaire qui va bien avec la réponse de StompChicken ci-dessus.

Le différence fondamentale entre discriminant des modèles et générative modèles est:

Discriminant des modèles apprendre le (hard ou soft) des limites entre les classes

Générative modèles modèle distribution classes

Edit:

un modèle génératif est celui qui peut 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 de modélisation P(x,y) sont génératifs.

par exemple. des modèles génératifs

  • modèles naïfs de Bayes P(c) et P(d|c) - où c est la classe et d est le vecteur caractéristique.

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

    D'où, naïve Bayes dans certains modèles de forme, P(c,d)

  • Bayes Net

  • De Markov Filets

un modèle discriminant est celui qui ne peut être utilisé que pour discriminer/classifier les points de données . Vous devez seulement modéliser P(y|x) dans de tels cas, (c.-à-d. Probabilité de classe étant donné le vecteur de caractéristique).

par exemple. des modèles discriminatoires:

  • régression logistique

  • Réseaux Neuronaux

  • 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, comme le clustering, etc., peuvent être qualifiés de génératifs, puisqu'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

18
répondu Prakhar Agrawal 2018-04-25 06:50:01

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

3
répondu Ravi Gurnatham 2018-09-19 18:45:32

mes deux cents: Les approches discriminatoires mettent en évidence les différences Générative approches 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 doivent être utilisées: l'une sera utile pour trouver des similarités et l'autre sera utile pour trouver les dis-similitudes.

1
répondu Arun 2017-05-31 10:17:00

un modèle d'algorithme génératif va apprendre complètement des données de formation et va prédire la réponse.

un emploi d'algorithme discriminant consiste simplement à classer ou à différencier les deux résultats.

1
répondu Nages 2018-05-17 09:31:50