Domanda

Per favore, mi aiuti a capire la differenza tra un generativa e un discriminatorio algoritmo, tenendo presente che io sono solo un principiante.

È stato utile?

Soluzione

Diciamo che si sono dati di input x e si desidera classificare i dati in etichette y.Un modello generativo impara l' comune distribuzione di probabilità p(x,y) e discriminatorio modello impara l' condizionale distribuzione di probabilità p(y|x) - che si deve leggere come "la probabilità di y dato x".

Ecco un esempio molto semplice.Si supponga di avere i seguenti dati in forma (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 si prende un paio di minuti a fissare quei due matrici, si capisce la differenza tra le due distribuzioni di probabilità.

La distribuzione p(y|x) è la naturale distribuzione per la classificazione di un dato esempio x in una classe y, che è il motivo per cui gli algoritmi che questo modello direttamente sono chiamati discriminatorio algoritmi.Algoritmi generativi modello p(x,y), che può essere trasformato in p(y|x) applicando la regola di Bayes e poi utilizzati per la classificazione.Tuttavia, la distribuzione p(x,y) può essere utilizzato anche per altri scopi.Per esempio, si potrebbe utilizzare p(x,y) per generare probabile (x,y) le coppie.

Dalla descrizione di cui sopra, si potrebbe pensare che modelli generativi sono in genere più utili e quindi migliore, ma non è così semplice. Questa carta è un modo molto popolare di riferimento in materia di discriminatorio controgenerativa classificatori, ma è abbastanza pesante.Il generale gist è che discriminatorio modelli generalmente outperform modelli generativi in attività di classificazione.

Altri suggerimenti

Un algoritmo generativo modelli come i dati è stato generato al fine di classificare un segnale. Si pone la domanda:? In base alle mie ipotesi generazione, quale categoria è più in grado di generare questo segnale

Un algoritmo discriminante non si cura di come i dati sono stati generati, che categorizza semplicemente un dato segnale.

Immaginate che il vostro compito è quello di classificare un discorso a una lingua.

È possibile farlo mediante:

  1. imparare ogni lingua, e quindi la classificazione utilizzando le conoscenze che hai appena guadagnato

o

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

Il primo è il generativa avvicinamento e la seconda è la discriminante approccio.

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

In pratica, i modelli sono utilizzati come segue.

In discriminatorio modelli, prevedere l'etichetta y dall'esempio di allenamento x, è necessario valutare:

enter image description here

che semplicemente sceglie ciò che è più probabile di classe y considerando x.È come se si stavano cercando di modello la decisione di confine tra le classi.Questo comportamento è molto chiaro nelle reti neurali, dove calcolati i pesi può essere visto come una complessa curva a forma di isolare gli elementi di una classe nello spazio.

Ora, utilizzando la regola di Bayes, proviamo a sostituire il enter image description here nell'equazione enter image description here.Dal momento che si sono semplicemente interessati al arg max, è possibile eliminare il denominatore, che sarà lo stesso per ogni y.Così, si sono lasciati con

enter image description here

che è l'equazione che si usano in modelli generativi.

Mentre nel primo caso si aveva la distribuzione di probabilità condizionale p(y|x), che modellato il confine tra le classi, nel secondo si aveva la distribuzione di probabilità congiunta p(x, y), dal momento che p(x, y) = p(x | y) p(y), che esplicitamente i modelli di distribuzione di ciascuna classe.

Con il comune di funzione di distribuzione di probabilità, dato un y, si può calcolare ("generare") i suoi rispettivi x.Per questo motivo, essi sono chiamati "generativa" modelli.

Ecco la parte più importante dalla lezione del note di CS299 (da Andrew ng) legato al tema, che davvero mi aiuta a capire la differenza tra discriminative e generativi algoritmi di apprendimento.

Supponiamo di avere due classi di animali, elefanti (y = 1) e cani (y = 0). E x è la caratteristica di vettore degli animali.

Dato un insieme di addestramento, un algoritmo come regressione logistica o l'algoritmo percettrone (sostanzialmente) cerca di trovare una linea retta - cioè, un confine decisione - che separa gli elefanti e cani. Poi, per classificare un nuovo animale sia come un elefante o un cane, controlla su quale lato della confine decisione cade, e fa la sua previsione di conseguenza. Noi chiamiamo questi algoritmo di apprendimento discriminante .

Ecco un approccio diverso. In primo luogo, guardando gli elefanti, siamo in grado di costruire un modello di ciò che gli elefanti assomigliano. Poi, guardando i cani, siamo in grado di costruire un modello separato di ciò che i cani assomigliano. Infine, per classificare un nuovo animale, siamo in grado di abbinare il nuovo animale contro il modello di elefante, e abbinare contro il modello cane, per vedere se il nuovo animale sembra più gli elefanti o più come i cani che avevamo visto nel training set. Noi chiamiamo questi algoritmo di apprendimento generativo .

In generale, v'è una pratica in comunità di apprendimento macchina non per imparare qualcosa che non si vuole. Ad esempio, si consideri un problema di classificazione dove lo scopo è quello di assegnare etichette y per un dato ingresso x. Se usiamo modello generativo

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

dobbiamo modellare p (x), che è irrilevante per il compito in mano. limitazioni pratiche come scarsità di dati ci costringerà a modellare p(x) con alcune ipotesi di indipendenza deboli. Pertanto, intuitivamente utilizziamo modelli discriminativi per la classificazione.

Un punto informativo, oltre che ben si sposa con la risposta StompChicken sopra.

Il differenza fondamentale tra modelli discriminativi e modelli generativi è:

  

modelli discriminativi imparare la (rigida o morbida) confine tra le classi

     

modelli generativi modello distribuzione di singole classi

Modifica:

Un modello generativo è quello in grado di generare i dati . E modelli sia le caratteristiche e la classe (vale a dire i dati completi).

Se modelliamo P(x,y):. Posso usare questa distribuzione di probabilità di generare punti di dati - e quindi tutti P(x,y) algoritmi di modellazione sono generativa

Eg. di modelli generativi

  • Naive Bayes modelli P(c) e P(d|c) -. Dove c è la classe e d è la caratteristica vettore

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

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

  • Bayes rete

  • Markov Reti

Un modello discriminante è quella che può essere utilizzato solo per discriminare / classificare i punti di dati . Hai solo bisogno di modellare P(y|x) in questi casi, (vale a dire probabilità di classe data la funzione di vettore).

Eg. modelli di discriminativi:

  • regressione logistica

  • Reti Neurali

  • campi aleatori condizionali

In generale, modelli generativi bisogno di modellare molto di più rispetto ai modelli discriminativi e quindi a volte non sono efficaci. È un dato di fatto, la maggior parte (non so se tutti) algoritmi di apprendimento non supervisionato come il clustering, ecc possono essere chiamati generativa, dal momento che il modello P(d) (e non ci sono classi: P)

PS: Parte della risposta è tratto da

I diversi modelli sono riassunti nella tabella sottostante: entrare image description qui

I miei due centesimi: approcci discriminante differenze di evidenziazione approcci generativi non si concentrano sulle differenze; cercano di costruire un modello che è rappresentante della classe. C'è una sovrapposizione tra i due. Idealmente entrambi gli approcci devono essere utilizzati: uno sarà utile per trovare somiglianze e l'altro sarà utile per trovare dis-analogie.

Un modello di algoritmo generativo imparerà completamente dai dati di formazione e sarà predire la risposta.

Un lavoro algoritmo discriminante è solo per classificare o differenziare tra i 2 risultati.

Tutte le risposte precedenti sono grandi, e mi piacerebbe inserire un punto in più.

Da modelli generativi algoritmo, siamo in grado di trarre alcun distribuzione; mentre si può ottenere solo la distribuzione condizionale P (Y | X) dai modelli algoritmo discriminativi (o possiamo dire che sono solo utili per discriminare l'etichetta di Y), ed è per questo che si chiama il modello discriminante. Il modello discriminante non presuppone che le X sono indipendenti data la Y ($ x_i \ perp X _ {- i} | Y $) e, quindi, è di solito più potente di calcolo di tale distribuzione condizionata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top