Qual è la differenza tra un algoritmo generativo e uno discriminativo?


587

Per favore, aiutami a capire la differenza tra un algoritmo generativo e uno discriminatorio , tenendo presente che sono solo un principiante.


4
Questo documento (indicato anche da anguyen8 di seguito) è un buon documento: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku

5
Vedi anche la stessa domanda su stats.SE: Generative vs. Discriminative
Lenar Hoyt

Per una risposta semplice e visiva clicca qui stackoverflow.com/a/52412379/7160346
Ravi G

Risposte:


840

Supponiamo che tu abbia dati di input xe desideri classificarli in etichette y. Un modello generativo apprende la distribuzione di probabilità congiuntap(x,y) e un modello discriminante apprende la distribuzione di probabilità condizionalep(y|x) - che dovresti leggere come "la probabilità di ydare x" .

Ecco un esempio davvero semplice. Supponiamo di avere i seguenti dati nel modulo (x,y):

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

p(x,y) è

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

p(y|x) è

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

Se impieghi qualche minuto a fissare queste due matrici, capirai la differenza tra le due distribuzioni di probabilità.

La distribuzione p(y|x)è la distribuzione naturale per classificare un dato esempio xin una classe y, motivo per cui gli algoritmi che lo modellano direttamente sono chiamati algoritmi discriminatori. Modello di algoritmi generativi p(x,y), che possono essere trasformati p(y|x)applicando la regola di Bayes e quindi utilizzati per la classificazione. Tuttavia, la distribuzione p(x,y)può essere utilizzata anche per altri scopi. Ad esempio, è possibile utilizzare p(x,y)per generare(x,y) coppie probabili .

Dalla descrizione sopra, potresti pensare che i modelli generativi siano più generalmente utili e quindi migliori, ma non è così semplice. Questo articolo è un riferimento molto popolare in materia di classificatori discriminatori e generativi, ma è piuttosto pesante. L'essenza generale è che i modelli discriminatori generalmente superano i modelli generativi nei compiti di classificazione.


48
Grazie per il documento. L'autore è ora professore a Stanford e ha risorse meravigliose su stanford.edu/class/cs229/materials.html
unj2

26
Una bella spiegazione anche di Andrew Ng qui
clyfe

39
Quando si fissano le matrici, osservare che nella prima tutte le voci si sommano a 1,0, mentre nella seconda ogni riga ne somma una. Questo accelererà l'illuminazione (e ridurrà la confusione)
Maxim Khesin,

5
Una nota di Andrew Ng qui è anche molto utile: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8

1
"ecco perché gli algoritmi che modellano questo direttamente sono chiamati algoritmi discriminatori", non sono ancora sicuri del motivo per p(y|x)cui gli algoritmi che lo modellano sono chiamati "modelli discriminatori".
nbro,

291

Un algoritmo generativo modella il modo in cui i dati sono stati generati per classificare un segnale. Pone la domanda: in base ai presupposti della mia generazione, quale categoria ha più probabilità di generare questo segnale?

Un algoritmo discriminatorio non si preoccupa di come sono stati generati i dati, ma semplicemente classifica un determinato segnale.


6
Questa risposta mi confonde. Entrambe le classi di algoritmi rientrano nella classe degli algoritmi di apprendimento supervisionato, che apprendono un modello di dati di addestramento etichettati per derivare una funzione che prevede altri dati. L'algoritmo discreto come lo descrivi suona come se non crea un modello, è corretto? Sarei felice se tu potessi enfatizzare la tua risposta al riguardo.
Lenar Hoyt,

42
@mcb Un algoritmo generativo modella il modo in cui i dati sono stati "generati", quindi gli chiedi "qual è la probabilità che questa o quella classe abbia generato questa istanza?" e scegli quello con la migliore probabilità. Un algoritmo discriminatorio utilizza i dati per creare un limite di decisione, quindi gli chiedi "da che parte del limite di decisione si trova questa istanza?" Quindi non crea un modello di come sono stati generati i dati, ma crea un modello di come pensa che sia il confine tra le classi.
Anthony,

1
Quindi un modello generativo come Naive Bayes, non ha un limite decisionale?
sheetal_158,

4
Quindi i modelli generativi sembrano essere migliori per l'interpretazione?
Candic3,

157

Immagina che il tuo compito sia quello di classificare un discorso in una lingua.

