Utente:PoliFL/Sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
(22 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1:
Nel campo dell'[[apprendimento automatico]], si definisce '''rete
==Metodo==
[[File:Rete generativa avversaria.png|thumb|upright=2|Rete generativa avversaria]]
Nella sua versione originale, una rete
La chiave per raggiungere questa situazione è l'addestramento competitivo. La rete discriminativa viene addestrata in modo da massimizzare la probabilità di classificare correttamente i campioni provenienti dai dati di addestramento e i campioni generati.
Allo stesso tempo, la rete generativa viene addestrata minimizzando
:<math>log(1-D(G(\boldsymbol{z}))</math>,
massimizzando quindi la probabilità del discriminatore di considerare i campioni <math>\boldsymbol{x} \sim p_g</math> come provenienti da <math>p_{data}</math>.
L'apprendimento consiste quindi nell'[[ottimizzazione (matematica)|ottimizzare]] un gioco minimax a due giocatori (D e G):
:<math>\min _{G} \max _{D} \mathbb{E}_{\boldsymbol{x} \sim p_{data}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))]</math>,
che ha un ottimo globale per <math>p_g = p_{data}</math><ref name='GAN'/>.
==Varianti==
Negli ultimi anni si è assistito ad un rapido sviluppo di metodi che rappresentano versioni modificate del framework originale.
====Rete generativa avversaria condizionata====
Una rete generativa avversaria condizionata, o in inglese '''conditional generative adversarial network (cGAN)''', è un estensione della GAN in cui sia il generatore che il discriminatore vengono condizionati tramite l'utilizzo di qualche tipo di informazione aggiuntiva <math>\boldsymbol{y}</math>. La funzione obiettivo diventa:
:<math>\min _{G} \max _{D} \mathbb{E}_{\boldsymbol{x} \sim p_{data}(\boldsymbol{x})}[\log D(\boldsymbol{x}|\boldsymbol{y})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z}|\boldsymbol{y})))]</math>.
Ad esempio, è possibile generare una nuova immagine di una specifica [[MNIST database|cifra scritta a mano]] fornendo l'etichetta relativa alla sua [[classificazione]], ovvero uno scalare in <math>[0,9]</math>, come input addizionale alle due reti<ref>{{Cite journal| last1 = Mirza| first1 = Mehdi| last2 = Osindero| first2 = Simon| title = Conditional Generative Adversarial Nets| journal = arXiv:1411.1784 [cs, stat]| accessdate = 2019-07-03| date = 2014-11-06| url = http://arxiv.org/abs/1411.1784}}</ref>, oppure generare automaticamente immagini di ambienti esterni a partire da un layout semantico della scena<ref>{{Cite journal| last1 = Karacan| first1 = Levent| last2 = Akata| first2 = Zeynep| last3 = Erdem| first3 = Aykut| last4 = Erdem| first4 = Erkut| title = Learning to Generate Images of Outdoor Scenes from Attributes and Semantic Layouts| journal = arXiv:1612.00215 [cs]| accessdate = 2019-07-04| date = 2016-12-01| url = http://arxiv.org/abs/1612.00215}}</ref>. In generale, i possibili campi applicativi ricadono nel dominio dei problemi di traduzione di un'immagine in un'altra<ref>{{Cite journal| last1 = Isola| first1 = Phillip| last2 = Zhu| first2 = Jun-Yan| last3 = Zhou| first3 = Tinghui| last4 = Efros| first4 = Alexei A.| title = Image-to-Image Translation with Conditional Adversarial Networks| journal = arXiv:1611.07004 [cs]| accessdate = 2019-07-04| date = 2016-11-21| url = http://arxiv.org/abs/1611.07004}}</ref><ref>{{Cite journal| doi = 10.1109/TIP.2018.2836316| issn = 1057-7149, 1941-0042| volume = 27| issue = 8| pages = 4066–4079| last1 = Wang| first1 = Chaoyue| last2 = Xu| first2 = Chang| last3 = Wang| first3 = Chaohui| last4 = Tao| first4 = Dacheng| title = Perceptual Adversarial Networks for Image-to-Image Transformation| journal = IEEE Transactions on Image Processing| accessdate = 2019-07-04| date = 2018-08| url = http://arxiv.org/abs/1706.09138}}</ref>: generazione di foto realistiche a partire da etichette semantiche, generazione di immagini aeree a partire da [[mappe]] urbane (es., [[Google Maps]]), generazione di immagini realistiche a partire dai contorni della scena o da uno disegno, [[inpainting]], e molti altri.
====VAE-GAN====
Questa classe di metodi si basa sull'unione di [[autoencoder variazionali]], o in inglese '''variational autoencoders (VAE)''', e le GAN. In generale, un discriminatore viene usato per distinguere tra gli esempi forniti in output dal VAE e quelli reali. In questo modo, invece di usare una funzione di errore definita, il discriminatore permette di apprendere una funzione di similarità tra l'esempio ricostruito in uscita dal VAE e quello fornito in input. Questo approccio fa si che si ottengano ricostruzioni migliori rispetto al singolo VAE<ref>{{Cite journal| last1 = Larsen| first1 = Anders Boesen Lindbo| last2 = Sønderby| first2 = Søren Kaae| last3 = Larochelle| first3 = Hugo| last4 = Winther| first4 = Ole| title = Autoencoding beyond pixels using a learned similarity metric| journal = arXiv:1512.09300 [cs, stat]| accessdate = 2019-07-05| date = 2015-12-31| url = http://arxiv.org/abs/1512.09300}}</ref>.
====cycleGAN====
Una cycleGAN, dall'inglese '''cycle-consistent generative adversarial network'''<ref>{{Cite journal| last1 = Zhu| first1 = Jun-Yan| last2 = Park| first2 = Taesung| last3 = Isola| first3 = Phillip| last4 = Efros| first4 = Alexei A.| title = Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks| journal = arXiv:1703.10593 [cs]| accessdate = 2019-07-04| date = 2017-03-30| url = http://arxiv.org/abs/1703.10593}}</ref>, è un'evoluzione della rete generativa avversaria in cui l'addestramento avviene in maniera [[apprendimento non supervisionato|non supervisionata]]. In questo modo è possibile apprendere un modello capace di tradurre un'immagine da un dominio <math>X</math> ad un altro <math>Y</math> , e viceversa, senza dover utilizzare immagini target, spesso non disponibili, durante la fase di addestramento. Il modello è composto da due generatori <math>G: X \rightarrow Y</math> e <math>F: Y \rightarrow X</math> per tradurre, rispettivamente, immagini dal dominio <math>X</math> al dominio <math>Y</math> e viceversa, e da due discriminatori, <math>D_X</math> e <math>D_Y</math>, per distinguere tra gli esempi generati e quelli reali per ciascun dominio. Durante l'addestramento, in aggiunta alla classica funzione obiettivo avversaria, viene minimizzata la seguente funzione di consistenza:
:<math>\mathcal{L}(G, F) = \mathbb{E}_{x \sim p_{\text{data}}(x)}\left[\|F(G(x))-x\|_{1}\right] + \mathbb{E}_{y \sim p_{\text{data}}(y)}\left[\|G(F(y))-y\|_{1}\right]</math>.
L'idea è che, date due immagini <math>x \in X</math> e <math>y \in Y</math>, applicando i due generatori in cascata <math>F(G(x))</math> e <math>G(F(y))</math> si ottengono di nuovo le rispettive immagini <math>x</math> e <math>y</math>.
Questo tipo di modello viene applicato con successo in problemi in cui non esistono dati di addestramento accoppiati, ovvero in cui non è disponibile per ogni elemento di un dominio <math>X</math> il suo corrispettivo nel dominio target <math>Y</math> (es., [[trasferimento dello stile]] da un'immagine ad un'altra).
====Altre varianti====
Sono presenti molte altre varianti del framework principale. In particolare, numerosi metodi si sono specializzati a seconda del dominio applicativo che differiscono sia dal punto di vista dell'architettura della rete che per la funzione obiettivo adottata durante l'addestramento. Lo sviluppo delle reti generative avversarie è avvenuta soprattutto nel campo della [[visione artificiale]], in cui sono state fortemente impiegate sin dalla loro prima apparizione <ref>{{Cite journal| last1 = Wang| first1 = Zhengwei| last2 = She| first2 = Qi| last3 = Ward| first3 = Tomas E.| title = Generative Adversarial Networks: A Survey and Taxonomy| journal = arXiv:1906.01529 [cs]| accessdate = 2019-07-05| date = 2019-06-04| url = http://arxiv.org/abs/1906.01529}}</ref>.
==Note==
|