Gli autoencoder variazionali1, benché antecedenti alle GAN, sono modelli generativi basati su una struttura encoder-decoder con interessanti peculiarità e per questo ancora attuali e utilizzati in ambiti specifici.

L'architettura proposta prevede essenzialmente:

- un encoder che riceve un input di training o test e genera non un semplice vettore nello spazio latente, bensì una distribuzione normale multivariata descritta in termini di media e varianza presupponendo indipendenza tra le varie sue dimensioni.
In pratica se consideriamo uno spazio latente di \(d\) dimensioni,  l'encoder genererà  \(2d\) parametri (\(d\) medie e  \(d\) varianze).
Nel caso frequente di input immagine, l'encoder sarà quindi un modello CNN  con  \(2d\) uscite;

- un decoder che in fase di training/test riceve in input, un vettore campionato sulla distribuzione generata dall'encoder, per andare a generare un output  quanto più simile all'input processato dall'encoder.

Funzione di costo: Evidence Lower Bound (ELBO)

La funzione di costo per un VAE è cruciale e particolarmente delicata. L'obiettivo è analogo a quello delle GAN - stiamo ovviamente cercando di massimizzare la probabilità di ottenere output realistici, ben rappresentativi della distribuzione di input - con la differenza rilevante dell'approccio encoder-decoder con il quale cerchiamo di "dirigere" la struttura dello spazio latente introducendovi una "bidirezionalità" che non troviamo nella GAN.

Vogliamo quindi massimizzare la probabilità di immagini realistiche, associandole con punti nella distribuzione a priori dello spazio latente \(p(z)\) che abbiamo scelto  \(\mathcal N(0,I)\), cercando di farla "matchare" per quanto possibile con quella a posteriori \(q(z)\) degli encoding delle immagini reali. 

Senza addentrarci eccessivamente nei formalismi, indichiamo che questo è un problema approcciabile non in termini esatti ma in termini di estremo inferiore da massimizzare.

Il problema può essere formulato in termini di ELBO come funzione da massimizzare \(\displaystyle \Bbb E (\log p(x|z)) + \Bbb E \left( \log \frac{p(z)}{q(z)} \right)\) , che si può dimostrare equivalente a  \(\displaystyle \Bbb E (\log p(x|z)) - D_{KL} \left( q(z|x) \lVert p(z) \right)\)   , dove la prima componente è un termine di ricostruzione  e il secondo è una penalità data da una divergenza KL.

In particolare il termine di ricostruzione, associabile al requisito di fedeltà, rappresenta la distanza tra l'input all'encoder e l'output ricostruito dal decoder, difatti si esprime in termini di probabilità di dato il vettore latente z.

Nella pratica, per singola coppia di input e output, il termine di costo corrispondente può essere calcolato con una BCE  \(l(x,\hat x)=-\sum_i [x_i \log(\hat x_i)+ (1-x_i)\log(1-\hat x_i)]\) nel caso di valori binari in input(es: immagine b/n),  oppure come MSE \(l( \pmb x , \hat {\pmb x})=\frac{1}{2} \lVert \pmb x - \hat {\pmb x} \rVert ^2\)  in caso di input a valori reali. Nel complesso della distribuzione a posteriori, questo termine mirerà a distanziare i vari vettori latenti in modo da permettere ricostruzioni il più possibili non ambigue dell'input.

Il termine di divergenza invece è più associabile al requisito di varietàe mira in modo molto intuitivo a ridurre la distanza tra le 2 distribuzioni a posteriori e a priori,  cercando di "riorganizzare" lo spazio latente z verso la struttura a priori \(\mathcal N(0,I)\) , chiaramente senza sovrapposizioni che porterebbero a penalizzazioni di ricostruzione.

Comparazione tra VAE e GAN

I due modelli generativi presentano pro e contro. 

