Comprensione della funzione di perdita GAN


17

Faccio fatica a capire la funzione di perdita GAN come fornita in Comprensione delle reti generative degli avversari (un post sul blog scritto da Daniel Seita).

Nella perdita standard di entropia incrociata, abbiamo un output che è stato eseguito attraverso una funzione sigmoide e una conseguente classificazione binaria.

Afferma Sieta

Pertanto, per [ogni] punto dati X1 e la sua etichetta, otteniamo la seguente funzione di perdita ...

H((X1,y1),D)=-y1logD(X1)-(1-y1)log(1-D(X1))

Questo è solo il registro delle aspettative, che ha senso, ma come possiamo, nella funzione di perdita GAN, elaborare i dati dalla vera distribuzione e i dati dal modello generativo nella stessa iterazione?

Risposte:


6

Il focus di questa domanda

"Come possiamo ... elaborare i dati dalla vera distribuzione e i dati dal modello generativo nella stessa iterazione?

Analizzare la pubblicazione di base

Nella pagina di riferimento, Understanding Generative Adversarial Networks (2017) , il dottorando Daniel Sieta fa correttamente riferimento a Generative Adversarial Networks, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville e Bengio, giugno 2014 . Si tratta di stati astratti, "Proponiamo un nuovo quadro per la stima di modelli generativi attraverso un processo contraddittorio, in cui contemporaneamente formiamo due modelli ..." Questo documento originale definisce due modelli definiti come MLP (percetroni multistrato).

  • Modello generativo, G
  • Modello discriminatorio, D

Questi due modelli sono controllati in un modo in cui uno fornisce una forma di feedback negativo verso l'altro, quindi il termine contraddittorio.

  • G è addestrato a catturare la distribuzione dei dati di una serie di esempi abbastanza bene da ingannare D.
  • D è addestrato a scoprire se il suo input è la derisione di G o l'insieme di esempi per il sistema GAN.

(L'insieme di esempi per il sistema GAN viene talvolta definito campione reale, ma potrebbe non essere più reale di quelli generati. Entrambi sono array numerici in un computer, uno con origine interna e l'altro con origine esterna origine. Se quelli esterni provengono da una telecamera puntata su una scena fisica non è rilevante per il funzionamento GAN.)

Probabilmente, ingannare D è sinonimo di massimizzare la probabilità che D genererà tanti falsi positivi e falsi negativi quanti corretti le categorizzazioni, il 50% ciascuno. Nella scienza dell'informazione, questo vuol dire che il limite di informazione che D ha di G si avvicina a 0 mentre t si avvicina all'infinito. È un processo per massimizzare l'entropia di G dalla prospettiva di D, quindi il termine entropia incrociata.

Come si realizza la convergenza

Perché la funzione di perdita riprodotta dalla scrittura di Sieta del 2017 nella domanda è quella di D, progettata per minimizzare l'entropia incrociata (o correlazione) tra le due distribuzioni quando applicata all'intera serie di punti per un dato stato di allenamento.

H((X1,y1),D)=1D(X1)

C'è una funzione di perdita separata per G, progettata per massimizzare l'entropia crociata. Si noti che ci sono DUE livelli di granularità di allenamento nel sistema.

  • Quella del gioco si muove in una partita a due giocatori
  • Quello dei campioni di addestramento

Questi producono l'iterazione nidificata con l'iterazione esterna come segue.

  • L'addestramento di G procede utilizzando la funzione di perdita di G.
  • I modelli di input fittizi sono generati da G nel suo attuale stato di allenamento.
  • L'addestramento di D procede utilizzando la funzione di perdita di D.
  • Ripeti se l'entropia crociata non è ancora sufficientemente massimizzata, D può comunque discriminare.

Quando D alla fine perde il gioco, abbiamo raggiunto il nostro obiettivo.

  • G ha recuperato la distribuzione dei dati di allenamento
  • D è stata ridotta a inefficacia ("1/2 probabilità ovunque")

Perché è necessaria una formazione simultanea

Se i due modelli non fossero stati addestrati in modo avanti e indietro per simulare la concorrenza, la convergenza nel piano contraddittorio (iterazione esterna) non si verificherebbe sulla soluzione unica rivendicata nel documento del 2014.

Maggiori informazioni

