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.
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.
Réponses:
Disons que vous avez des données d'entrée x
et 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 y
donné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é x
dans 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.
p(y|x)
implique que les algorithmes qui le modélisent sont appelés "modèles discriminants".
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é.
Imaginez que votre tâche consiste à classer un discours dans une langue.
Vous pouvez le faire soit par:
ou
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 .
En pratique, les modèles sont utilisés comme suit.
Dans les modèles discriminants , pour prédire l'étiquette à y
partir de l'exemple de formation x
, vous devez évaluer:
qui choisit simplement ce qui est la classe la plus probable y
compte 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 dans l'équation par . 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
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".
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 .
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.
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ù c
est la classe et d
est 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
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)
etp(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.
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:
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.
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.
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.
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.
Cet article m'a beaucoup aidé à comprendre le concept.
En résumé,
Quelques bonnes lectures: probabilité conditionnelle , PDF commun