Possiamo generare un enorme set di dati con reti generative contraddittorie


14

Sto affrontando un problema in cui non sono riuscito a trovare un set di dati (immagini) sufficiente per alimentare la mia rete neurale profonda per l'addestramento.

Sono stato così ispirato dal documento Generative Adversarial Text to Image Synthesis pubblicato da Scott Reed et al. sulle reti contraddittorie generative.

Ero curioso di saperlo, posso usare un piccolo set di dati disponibile come input per un modello GAN e generare un set di dati molto più grande per gestire modelli di rete più profondi?

Sarà abbastanza buono?


Possiamo usare GAN per set di dati non immagine?
Mohamed EL-KADDOURY,

@ MohamedEL-KADDOURY sì naturalmente, con audio arxiv.org/abs/1802.04208 , con testo arxiv.org/abs/1801.07736 ecc.
Alwyn Mathew

Risposte:


9

È improbabile che ciò aggiunga molto al di là dei tuoi sforzi diretti nella raccolta dei dati.

La qualità delle attuali uscite GAN (a partire dal 2017) non sarà abbastanza elevata. Le immagini prodotte da un GAN sono in genere piccole e possono avere dettagli insoliti / ambigui e strane distorsioni. Nel documento che hai collegato, le immagini generate dal sistema da una frase hanno credibili blocchi di colore dati l'argomento, ma senza la frase che ti innesca cosa aspettarti la maggior parte di loro non è riconoscibile come nessun argomento specifico.

I GAN con uno scopo meno ambizioso rispetto alla generazione di immagini da frasi (che è nonostante la mia critica sopra, un'impresa IMO davvero notevole) dovrebbero produrre immagini più realistiche più vicine alle foto. Ma il loro ambito sarà inferiore e probabilmente non includerà il tipo di immagine desiderato. Inoltre, in genere la dimensione dell'output è piccola, ad esempio 64x64 o 128x128 *, e ci sono ancora abbastanza distorsioni e ambiguità che le foto originali di verità sul terreno sarebbero molto preferibili.

Il GAN ​​è esso stesso limitato dalla libreria di training disponibile - non funzionerà bene se si tenta di generare immagini al di fuori dell'ambito dei suoi dati di training. I risultati mostrati nel documento di ricerca si concentrano ovviamente sul dominio fornito dai dati di formazione. Ma non puoi semplicemente inserire una frase in questo modello e aspettarti un risultato che sarebbe utile altrove.

Se trovi un GAN che è stato addestrato su un set di dati adatto al tuo problema, molto probabilmente stai meglio provando a cercare gli stessi dati direttamente per il tuo progetto.

Se stai affrontando un problema con dati di verità fondamentali limitati, forse un approccio migliore all'utilizzo di un GAN sarebbe quello di utilizzare un classificatore pre-addestrato come VGG-19 o Inception v5, sostituire gli ultimi pochi livelli completamente collegati e bene ottimizzalo sui tuoi dati. Ecco un esempio di ciò usando la libreria Keras in Python - altri esempi possono essere trovati con ricerche come "fine tuning classificatore di immagini CNN".


* I GAN all'avanguardia sono migliorati da quando ho pubblicato questa risposta. Un team di ricerca di Nvidia ha avuto un notevole successo nel creare immagini fotorealistiche 1024x1024 . Tuttavia, questo non cambia gli altri punti nella mia risposta. I GAN non sono una fonte affidabile di immagini per le attività di classificazione delle immagini, tranne forse per le attività secondarie di qualsiasi cosa la GAN sia già stata addestrata e sia in grado di generare in modo condizionale (o forse più banalmente, per fornire dati di origine per "altre" categorie in classificatori).


3

Ho lo stesso identico problema con un DNN che sto attualmente costruendo. Prendere il mio set di dati e sintetizzare nuovi dati con un GAN sembra un'ottima idea. Ma il GAN ​​stesso imparerà solo a produrre immagini con la stessa varianza di immagine e deviazioni standard apprese nel set di addestramento. Quindi i tuoi dati appena generati rappresenteranno semplicemente più permutazioni della stessa distribuzione di esempio. Questo aiuterà il tuo NN ad allenarsi meglio sulla stessa distribuzione, quindi potrebbe portare a un allenamento eccessivo.


3

Solo da una prospettiva puramente teorica ciò non può essere possibile.

Ogni dato set di dati di addestramento rappresenta una certa quantità di informazioni sulla struttura di un determinato spazio. Se si allena un GAN su questo set di dati, imparerà sempre e solo dalle informazioni rappresentate da quel set di dati. I dati sintetizzati dal GAN ​​non possono mai provenire da uno spazio più ampio rispetto ai dati originali, per la semplice ragione: da dove dovrebbero provenire queste informazioni? Se non era nel set di dati originale, non può essere incluso nei dati sintetizzati dal GAN.

Se si allena una rete neurale alla convergenza su un set di dati, quella rete neurale apprenderà qualunque struttura il set di dati contiene. Qualsiasi dato di allenamento artificiale sintetizzato da un GAN non aggiungerà nuove informazioni. Quell'idea dovrebbe essere diretta.


2

In realtà è possibile, aumentare un piccolo set di dati con GAN per migliorarlo e aumenterà anche le prestazioni delle reti di classificazione, come potete leggere qui https://arxiv.org/pdf/1803.01229.pdf . I GAN sono in grado di apprendere, ad esempio, forme intermedie che non sono coinvolte nel set di date originale ma sono ancora valide. Quindi le immagini sintetiche possono davvero migliorare le dimensioni del set di dati e migliorare l'accuratezza della classificazione della CNN.

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.