Al di là della domanda, il prossimo elemento di interesse nel documento di Sieta è che "Il cattivo design della funzione di perdita del generatore" può portare a valori di gradiente insufficienti per guidare la discesa e produrre ciò che a volte viene chiamato saturazione. La saturazione è semplicemente la riduzione del segnale di feedback che guida la discesa nella retro-propagazione al rumore caotico derivante dall'arrotondamento in virgola mobile. Il termine deriva dalla teoria dei segnali.

Suggerisco di studiare l'articolo del 2014 di Goodfellow et alia (i ricercatori esperti) per conoscere la tecnologia GAN piuttosto che la pagina del 2017.


3

Cominciamo dall'inizio. I GAN sono modelli che possono imparare a creare dati simili ai dati che forniamo loro.

Durante l'addestramento di un modello generativo diverso da un GAN, la funzione di perdita più semplice da realizzare è probabilmente il Mean Squared Error (MSE).

Consentitemi di darvi un esempio ( Trickot L 2017 ):

Supponiamo ora di voler generare gatti; potresti dare al tuo modello esempi di gatti specifici nelle foto. La scelta della funzione di perdita implica che il tuo modello deve riprodurre esattamente ogni gatto per evitare di essere punito.

Ma non è necessariamente quello che vogliamo! Vuoi solo che il tuo modello generi gatti, qualsiasi gatto lo farà purché sia ​​un gatto plausibile. Quindi, è necessario modificare la funzione di perdita.

Tuttavia, quale funzione potrebbe ignorare i pixel concreti e concentrarsi sul rilevamento di gatti in una foto?

Questa è una rete neurale. Questo è il ruolo del discriminatore nella GAN. Il compito del discriminatore è valutare quanto sia plausibile un'immagine.

L'articolo che citi, Understanding Generative Adversarial Networks (Daniel S 2017) elenca due importanti approfondimenti.

Major Insight 1: la funzione di perdita del discriminatore è la funzione di perdita di entropia incrociata.

Major Insight 2: capire in che modo la saturazione del gradiente può o meno influire negativamente sull'allenamento. La saturazione del gradiente è un problema generale quando i gradienti sono troppo piccoli (cioè zero) per eseguire qualsiasi apprendimento.

Per rispondere alla tua domanda, dobbiamo approfondire ulteriormente il secondo approfondimento.

Nel contesto dei GAN, la saturazione del gradiente può verificarsi a causa della cattiva progettazione della funzione di perdita del generatore, quindi questa "visione profonda" ... si basa sulla comprensione dei compromessi tra le diverse funzioni di perdita per il generatore.

Il progetto implementato nel documento risolve il problema della funzione di perdita avendo una funzione molto specifica (discriminare tra due classi). Il modo migliore per farlo è usare l'entropia incrociata (Insight 1). Come dice il post sul blog:

L'entropia incrociata è una grande funzione di perdita poiché è progettata in parte per accelerare l'apprendimento ed evitare la saturazione del gradiente solo fino a quando il classificatore è corretto.

Come chiarito nei commenti del post sul blog:

L'aspettativa [nella funzione entropia incrociata] deriva dalle somme. Se osservi la definizione di aspettativa per una variabile casuale discreta, noterai che devi sommare diversi possibili valori della variabile casuale, soppesando ciascuna di esse in base alla loro probabilità. Qui, le probabilità sono solo 1/2 per ciascuna e possiamo trattarle come provenienti dal generatore o dal discriminatore.


La domanda non poneva quale fosse la più facile da usare come funzione di perdita per le ANN. I dettagli della matematica non erano chiari su @tryingtolearn e la citazione dello studente laureato senza fornire alcun chiarimento non chiarisce.
FauChristian,

1

È possibile trattare una combinazione di zinput e xinput come un singolo campione e valutare in che misura il discriminatore ha eseguito la classificazione di ciascuno di essi.

Questo è il motivo per cui il post in seguito separa un singolo yin - E(p~data)e E(z), fondamentalmente, hai aspettative diverse yper ciascuno degli input del discriminatore e devi misurare entrambi allo stesso tempo per valutare il rendimento del discriminatore.

Ecco perché la funzione di perdita è concepita come una combinazione sia della classificazione positiva dell'input reale sia della classificazione negativa dell'input negativo.

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.