Generative Adversarial Networks (2014): il gioco a due

Nel 2014 Ian Goodfellow e i suoi coautori propongono di addestrare un generatore mettendolo contro un avversario che deve smascherarlo. Due reti che giocano l'una contro l'altra, e all'equilibrio nessuna delle due riesce più a vincere: è l'idea da cui nascono i volti sintetici e le immagini generate.

C’è una storia che Ian Goodfellow racconta spesso: l’idea gli venne discutendo con dei colleghi in un bar di Montreal, e la notte stessa scrisse il primo prototipo che funzionò al primo tentativo. Vera o abbellita che sia, la storia cattura qualcosa di reale sull’articolo Generative Adversarial Networks, firmato da Goodfellow insieme a Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville e Yoshua Bengio, e pubblicato su arXiv nel giugno 2014. L’idea è così semplice da stare in una frase, eppure ha cambiato il modo in cui costruiamo modelli capaci di generare immagini, suoni e testi. La frase è questa: invece di insegnare a una rete come dovrebbe apparire un’immagine realistica, mettila contro un’altra rete il cui unico compito è smascherarla.

Generatore, discriminatore, gioco minimax e addestramento alternato — e quando il duello si rompe — stanno nel libro.

Leggi «Come funziona l’addestramento avversario» nel libro →

Il problema di generare, non di classificare

Fino a quel momento le reti neurali erano soprattutto bravissime a classificare: guarda una foto, dimmi se è un cane o un gatto. Generare è il problema inverso e molto più difficile. Non basta dire «questo è un gatto»; devi produrre da zero un’immagine di gatto che nessuno ha mai visto e che sembri comunque plausibile. Il guaio è che è difficile persino scrivere una formula per cosa significhi «plausibile». Come si misura la differenza tra un volto vero e uno finto, pixel per pixel, in un modo che catturi ciò che il nostro occhio nota immediatamente?

I metodi generativi precedenti cercavano di stimare esplicitamente la distribuzione di probabilità dei dati, spesso con procedure di calcolo pesanti come le catene di Markov. Goodfellow e coautori propongono di aggirare del tutto il problema: non definire una misura di realismo scritta a mano, ma impararla, affidandola a una seconda rete che si specializza proprio nel distinguere il vero dal falso.

Il falsario e l’investigatore

L’analogia usata dagli stessi autori è quella di un falsario e della polizia. Il generatore è un falsario che stampa banconote e cerca di spacciarle. Il discriminatore è l’investigatore che deve dire, per ogni banconota che gli passa tra le mani, se è autentica o contraffatta. All’inizio il falsario è maldestro e produce banconote grossolane; l’investigatore le smaschera senza fatica. Ma ogni volta che viene scoperto, il falsario impara qualcosa e migliora. E ogni volta che si lascia ingannare, l’investigatore affina il proprio occhio.

Le due reti si allenano a vicenda in questa rincorsa. Il generatore non vede mai direttamente le banconote vere: l’unico segnale che riceve è il verdetto dell’investigatore, e il suo obiettivo è massimizzare la probabilità che l’investigatore sbagli. È una forma di apprendimento indiretto ed elegante: nessuno spiega al generatore come sia fatta una banconota autentica, lo deve dedurre da solo dai propri fallimenti.

rumore casuale z GENERATORE G campione falso dati reali DISCRIMI- NATORE D vero / falso? segnale di apprendimento (il verdetto torna al generatore)

Il generatore trasforma rumore casuale in un campione falso; il discriminatore riceve campioni veri e falsi e prova a smascherarli. Il suo verdetto (linea tratteggiata) torna indietro come segnale di apprendimento: è l’unico modo in cui il generatore capisce quanto è stato convincente.

Un gioco a somma zero, scritto in una formula

Sotto l’analogia c’è una struttura matematica precisa: un gioco a due giocatori del tipo che i teorici chiamano minimax. Il discriminatore vuole massimizzare la propria capacità di distinguere il vero dal falso; il generatore vuole minimizzare quella stessa capacità. In notazione compatta, le due reti si contendono una funzione obiettivo della forma

min_G max_D  V(D, G) =
    E_x[ log D(x) ] + E_z[ log(1 - D(G(z))) ]

dove x sono i dati reali, z è il rumore casuale in ingresso al generatore, e D restituisce la probabilità che un campione sia autentico. Non serve digerire la formula per coglierne il punto: i due termini tirano in direzioni opposte, e l’apprendimento consiste nel lasciarli combattere. Il risultato teorico più bello dell’articolo è che questo gioco ha un unico punto di equilibrio: quando il generatore ha imparato a riprodurre esattamente la distribuzione dei dati veri, il discriminatore non può fare di meglio che tirare a indovinare, e restituisce ovunque una probabilità di un mezzo. A quel punto le banconote finte sono indistinguibili da quelle vere, e l’investigatore è ridotto a lanciare una moneta.

All’equilibrio il discriminatore risponde un mezzo a ogni campione: non perché sia diventato cieco, ma perché non c’è più nulla da distinguere.

Cosa c’era di nuovo, davvero

La prima virtù pratica è che entrambe le reti sono percettroni multistrato ordinari, addestrabili con la retropropagazione, la stessa tecnica usata per qualsiasi altra rete. Niente catene di Markov, niente procedure di inferenza approssimata srotolate passo dopo passo: solo due reti e la discesa del gradiente. Questo rendeva l’approccio immediatamente accessibile a chiunque avesse già una libreria di deep learning tra le mani.

Nell’articolo le immagini generate — cifre scritte a mano dal dataset MNIST, volti, piccole fotografie di CIFAR-10 — sono modeste per gli standard di oggi: piccole, sgranate, a volte incerte. Ma la valutazione, sia qualitativa sia quantitativa, mostrava che l’idea funzionava. Gli stessi autori sono onesti sui limiti: l’addestramento è delicato, le due reti devono restare in equilibrio, e se una prende il sopravvento sull’altra il gioco collassa. È un tema che accompagnerà le GAN per anni.

Perché riguarda anche voi, oggi

Le immagini di volti fotorealistici che circolano dal 2018 in poi, i filtri che ringiovaniscono o invecchiano un viso, buona parte della prima ondata di contenuti sintetici: discendono tutti, per linea diretta o indiretta, da questo schema a due giocatori. Anche quando i modelli generativi più recenti — quelli a diffusione, che oggi dominano la generazione di immagini — usano meccanismi diversi, l’intuizione che ha reso pensabile «generare imparando a ingannare un critico» nasce qui. E l’idea più generale, quella di addestrare un modello attraverso un avversario invece che con un bersaglio fisso, è tornata utile in contesti che con le immagini non c’entrano nulla, dalla robustezza dei classificatori all’allineamento dei modelli linguistici.

Vale la pena leggere l’articolo del 2014 proprio perché arriva prima di tutto questo. Non c’è ancora alcuna delle complicazioni che verranno: solo un falsario, un investigatore e l’osservazione, quasi filosofica, che a volte il modo migliore per imparare a fare una cosa è provare a ingannare qualcuno che sa riconoscerla.

Leggere l’originale

L’articolo — Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, Generative Adversarial Networks, 2014 — è in accesso aperto: arxiv.org/abs/1406.2661. Le prime quattro pagine contengono l’intuizione e la dimostrazione dell’equilibrio; il resto è dedicato agli esperimenti e alle direzioni future.

I commenti sono riservati agli iscritti.

Accedi per commentare