Riguardo fedeltà, qualità e definizione degli output generati, spesso caratteristica determinante, le GAN sono in genere sensibilmente migliori, operando con meno vincoli sullo spazio latente e permettendo alla rete di evolvere con una organizzazione più "indipendente" e ottimizzata.

Riguardo stabilità in fase di training, i VAE presentano meno problemi delle GAN, interessate invece da fenomeni di scomparsa del gradiente e collasso di modi,  necessitando di un equilibrio delicato tra evoluzione del discriminatore e generatore/critico - con  condizioni aggiuntive  da rispettare ( critico 1-lipschitziano ) sulle varianti WGAN e derivate.

Riguardo la invertibilità, ovviamente per le VAE è offerta in modo immediato dall'encoder che permette di ottenere il vettore latente di qualsiasi input, mentre per le GAN ciò non è possibile in modo diretto - sono necessari altri modelli da addestrare a parte.

Riguardo infine la possibilità di una stima della densità con le quali si presentano determinate caratteristiche nell'output generato, i VAE sono notevolmente avvantaggiati rispetto alle GAN.


 

_______________

 

1 Kingma, D. P., & Welling, M. (2013). Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114.  https://arxiv.org/abs/1312.6114

 

Uno degli aspetti più problematici delle GAN è la definizione e la valutazione della loro "bontà", anche a fini comparativi. Quando possiamo dire che il risultato di una rete generativa è soddisfacente? Per le reti discriminative, come ad esempio i classificatori, le metriche sono chiare con una misura oggettiva della "bontà" della rete su di un test set, in termini di capacità percentuale di discriminare correttamente un input non conosciuto.
Per le reti generative ciò non funziona  - l'informazione desumibile dalla funzione di costo in fase di addestramento non ci dice che la GAN sta generando buoni risultati, ma semplicemente che ha smesso di apprendere.

Tralasciando la metrica umana, intuitivamente più efficace ma più onerosa in termini di costo, tempo e metodologie, focalizziamoci su metriche e metodi automatici per determinare la bontà di una GAN

In primo luogo per la valutazione delle reti generative, preposte a generare output su un dominio così ampio, non è sufficiente l'utilizzo di un discriminatore - in primo luogo perchè non esiste un discriminatore ideale applicabile universalmente ma è inevitabilmente condizionato su un determinato set di dati, anche ampio, ma non completo/perfetto (con fisiologici fenomeni di overfit) - in secondo luogo perchè anche ove si ritenesse idoneo a individuare la fedeltà dell'output non sarebbe idoneo a rappresentarne correttamente la dimensione di "varietà". Le dimensioni sulle quali è auspicabile avere una valutazione la più possibile oggettiva sono difatti due:

- Fedeltà: verosimiglianza, aspetto qualitativo dell'output generato rispetto alla classe desiderata in termini di rispondenza e dettaglio;
- Varietà: capacità di rappresentare in modo estensivo la distribuzione reale della classe di rifererimento, generando output differenziati sulle varie caratteristiche proprie della classe;

E' necessario quindi gestire il trade-off tra le due dimensioni: risulterebbero parimenti inadeguate sia una GAN capace di generare output ad alta fedeltà, ma praticamente tutti uguali, sia una GAN capace di generare output altamente variati, ma di pessima fedeltà.

Comparazione di Immagini: distanza tra image embedding

Nel caso frequente di output di tipo immagine, una distanza tra immagini non può naturalmente basarsi sulla semplice differenza "fisica" tra i valori dei pixel delle 2 immagini.
C'è bisogno di estrarre e confrontare le caratteristiche di alto livello presenti nelle 2 immagini - ad esempio nel caso di comparazione di immagini di mobili, il numero delle gambe, la forma, il rapporto tra altezza e larghezza, il colore della superficie, la posizione e l'inclinazione, etc... Tutte quelle caratteristiche che possono indicarci quanto le due immagini rappresentino lo stesso soggetto.

