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,
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.