P
L'obiettivo: Non ci limitiamo a classificare, ma vogliamo catturare la nozione di incertezza sul dato e
∼ .
generare (simulare) nuovi dati realistici campionando da questa distribuzione: x P
Il concetto di Contesto: Negli appunti si specifica che spesso siamo interessati a generare dati condizionati
(x ∣
da un contesto c (es. una descrizione testuale come "un campo di grano..."), modellando quindi .
P c)
Approcci alla modellazione di P(x): (x) ≈ (x )
∏
Approccio Semplice: Assume indipendenza tra le componenti (pixel), modellando P P ij
i,j
(usato spesso nei VAE. 1
Approccio Sofisticato: Utilizza modelli basati sull'energia , che richiedono algoritmi di
exp(H(x))
z
approssimazione complessi.
Esistono principalmente due modi per modellare le relazioni tra i dati: (x ∣
Fully-observed models Autoregressivi): Modellano direttamente le dipendenze tra i dati osservati (
P ij
)). Esempio: gli LLM o la generazione di immagini pixel per pixel.
X ij
Latent-Variable models Variabili Latenti): Assumono che i dati osservati siano generati da variabili
x
nascoste (latenti) che esprimono causalità o correlazioni nascoste .
z
Esempio intuitivo: Nel numero "0", la variabile latente potrebbe codificare la presenza di "un'area nera
circolare al centro". Se conosciamo questa variabile latente, generare i pixel diventa più facile.
Variational Autoencoders (VAE): Struttura Probabilistica
Il VAE è un modello a variabili latenti.
Assumiamo che esista un processo generativo in due passi :
Riassunto Computer Vision 70
(z)
Si campiona una variabile latente da una distribuzione a priori (spesso una normale standard).
z P (x ∣
Si genera il dato campionando dalla distribuzione condizionata .
x P z)
θ
Matematicamente, la distribuzione marginale del dato è data dall'integrale (spesso intrattabile):
∫
(x) = (z)dz
(x ∣
P P z)P
θ
L'obiettivo dell'addestramento è trovare i parametri ottimali che massimizzano la verosimiglianza dei dati
θ
osservati.
Generazione facile, ma inferenza difficile (z ∣
Per addestrare il modello, dobbiamo calcolare la probabilità a posteriori (inferenza): dato un'immagine
P x)
(x)
, quale l'ha generata? Tuttavia, calcolare (il denominatore della formula di Bayes) richiede di risolvere
x z P
l'integrale sopra citato, che è computazionalmente intrattabile.
Gli approcci per risolvere questo problema sono:
Metodi Monte Carlo MC Approssimano l'integrale campionando molti valori di . Sebbene accurati
z
asintoticamente, richiedono moltissimi campioni e sono computazionalmente costosi per spazi ad alta
dimensionalità . (z∣x)
Inferenza Variazionale VI Poiché non possiamo calcolare la vera , decidiamo di approssimarla
P
(z∣x)
con una distribuzione più semplice e gestibile, che chiamiamo (solitamente una Gaussiana).
q λ
L'obiettivo diventa trovare i parametri che rendono questa approssimazione il più simile possibile alla
λ q
vera .
P
Per rendere simile a , ci serve un metro per misurare la loro "distanza".
q P
Si introduce la Divergenza di Kullback-Leibler KL, che misura quanto due distribuzioni differiscono tra
loro. (z∣x)∣∣P (z∣x))
Matematicamente, vogliamo minimizzare .
KL(q λ
n n
∫ ∑ ∑
(x) = (z)dz ≈ (x∣z)P (z) = (x∣z)P (z∣x)
(x∣z) ⋅
P P P P P
(z) (z)
i=1 z P i=1 z P
∼ ∼
Riassunto Computer Vision 71
(z∣x)
Tuttavia, c'è un problema: per calcolare questa divergenza dovremmo conoscere la vera , che
P
è proprio ciò che non conosciamo!
Manipolando le formule, si scopre una relazione fondamentale tra tre elementi:
log (x) = + (z∣x)∣∣P (z∣x)]
P ELBO(λ, θ) KL[q λ
Dove:
log (x)
1. È la probabilità dei dati osservati (è fissa e costante).
P
2. È l'errore di approssimazione (che vogliamo minimizzare ma non possiamo calcolare direttamente).
KL[...]
3. Evidence Lower Bound) È un limite inferiore che possiamo calcolare.
ELBO log (x)
L'intuizione chiave: Poiché la somma di e è costante ( ), massimizzare l'ELBO
ELBO KL P
equivale matematicamente a minimizzare la . Invece di cercare di minimizzare un errore
KL
incalcolabile, ci concentriamo sul massimizzare l'ELBO, che è composto da termini gestibili.
Riassunto Computer Vision 72
La formula fondamentale da massimizzare è: (z ∣
Termine 1 Regolarizzazione): La distribuzione latente approssimata deve rimanere vicina alla
q x)
λ
(z) (0,
prior (solitamente ).
P N I)
Termine 2 Likelihood attesa): Il "decoder" deve essere bravo a ricostruire dato (misura la qualità della
x z
ricostruzione).
Riassunto Computer Vision 73
L'Autoencoder
Il framework matematico viene tradotto in un'architettura a rete neurale composta da due parti : 2
(z ∣
Encoder ( ): Una rete neurale che prende in input e predice i parametri (media e varianza )
q x) x μ σ
λ
della distribuzione latente .
z
(x ∣
Decoder ( ): Una rete neurale che prende un campione e cerca di ricostruire l'input (o i suoi
p z) z x
θ
parametri probabilistici). ∼ (z ∣
C'è un problema tecnico nell'architettura sopra descritta: il passaggio di campionamento z q x)
λ
è un processo stocastico non differenziabile, il che impedisce alla backpropagation di fluire attraverso
la rete per aggiornare i parametri dell'encoder .
La soluzione è il Reparametrization Trick Trucco della riparametrizzazione).
Invece di campionare direttamente , esprimiamo come una trasformazione deterministica di una variabile
z z
casuale ausiliaria ϵ indipendente dai parametri:
= + ⋅ ∼ (0,
z μ σ ϵ con ϵ N I)
Riassunto Computer Vision 74
In questo modo, la stocasticità è spostata su , e diventa una funzione differenziabile rispetto a e ,
ϵ z μ σ
permettendo l'ottimizzazione della rete end-to-end.
∂y ∂y ∂z
= ⋅
∂w ∂z ∂w
1 1
A questo punto quindi dobbiamo costruire due architetture: una encoder che deve calcolare e , quindi due
μ σ
vettori su cui dobbiamo calcolare il sampling, otteniamo e questa diventa lʼinput per il decoder su cui
z z
andiamo a calcolare delle probabilità che non sono altro che le loss.
L'obiettivo finale è massimizzare l'ELBO, che diventa la nostra funzione di costo Loss) da minimizzare
(cambiando segno).
La formula esplicita per la KL tra due gaussiane è, assumendo prior standard e convarianza diagonale:
Riassunto Computer Vision 75
Si va scegliere la forma chiusa così da evitare di calcolare integrali.
cv_notebooks/11.Generative_models.ipynb at master · gmanco/cv_notebooks
Contribute to gmanco/cv_notebooks development by creating an account on GitHub.
https://github.com/gmanco/cv_notebooks/blob/master/11.Generative_models.ipynb ^
L'approccio tradizionale per generare dati è la Stima di Massima Verosimiglianza ML, che cerca i parametri θ
per massimizzare la probabilità dei dati osservati.
L'analogia dell'elastico: Se il modello è sottospecificato (es. usiamo una sola Gaussiana per descrivere dati
bimodali), la ML cerca di "coprire" tutto lo spazio dei dati per non lasciare buchi.
Riassunto Computer Vision 76
Il problema matematico: Minimizzare la likelihood equivale a minimizzare la Kullback-Leibler KL
(x) (x)
Divergence. Quando la densità reale è alta ma quella del modello è bassa, la penalità è
P P
r θ
enorme.
Risultato visivo: Il modello, pur di non sbagliare assegnando probabilità zero a dati reali, assegna probabilità
anche a zone intermedie dove non c'è nulla. Questo produce immagini sfocate (blurry), medie di tutto ciò
che il modello ha visto, o vere e proprie "allucinazioni".
Generative Adversarial Networks (GAN)
Riassunto Computer Vision 77
Per ottenere immagini nitide, passiamo al framework GAN, basato sulla Teoria dei Giochi.
L'analogia "Banda degli Onesti vs Tabaccaio": Il funzionamento si basa su due entità contrapposte:
Generatore G, la "Banda"): Cerca di stampare "soldi falsi" (immagini sintetiche) partendo da un vettore
random z.
Discriminatore D, il "Tabaccaio"): Deve distinguere se ciò che riceve è vero (dal dataset) o falso
(generato da G.
Il Feedback: Il discriminatore fornisce un segnale fondamentale al generatore (tramite i gradienti della
backpropagation), indicando "come" migliorare per ingannarlo Note utente).
Perché la GAN genera immagini nitide? KL vs JSD
∗
Se il discriminatore è ottimale ( ), la loss del generatore si trasforma. Invece di minimizzare la KL (come nella
D
ML, la GAN minimizza la Jensen-Shannon Divergence JSD.
Differenza chiave: Mentre la KL tende a "coprire" tutte le modalità (creando sfocature), la JSD permette al
modello di essere unimodale. Il modello si concentra su un unico "centro di massa" realistico e nitido,
ignorando le regioni di incertezza.
Addestramento e Instabilità
L'addestramento è un processo iterativo e delicato Algorithm 1
Si addestra D per passi a distinguere vero/falso.
k
Si addestra G per un passo cercando di massimizzare l'errore di D.
Riassunto Computer Vision 78
Schema Algoritmo della GAN. Inizializzo i parametri random, campiona un certo numero di esempi e allo stesso tempo prende
un sottoinsieme di esempi dal campione reale, dopodiché utilizza i due esempi per addestrare , massimizzando il gradiente
ϕ
discendente. Quando il discriminatore è pronto, addestriamo il generatore, campioniamo dal generatore, li passiamo al
descriminatore e addestriamo sul feedback. Questa cosa viene iterata.
cv_notebooks/12.GAN.ipynb at master · gmanco/cv_notebooks
Contribute to gmanco/cv_notebooks development by creating an account on GitHub.
https://github.com/gmanco/cv_notebooks/blob/master/12.GAN.ipynb
Problemi noti:
Mode Collapse: Il generatore produce sempre la stessa immagine.
Instabilità: Essendo un punto di sella (minimax game), è difficile convergere.
Soluzione "Progressive Growing": Per generare immagini grandi e complesse, si parte da risoluzioni basse
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Computer Vision (Giuseppe Manco): Guida completa (Elaborazione Immagini, CNN, Feature Extraction), parte 2
-
Computer Vision: Guida completa (Elaborazione Immagini, CNN, Feature Extraction), parte 1
-
Computer
-
Teoria Computer grafica
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Per termini, condizioni e privacy, visita la relativa pagina.