Le reti contraddittorie generative sono state introdotte da Jürgen Schmidhuber?


32

Ho letto su https://en.wikipedia.org/wiki/Generative_adversarial_networks :

[Reti contraddittorie generative] sono state introdotte da Ian Goodfellow et al nel 2014.

ma Jurgen Schmidhuber afferma di aver svolto un lavoro simile in precedenza in quella direzione (ad esempio, si è tenuto un dibattito al NIPS 2016 durante il tutorial sulle reti contraddittorie generative: https://channel9.msdn.com/Events/Neural-Information-Processing-Systems- Conferenza / Neural-Information-Processing-Systems-Conference-NIPS-2016 / Generative-Adversarial-Networks vedi 1h03min).

L'idea alla base delle reti di contraddittori generativi è stata inizialmente presentata pubblicamente da Jürgen Schmidhuber? In caso contrario, quanto erano simili le idee di Jürgen Schmidhuber?


5
Discussione pertinente su reddit qui , in particolare questo commento .
Dougal,

Un breve riassunto dell'incidente del NIPS può essere letto qui: beamandrew.github.io/deeplearning/2016/12/12/nips-2016.html
ameba dice

1
La sezione della cronologia della pagina di Wikipedia è stata aggiornata e penso che ora contenga tutti i riferimenti pertinenti e le loro connessioni reciproche. Penso che questo sia in realtà abbastanza giusto e completo ora.
Albert,

@Albert grazie per l'aggiornamento!
Franck Dernoncourt

Risposte:


50

Ho autopubblicato l'idea di base di una varietà deterministica di reti generative contraddittorie (GAN) in un post del blog 2010 (archive.org) . Avevo cercato ma non riuscivo a trovare nulla di simile da nessuna parte e non avevo tempo di provare a implementarlo. Non ero e non sono ancora un ricercatore di reti neurali e non ho connessioni nel campo. Copia e incolla il post del blog qui:

2010-02-24

Un metodo per addestrare le reti neurali artificiali per generare dati mancanti in un contesto variabile. Poiché l'idea è difficile da inserire in una sola frase, userò un esempio:

Un'immagine potrebbe avere pixel mancanti (diciamo, sotto una sfumatura). Come si possono ripristinare i pixel mancanti, conoscendo solo i pixel circostanti? Un approccio sarebbe una rete neurale "generatrice" che, dati i pixel circostanti come input, genera i pixel mancanti.

Ma come addestrare una tale rete? Non ci si può aspettare che la rete produca esattamente i pixel mancanti. Immagina, ad esempio, che i dati mancanti siano una macchia d'erba. Si potrebbe insegnare alla rete con un mucchio di immagini di prati, con porzioni rimosse. L'insegnante conosce i dati mancanti e può valutare la rete in base alla differenza quadratica media radice (RMSD) tra la patch di erba generata e i dati originali. Il problema è che se il generatore incontra un'immagine che non fa parte del set di addestramento, sarebbe impossibile per la rete neurale mettere tutte le foglie, specialmente nel mezzo della patch, esattamente nei posti giusti. L'errore RMSD più basso sarebbe probabilmente ottenuto dalla rete che riempie l'area centrale della patch con un colore solido che è la media del colore dei pixel nelle immagini tipiche dell'erba. Se la rete provasse a generare erba che sembra convincente per un essere umano e come tale soddisfa il suo scopo, ci sarebbe una penalità sfavorevole dalla metrica RMSD.

La mia idea è questa (vedere la figura seguente): formare contemporaneamente al generatore una rete di classificazione che viene fornita, in sequenza casuale o alternata, con dati generati e originali. Il classificatore deve quindi indovinare, nel contesto del contesto dell'immagine circostante, se l'input è originale (1) o generato (0). La rete del generatore sta cercando contemporaneamente di ottenere un punteggio elevato (1) dal classificatore. Il risultato, si spera, è che entrambe le reti iniziano in modo molto semplice e progrediscono verso la generazione e il riconoscimento di funzionalità sempre più avanzate, avvicinando e possibilmente sconfiggendo la capacità umana di discernere tra i dati generati e l'originale. Se vengono considerati più campioni di allenamento per ciascun punteggio, RMSD è la metrica di errore corretta da utilizzare,

inserisci qui la descrizione dell'immagine
Impostazione dell'allenamento della rete neurale artificiale

Quando menziono RMSD alla fine intendo la metrica di errore per la "stima della probabilità", non i valori dei pixel.

Inizialmente ho iniziato a considerare l'uso delle reti neurali nel 2000 (comp.dsp post) per generare alte frequenze mancanti per l'audio digitale up-sampled (ricampionato a una frequenza di campionamento più alta), in un modo convincente piuttosto che accurato. Nel 2001 ho raccolto una biblioteca audio per la formazione. Ecco alcune parti di un registro EFNet #musicdsp Internet Relay Chat (IRC) del 20 gennaio 2006 in cui io (yehar) parlo dell'idea con un altro utente (_Beta):

[22:18] <yehar> il problema con i campioni è che se non hai già qualcosa "lassù" allora cosa puoi fare se esegui il upcampionamento ...
[22:22] <yehar> una volta ho raccolto un grosso libreria di suoni in modo da poter sviluppare un algo "intelligente" per risolvere questo esatto problema
[22:22] <yehar> avrei usato le reti neurali
[22:22] <yehar> ma non ho finito il lavoro: - D
[22:23] <_Beta> problema con le reti neurali è che devi avere un modo per misurare la bontà dei risultati
[22:24] <yehar> beta: ho questa idea che puoi sviluppare un "ascoltatore" su contemporaneamente allo sviluppo del "creatore di suoni intelligente e intelligente"
[22:26] <yehar> beta: e questo ascoltatore imparerà a rilevare quando ascolta uno spettro creato o naturale lassù. e il creatore si sviluppa allo stesso tempo per cercare di aggirare questo rilevamento

Tra il 2006 e il 2010, un amico ha invitato un esperto a dare un'occhiata alla mia idea e discuterne con me. Hanno pensato che fosse interessante, ma hanno detto che non era conveniente formare due reti quando una singola rete può fare il lavoro. Non ero mai sicuro se non avessero avuto l'idea di base o se avessero immediatamente visto un modo per formularla come una singola rete, forse con un collo di bottiglia da qualche parte nella topologia per separarla in due parti. Questo è stato in un momento in cui non sapevo nemmeno che la backpropagation fosse ancora il metodo di allenamento di fatto (ho imparato che realizzare video nella mania di Deep Dream del 2015). Nel corso degli anni avevo parlato della mia idea con un paio di data scientist e altri che pensavo potessero essere interessati, ma la risposta è stata mite.

Nel maggio 2017 ho visto la presentazione del tutorial di Ian Goodfellow su YouTube [Mirror] , che ha reso la mia giornata totale. Mi è sembrata la stessa idea di base, con le differenze che attualmente capisco descritte di seguito, e il duro lavoro era stato fatto per renderlo efficace. Inoltre ha dato una teoria, o basato tutto su una teoria, del perché dovrebbe funzionare, mentre non ho mai fatto alcun tipo di analisi formale della mia idea. La presentazione di Goodfellow ha risposto alle domande che avevo avuto e molto altro.

Il GAN ​​di Goodfellow e le sue estensioni suggerite includono una fonte di rumore nel generatore. Non ho mai pensato di includere una fonte di rumore, ma ho invece il contesto dei dati di allenamento, abbinando meglio l'idea a un GAN condizionale (cGAN) senza input di rumore e con il modello condizionato su una parte dei dati. La mia attuale comprensione basata su Mathieu et al. Il 2016 è che non è necessaria una fonte di rumore per risultati utili se c'è abbastanza variabilità in ingresso. L'altra differenza è che il GAN ​​di Goodfellow riduce al minimo la probabilità di log. Più tardi, è stato introdotto un GAN (LSGAN) per i minimi quadrati ( Mao et al. 2017) che corrisponde al mio suggerimento RMSD. Quindi, la mia idea corrisponderebbe a quella di una rete contraddittoria generativa condizionale dei minimi quadrati (cLSGAN) senza un input vettoriale di rumore al generatore e con una parte dei dati come input di condizionamento. Un generatore generativo campiona da un'approssimazione della distribuzione dei dati. Ora so se e dubito che input rumorosi nel mondo reale lo permetterebbero con la mia idea, ma ciò non vuol dire che i risultati non sarebbero utili se non lo facessero.

Le differenze menzionate sopra sono la ragione principale per cui credo che Goodfellow non fosse a conoscenza o avesse sentito parlare della mia idea. Un altro è che il mio blog non ha avuto altri contenuti di apprendimento automatico, quindi avrebbe goduto di un'esposizione molto limitata nei circoli di apprendimento automatico.

È un conflitto di interessi quando un revisore mette sotto pressione un autore affinché citi il ​​lavoro stesso del revisore.


8
Devo dire che sono estremamente colpito. Sembra che anche il tuo post sul blog meriti credito per l'idea, anche se Ian e il suo team potrebbero averlo scoperto in modo indipendente.
user2808118,

2
Se avessi pubblicato il tuo lavoro, potresti essere diventato la persona che ha ispirato la rivoluzione contraddittoria. GASP !!
user2808118,

5
@ user2808118 Ciò avrebbe richiesto di lavorarci su, per produrre alcuni risultati da pubblicare, non solo per pensarci.
Olli Niemitalo,

4
Ti saluto due volte: in primo luogo per averlo scoperto almeno 3 anni prima di Goodfellow e in secondo luogo per avere il grande cuore di prenderlo in modo molto positivo.
Fallito scienziato il

19

Una risposta di Ian Goodfellow su Jürgen Schmidhuber aveva ragione quando ha rivendicato il credito per i GAN al NIPS 2016? pubblicato il 21-03-2017:

Non rivendica il credito per i GAN, esattamente. È più complicato

Puoi vedere ciò che ha scritto con le sue stesse parole quando era un revisore della presentazione di NIPS 2014 su GAN: recensioni di esportazione, discussioni, feedback degli autori e meta-recensioni ( mirror )

È il revisore che ci ha chiesto di cambiare il nome dei GAN in "PM inverso".

Ecco il documento che ritiene non sia sufficientemente riconosciuto: http: // ftp: //ftp.idsia.ch/pub/juergen/factorial.pdf ( mirror )

Non mi piace che non ci sia un buon modo per avere problemi come questo giudicati. Ho contattato gli organizzatori di NIPS e ho chiesto se Jürgen potesse presentare un reclamo su di me e fare in modo che un comitato di rappresentanti di NIPS giudicasse se la mia pubblicazione tratta la sua ingiustamente. Hanno detto che non esiste un tale processo disponibile.

Personalmente non penso che ci sia una connessione significativa tra minimizzazione della prevedibilità e GAN. Non ho mai avuto problemi a riconoscere le connessioni tra GAN e altri algoritmi che sono in realtà correlati, come la stima del contrasto del rumore e il potenziamento auto-supervisionato.

Jürgen e io abbiamo intenzione di scrivere insieme un articolo che descriva presto le somiglianze e le differenze tra PM e GAN, supponendo che siamo in grado di concordare quali siano.


2
Sfortunatamente non sembra esserci un documento tra i due di prossima pubblicazione. :-(
ComputerScientist il

@ComputerScientist ancora in attesa, qualcun altro potrebbe occuparsene altrimenti :-)
Franck Dernoncourt
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.