Puoi farlo sia:

  1. apprendere ogni lingua e quindi classificarla utilizzando le conoscenze appena acquisite

o

  1. determinare la differenza nei modelli linguistici senza apprendere le lingue e quindi classificare il discorso.

Il primo è l' approccio generativo e il secondo è l' approccio discriminatorio .

Controllare questo riferimento per maggiori dettagli: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .


2
Non è il contrario? Considerando che hai imparato la lingua, stai operando su una distribuzione condizionale e quindi dovrebbe essere un approccio discriminatorio?
Ragazzo di Londra,

Penso che sia il contrario anche dopo aver letto le risposte di seguito - Esempio dalle note della conferenza di CS299 di Ghrua
Mitali Cyrus

132

In pratica, i modelli sono usati come segue.

Nei modelli discriminatori , per prevedere l'etichetta ydall'esempio di formazione x, è necessario valutare:

inserisci qui la descrizione dell'immagine

che sceglie semplicemente quale sia la classe più probabile da yconsiderare x. È come se stessimo cercando di modellare il confine decisionale tra le classi . Questo comportamento è molto chiaro nelle reti neurali, dove i pesi calcolati possono essere visti come una curva a forma complessa che isola gli elementi di una classe nello spazio.

Ora, usando la regola di Bayes, sostituiamo inserisci qui la descrizione dell'immagineil nell'equazione con inserisci qui la descrizione dell'immagine. Dato che sei solo interessato all'arg max , puoi cancellare il denominatore, che sarà lo stesso per tutti y. Quindi, ti rimane

inserisci qui la descrizione dell'immagine

quale è l'equazione che usi nei modelli generativi .

Mentre nel primo caso avevi la distribuzione di probabilità condizionale p(y|x) , che modellava il confine tra le classi, nel secondo avevi la distribuzione di probabilità congiunta p(x, y) , da allora p(x | y) p(y) = p(x, y), che modella esplicitamente la distribuzione effettiva di ogni classe .

Con la funzione di distribuzione di probabilità congiunta, data a y, puoi calcolare ("generare") i rispettivi x. Per questo motivo, sono chiamati modelli "generativi".


3
Con questo ragionamento, il modello generativo e discriminativo non sono uguali se applicati alla stessa distribuzione? Perché allora c'è una differenza nel comportamento di classificazione? O sono uguali in questo contesto di massima verosimiglianza?
Sebastian Graf,

Per dire se sono "uguali" o no, dobbiamo prima definire cosa intendiamo con questo. Ci sono molte cose in comune, ma la differenza più grande è la strategia utilizzata: modellare la distribuzione (generativa) vs. prevedere una classe, indipendentemente dalla distribuzione (discriminativa) - pensare a KNN per un secondo per un esempio.
Saul Berardo,

90

Ecco la parte più importante delle note di CS299 (di Andrew Ng) relative all'argomento, che mi aiuta davvero a capire la differenza tra algoritmi di apprendimento discriminativo e generativo .

Supponiamo di avere due classi di animali, elephant ( y = 1) e dog ( y = 0). E x è il vettore caratteristica degli animali.

Dato un set di addestramento, un algoritmo come la regressione logistica o l'algoritmo perceptron (fondamentalmente) cerca di trovare una linea retta - cioè un confine decisionale - che separa elefanti e cani. Quindi, per classificare un nuovo animale come elefante o cane, controlla da che parte del confine decisionale cade e fa la sua previsione di conseguenza. Chiamiamo questi algoritmi di apprendimento discriminante .

Ecco un approccio diverso. Innanzitutto, guardando gli elefanti, possiamo costruire un modello di come sono gli elefanti. Quindi, guardando i cani, possiamo costruire un modello separato di come sono i cani. Infine, per classificare un nuovo animale, possiamo abbinare il nuovo animale al modello di elefante e abbinarlo al modello di cane, per vedere se il nuovo animale assomiglia più agli elefanti o più ai cani che avevamo visto nel set di addestramento . Chiamiamo questi algoritmi di apprendimento generativo .


33

In generale, esiste una pratica nella comunità dell'apprendimento automatico per non imparare qualcosa che non si desidera. Ad esempio, si consideri un problema di classificazione in cui il proprio obiettivo è quello di assegnare etichette y a un dato input x. Se usiamo il modello generativo

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