Una modalità per estrarre queste caratteristiche dall'immagine, necessarie a calcolare questa feature distance (distanza per caratteristiche), è quella di utilizzare una grande CNN preaddestrata come classificatore di immagini affini alle classi di nostro interesse, prelevando in output un vettore intermedio prodotto dalla rete come image embedding rappresentativo delle caratteristiche dell'immagine. Frequentemente viene utilizzato il valore proveniente dall'ultimo layer di pooling della CNN, prima della rete densa della sezione finale di classificazione.

Utilizzando ad esempio il noto classificatore Inception-v31 , preaddestrato sulla banca dati Image-Net2 , possiamo  escludere la parte finale densa della rete, utilizzata per ottenere la distribuzione di probabilità sulle varie classi, e acquisire l'output 8x8x2048 in uscita dalla CNN, compattandolo attraverso un pooling 8x8 in un vettore di 2048 componenti che costituirà l'embedding dell'immagine, rappresentativo sulle varie dimensioni delle caratteristiche di alto livello.

In questo modo potremo valutare facilmente la distanza tra due immagini come la distanza (euclidea o di altro tipo) tra i corrispondenti embedding.

Comparazione di distribuzioni: Inception distance

Quando si tratta di misurare la bontà della distribuzione di immagini generate dalla GAN nel suo complesso, è necessario giungere ad una misura che contemperi sia la Fedeltà che la Varietà della intera distribuzione.

La inception distance, tra le prime misure implementate, utilizza la rete inception-v3, nella sua architettura completa di classificatore preaddestrata su ImageNet.

In primo luogo ci attendiamo che ogni immagine \(x\) sia qualitativamente fedele quindi ben classificabile dal sistema. Ciò si rileva con un sensibile picco delle probabilità in uscita dal classificatore su una o poche classi \(y\) per ciascuna immagine, con una distribuzione \(p(y|x)\) a bassa entropia.
Dall'altra parte, sul complesso delle immagini, ci attendiamo una distribuzione \(p(y)\) quanto più possibile varia delle classi  \(y\)  generate, ad alta entropia, evitando il collasso su uno o più modi.

Per cogliere entrambi gli aspetti utilizziamo la divergenza KL, o entropia relativa, che misura in modo non simmetrico la differenza tra due distribuzioni di probabilità. Nel nostro caso abbiamo, con riferimento ad una immagine  \(x\)  che   \(D_{KL}(p(y|x)\lVert p(y))=\sum_y p(y|x) \log{\frac{p(y|x)}{p(y)}}\).

La inception distance è definita come \(\operatorname{IS}(G)=e^{\Bbb E_{x\sim p_G} D_{KL}(p(y|x)\lVert p(y))}\)  ed è tanto maggiore quanto maggiore saranno le due distribuzioni, cosa che indica un buon risultato della GAN in termini di distanza tra le due entropie.

Tuttavia questa metrica ha evidenti limiti3, tra i quali:

- non tiene in alcun conto la distribuzione di immagini reali, ma solo la distribuzione di immagini generate dalla GAN;

- può essere aggirata, ad esempio da una GAN che generi una sola buona immagine per ogni classe;

- è limitata dalla classificazione proposta da Imagenet: immagini astratte, o al di fuori delle categorie proposte, o comunque generate da GAN addestrate su dataset notevolmente disgiunti da imagenet, possono risultare poco significative in relazione alla metrica proposta.

Comparazione di distribuzioni: Distanza di Fréchet e FID

La distanza di Fréchet tra due curve, quali ad esempio due distribuzioni, può essere descritta come il minimo della distanza massima che è possibile ottenere percorrendo le due curve nello stesso senso, su tutte le parametrizzazioni possibili delle due curve.
 

In modo empirico possiamo immaginarla come la lunghezza minima possibile del guinzaglio di un cane che percorre la curva A mentre l'uomo percorre la curva B,  entrambi nello stesso senso.

Applicando questa distanza alle distribuzioni normali, nel caso di distribuzioni monovariate A e B è dimostrabile che la distanza di Frechét è  \(d(A,B)=(\mu_A-\mu_B)^2+(\sigma_A-\sigma_B)^2\) , mentre per distribuzioni normali multivariate4 abbiamo la formula più generale