dobbiamo modellare p (x) che è irrilevante per l'attività in corso. Limitazioni pratiche come la scarsità dei dati ci costringeranno a modellare p(x)con alcune assunzioni di indipendenza deboli. Pertanto, utilizziamo intuitivamente modelli discriminatori per la classificazione.



22

Un ulteriore punto informativo che va bene con la risposta di StompChicken sopra.

La differenza fondamentale tra modelli discriminatori e modelli generativi è:

I modelli discriminatori apprendono il confine (duro o morbido) tra le classi

I modelli generativi modellano la distribuzione di singole classi

Modificare:

Un modello generativo è quello che può generare dati . Modella sia le funzionalità che la classe (ovvero i dati completi).

Se modelliamo P(x,y): posso usare questa distribuzione di probabilità per generare punti dati - e quindi tutti i modelli di algoritmi P(x,y)sono generativi.

Per esempio. di modelli generativi

  • Modelli Naive Bayes P(c)e P(d|c)- dov'è cla classe ed dè il vettore delle caratteristiche.

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

    Quindi, Naive Bayes in alcuni modelli di forma, P(c,d)

  • Bayes Net

  • Markov Nets

Un modello discriminante è quello che può essere utilizzato solo per discriminare / classificare i punti dati . In P(y|x)questi casi devi solo modellare (ad es. Probabilità di classe dato il vettore di funzione).

Per esempio. di modelli discriminatori:

  • regressione logistica

  • Reti neurali

  • Campi casuali condizionali

In generale, i modelli generativi devono modellare molto più dei modelli discriminatori e quindi a volte non sono così efficaci. È un dato di fatto, la maggior parte degli algoritmi di apprendimento non supervisionato (non sicuro se tutti) come il clustering ecc. Possono essere chiamati generativi, poiché modellano P(d)(e non ci sono classi: P)

PS: parte della risposta è presa dalla fonte


8

La breve risposta

Molte delle risposte qui si basano sulla definizione matematica ampiamente usata [1]:

  • I modelli discriminatori apprendono direttamente la distribuzione predittiva condizionale p(y|x).
  • I modelli generativi apprendono la distribuzione congiunta p(x,y)(o meglio, p(x|y)e p(y)).
    • La distribuzione predittiva p(y|x)può essere ottenuta con la regola di Bayes.

Sebbene molto utile, questa definizione ristretta assume l'impostazione supervisionata ed è meno utile quando si esaminano metodi non supervisionati o semi-supervisionati. Inoltre, non si applica a molti approcci contemporanei per la modellazione generativa profonda . Ad esempio, ora abbiamo modelli generativi impliciti, ad esempio reti generative contraddittorie (GAN), che sono basate sul campionamento e non modellano nemmeno esplicitamente la densità di probabilità p(x)(invece apprendono una misura di divergenza tramite la rete dei discriminatori). Ma li chiamiamo "modelli generativi" poiché vengono utilizzati per generare campioni (10) ad alta dimensione.

Una definizione più ampia e fondamentale [2] sembra ugualmente adatta a questa domanda generale:

  • I modelli discriminatori apprendono il confine tra le classi.
    • Quindi possono discriminare tra diversi tipi di istanze di dati.
  • I modelli generativi apprendono la distribuzione dei dati.
    • Quindi possono generare nuove istanze di dati.

Da http://primo.ai/index.php?title=Discriminative_vs._Generative Fonte immagine


Uno sguardo più da vicino

Anche così, questa domanda implica in qualche modo una falsa dicotomia [3]. La "dicotomia" generativa-discriminatoria è in effetti uno spettro che si può persino interpolare uniformemente tra [4].

Di conseguenza, questa distinzione diventa arbitraria e confusa, specialmente quando molti modelli popolari non rientrano ordinatamente nell'uno o nell'altro [5,6], o in realtà sono modelli ibridi (combinazioni di modelli classicamente "discriminatori" e "generativi") .

Tuttavia è ancora una distinzione molto utile e comune da fare. Possiamo elencare alcuni esempi chiari di modelli generativi e discriminatori, sia canonici che recenti:

  • Generativo: Naive Bayes, allocazione latente di Dirichlet (LDA), reti generative adversarial (GAN), autoencoders variazionali (VAE), flussi di normalizzazione.
  • Discriminativa: Support vector machine (SVM), regressione logistica, reti neurali più profonde.

C'è anche un sacco di lavoro interessante che esamina in profondità il divario generativo-discriminatorio [7] e lo spettro [4,8], e persino trasformando i modelli discriminatori in modelli generativi [9].

Alla fine, le definizioni sono in continua evoluzione, specialmente in questo campo in rapida crescita :) È meglio prenderle con un pizzico di sale e forse anche ridefinirle per te e gli altri.


fonti

  1. Forse proveniente da "Machine Learning - Discriminative and Generative" (Tony Jebara, 2004).
  2. Crash Course in Machine Learning di Google
  3. L'errore generativo-discriminatorio
  4. "Principi ibridi di modelli generativi e discriminatori" (Lasserre et al., 2006)
  5. La domanda di @ shimao
  6. La risposta di Binu Jasim
  7. Confronto tra regressione logistica e Bayes ingenui:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Il tuo classificatore è segretamente un modello basato sull'energia" (Grathwohl et al., 2019)
  10. Stanford CS236 note : Tecnicamente, un modello discriminatorio probabilistico è anche un modello generativo delle etichette condizionate sui dati. Tuttavia, il termine modelli generativi è in genere riservato a dati ad alta dimensione.

1
Questo dovrebbe davvero avere più voti. La tua è stata l'unica risposta che ha toccato l'idea della "falsa dicotomia" che ho trovato. La mia domanda è simile a questa: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra

1

Tutte le risposte precedenti sono fantastiche e vorrei inserire un altro punto.

Dai modelli di algoritmo generativo, possiamo derivare qualsiasi distribuzione; mentre possiamo solo ottenere la distribuzione condizionale P (Y | X) dai modelli di algoritmo discriminativo (o possiamo dire che sono utili solo per discriminare l'etichetta di Y), ed è per questo che si chiama modello discriminativo. Il modello discriminativo non presuppone che le X siano indipendenti dato Y ($ X_i \ perp X _ {- i} | Y $) e quindi di solito è più potente per calcolare quella distribuzione condizionale.


0

I miei due centesimi: gli approcci discriminatori evidenziano le differenze Gli approcci generativi non si concentrano sulle differenze; provano a costruire un modello rappresentativo della classe. C'è una sovrapposizione tra i due. Idealmente entrambi gli approcci dovrebbero essere usati: uno sarà utile per trovare somiglianze e l'altro sarà utile per trovare dis-somiglianze.


0

Un modello di algoritmo generativo imparerà completamente dai dati di addestramento e predirà la risposta.

Un lavoro di algoritmo discriminatorio è solo quello di classificare o differenziare tra i 2 risultati.


Quello che ottengo è un modello generativo basato sull'apprendimento supervisionato, mentre un modello discriminante si basa sull'apprendimento non supervisionato. Ho ragione?
Waseem Ahmad Naeem,

@WaseemAhmadNaeem Tipo di, ma tipo di no. y è sempre l'obiettivo e necessario come parte dei dati di input, quindi entrambi sono supervisionati. Generativo sembra non supervisionato perché il primo passo è quello di ottenere la distribuzione completa (in tutti i casi, non considerandoli speciali). Se ti sei fermato lì e non ti consideri speciale allora quella parte da sola non è supervisionata.
Mitch,

@Mitch posso chiederti di condividere alcuni paper / note / link sulla differenza di entrambi? in realtà sono un po 'confuso su questo concetto. Grazie in anticipo
Waseem Ahmad Naeem il

@WaseemAhmadNaeem Cerca su Cross Validated.SE (il sito stats / ML SE) in particolare i modelli generativi vs discriminatori o generativi vs discriminatori in un contesto bayesiano . Esempi elementari Naive Bayes è generativa, la regressione logistica è discriminatoria. Altri esempi di entrambi .
Mitch,

0

Questo articolo mi ha aiutato molto nella comprensione del concetto.

In sintesi,

  • Entrambi sono modelli probabilistici, nel senso che entrambi usano la probabilità (probabilità condizionale, per essere precisi ) per calcolare le classi per i dati sconosciuti.
  • I classificatori generativi applicano il PDF e il teorema di Bayes sul set di dati e calcolano la probabilità condizionale utilizzando i valori di quelli.
  • I classificatori discriminatori trovano direttamente la probabilità condizionale sul set di dati

Un buon materiale di lettura: probabilità condizionata , PDF congiunto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.