\(\displaystyle d(A,B)={\lVert \mu_A - \mu_B \rVert}^2 + \operatorname{Tr}(\Sigma_A+\Sigma_B-2\sqrt{\Sigma_A \Sigma_B})\)

Nel caso delle immagini, se consideriamo A e B distribuzioni di embedding di immagini ottenute dalla rete Inception-v3 preaddestrata su Imagenet, relative alle immagini reali e alle immagini generate, questa distanza viene chiamata Frechét Inception Distance (FID) , e costituisce una delle misure più utilizzate per valutare una rete GAN, cogliendo nello stesso momento sia l'aspetto relativo alla fedeltà che alla varietà dell'output. Tuttavia questa misura ha dei limiti e degli aspetti dei quali tener conto:

- la normalità delle distribuzioni delle immagini, reali e generate, è un'assunzione che consente di applicare la formula della FID ed è spesso verificata con ragionevole approssimazione su distribuzioni sufficientemente ampie. Tuttavia la rappresentazione di ogni distribuzione come normale e con solo 2 metriche di riferimento, media e matrice di covarianza, può risultare limitativa in taluni casi;
- la FID può essere utilizzata per comparazioni ma è un numero assoluto per il quale non esistono range di riferimento riguardo il grado di bontà della GAN - ovviamente più è vicina a zero, migliore è la qualità della GAN;
- l'utilizzo della rete Inception-v3 preaddestrata sul dataset Imagenet la rende utile per valutare GAN che generano classi con caratteristiche affini a quel dataset (esseri viventi, oggetti, etc.). Non è una misura per valutare GAN che generano contenuti astratti o marcatamente diversi;
- il numero di dimensioni degli embedding (2048 componenti nella versione esposta) richiede un numero di campioni per valutare le distribuzioni elevato, nell'ordine di 104-105 .  Inoltre, a parità di reti, la FID è influenzata dal numero di campioni utilizzati (più campioni fanno comportano generalmente una FID inferiore). Il numero elevato di campioni da utilizzare comporta anche un effort/tempo computazionale non banale per ricavare la FID;

Precisione e Recupero

Un approccio interessante5 alla valutazione delle GAN si basa sui concetti noti di precisione (precision) e recupero (recall) applicati alle distribuzioni delle immagini reali e generate.

La precisione, corrispondente al requisito di fedeltà, indica la frazione delle immagini generate che appaiono realistiche ed è da intendersi come la probabilità che una immagine generata ricada nel supporto della distribuzione reale.

Il recupero, corrispondente al requisito di varietà, indica la frazione della distribuzione reale coperta dal generatore e corrisponde alla probabilità che una immagine reale ricada nel supporto della distribuzione generata.

Operativamente, si ricavano gli embedding utilizzando una CNN preaddestrata, come ad esempio inception-v3 su imagenet, e si propone di approssimare il supporto delle distribuzioni reale \(\Phi_r\) e approssimata \(\Phi_g\) utilizzando lo stesso numero di campioni, costruendo su ogni campione una ipersfera di raggio pari alla distanza dal suo k-mo nearest neighbour.

Definita \(f(\phi,\Phi)=\cases{1\ \text{se} \ \exists \ \phi' \in \Phi\ \ | \ \lVert \phi - \phi' \rVert_2 \le \lVert \operatorname{NNk(\phi')-\phi'\rVert_2} \\ 0 \ \text{altrimenti}}\)   la funzione che indica se un vettore \(\phi\) ricade in un supporto approssimato \(\Phi\),  possiamo calcolare la \(\operatorname{precision}(\Phi_r,\Phi_g)=\frac{1}{|\Phi_g|}\sum_{\phi_g\in\Phi_g}f(\phi_g,\Phi_r)\)    e il    \(\operatorname{recall}(\Phi_r,\Phi_g)=\frac{1}{|\Phi_r|}\sum_{\phi_r\in\Phi_r}f(\phi_r,\Phi_g)\) , valutabili separatamente o combinabili in indici sintetici come l'F1 score.

Metriche di entanglement e distanza percettiva: Perceptual Path Length (PPL)

Una delle metriche utili a valutare la buona operatività di una GAN è la Perceptual Path Length (PPL)6 che misurare sostanzialmente la capacità del generatore di interpolare in modo "percettivamente" fluido e coerente nel suo spazio latente.

Nella pratica, supponendo di avere due immagini generate a partire dai vettori \(w_1\)\(w_2\) dello spazio latente, quello che ci aspettiamo in uno scenario ideale è che interpolando linearmente i 2 vettori, le immagini generate dai vettori intermedi che si trovano sulla direttrice tra  \(w_1\)\(w_2\) rispecchino il graduale mutamento delle caratteristiche tra le immagini agli estremi, senza introdurre nuove caratteristiche inattese nel percorso (circostanza che sarebbe indice di entanglement nello spazio latente).

Per fare ciò dobbiamo introdurre un misura della distanza tra 2 immagini in termini di percezione "umana". A tal fine sono disponibili vari modelli addestrati, tra i quali il LPIPS ("Learned Perceptual Image Patch Similarity") 7  qui utilizzato, che utilizzerà una CNN VGG16 per ricavare gli image embedding sui quali operare.

Campionando \(t\sim(0,1)\) e fissando un \(\epsilon \sim 10^{-4}\) o comunque sufficientemente piccolo, si andrà a misurare questa distanza 2 immagini molto vicine sul percorso lineare tra   \(w_1\)\(w_2\) ,  ovvero \(d_{\text{LPIPS}}(g(w_1+t(w_2-w_1)),g(w_1+(t+\epsilon)(w_2-w_1)))\).

Attraverso un numero sufficiente di campionamenti otterremo la PPL  \(\displaystyle l_W=\Bbb E \left[\frac{1}{\epsilon^2} \ d_{\text{LPIPS}}(g(w_1+t(w_2-w_1)),g(w_1+(t+\epsilon)(w_2-w_1))) \right]\), che ovviamente risulterà tanto migliore quanto più piccola8

Segnaliamo infine che nella pratica, per alcuni modelli di GAN più articolati come StyleGAN, l'interpolazione sullo spazio latente può avvenire più correttamente in modo non lineare ma sferico e/o con opportune trasformazioni.

______________________

1 Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., & Wojna, Z. (2016). Rethinking the inception architecture for computer vision. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 2818-2826). https://arxiv.org/abs/1512.00567

2 https://www.image-net.org

3 Barratt, S., & Sharma, R. (2018). A note on the inception score. arXiv preprint arXiv:1801.01973. https://arxiv.org/abs/1801.01973

4 Dowson, D. C., & Landau, B. (1982). The Fréchet distance between multivariate normal distributions. Journal of multivariate analysis, 12(3), 450-455. https://www.sciencedirect.com/science/article/pii/0047259X8290077X

5 Kynkäänniemi, T., Karras, T., Laine, S., Lehtinen, J., & Aila, T. (2019). Improved precision and recall metric for assessing generative models. Advances in Neural Information Processing Systems, 32. https://arxiv.org/abs/1904.06991

6 Karras, T., Laine, S., & Aila, T. (2019). A style-based generator architecture for generative adversarial networks. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 4401-4410). https://arxiv.org/abs/1812.04948

7 Zhang, R., Isola, P., Efros, A. A., Shechtman, E., & Wang, O. (2018). The unreasonable effectiveness of deep features as a perceptual metric. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 586-595). https://arxiv.org/abs/1801.03924

8 Borji, A. (2022). Pros and cons of GAN evaluation measures: New developments. Computer Vision and Image Understanding, 215, 103329. https://arxiv.org/abs/2103.09396