Esercizio - Autoencoder, anomaly detection e KL del VAE
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 5
Testo.
- Un autoencoder denso per vettori di attributi ha struttura (ReLU nel codice, lineare in uscita). Quanti parametri ha e quale è il rapporto di compressione? Quale loss si usa?
- Un autoencoder per anomaly detection viene addestrato su dati normali; gli errori quadratici medi di ricostruzione su campioni normali di validazione sono . Si fissi la soglia a media deviazioni standard e si classifichino tre nuovi campioni con errori .
- Un VAE con spazio latente a dimensioni produce per un ingresso e . Si calcoli il termine KL verso e il campione con rumore .
- Perché serve il trucco di riparametrizzazione e perché un autoencoder ordinario non è adatto a generare?
Teoria usata: Autoencoderapprofondimento: non nel programma di Telecomunicazioni. Un autoencoder è una rete non supervisionata che impara a ricostruire il proprio ingresso passando per un collo di bottiglia: encoder $z=e(x)$ (dimensione bassa), decoder $\hat x=d(z)$, loss $|x-d(e(x))|^2$. Con attivazioni lineari equivale alla PCA; con non linearità impara rappresentazioni latenti più ricche (ipotesi del manifold). Varianti: sparse (penalità $\ell_1$ sulle attivazioni), denoising (ingresso corrotto, bersaglio pulito), convolutivi (inpainting). Anomaly detection: si addestra su dati normali e si segnala come anomalo ciò che ha errore di ricostruzione sopra una soglia. VAE: l'encoder produce media e deviazione standard di una gaussiana, il campione si ottiene con il trucco di riparametrizzazione $z=\mu+\sigma\odot\zeta$, $\zeta\sim\mathcal N(0,I)$, e la loss è errore di ricostruzione più KL verso $\mathcal N(0,I)$, con $KL=\frac12\sum(\mu^2+\sigma^2-1-\ln\sigma^2)$; il $\beta$-VAE pesa il KL con $\beta>1$ per rappresentazioni disaccoppiate. Cenno ai GAN.Autoencoder →, Anomaly detectionUn'anomalia (outlier) è un'osservazione che si discosta tanto dalle altre da far pensare che sia generata da un meccanismo diverso. Rilevarle serve come pulizia dei dati (solo se sono errori o rumore, non per migliorare artificialmente le metriche), come obiettivo finale (frodi, guasti, cybersicurezza) e per il monitoraggio di un modello in produzione. Metodi semplici: box plot (oltre $1{,}5,\mathrm{IQR}$), carte di controllo univariate ($\mu\pm3\sigma$) e la statistica multivariata di Hotelling $T^2=(x-\bar x)^TS^{-1}(x-\bar x)$ con soglia $\chi^2_{p,1-\alpha}$, valida per dati gaussiani e unimodali. Metodi non supervisionati multivariati danno un anomaly score: l'isolation forest isola ogni punto con split casuali (le anomalie hanno cammini corti) e calcola $s(x,n)=2^{-E(h(x))/c(n)}$, con soglia scelta dalla contaminazione. Senza etichette si valuta con esperti, eventi noti o anomalie sintetiche. Approfondimento: non nel programma di Telecomunicazioni.Anomaly detection →, Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →, Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →.
1. Parametri e compressione
Strato : . Strato : . Totale parametri. Il codice ha numeri per attributi: compressione . Loss: errore quadratico di ricostruzione , mediato sul training; il bersaglio è l'ingresso stesso (ae.fit(X, X)). Un codice più piccolo comprime di più ma ricostruisce peggio; un codice grande quanto l'ingresso potrebbe imparare l'identità.
2. Soglia di anomalia
Media degli errori: .
Deviazione standard (popolazione): gli scarti dalla media sono ; i quadrati sommano , diviso dà la varianza e (con al denominatore: , una scelta che cambia poco).
Soglia .
Nuovi campioni: normale; anomalo; anomalo (molto sopra). Il campione a è un caso di bordo: dipende dalla scelta della soglia ( o un percentile). Con soli campioni la stima è poco affidabile: nella pratica si usano molti dati normali e si sceglie la soglia per percentile (per esempio il ).
3. KL e riparametrizzazione
Formula: .
- Componente (, ): .
- Componente (, ): .
. La prima componente costa perché è lontana da ; la seconda perché è lontana da .
Campione: .
La loss totale del campione è l'errore di ricostruzione più questo (eventualmente con per il -VAE, che peserebbe di più il KL e darebbe rappresentazioni più disaccoppiate a scapito della ricostruzione).
4. Concetti
Riparametrizzazione. Campionare direttamente è un'operazione casuale e il gradiente non può passarci attraverso verso e . Scrivendo con estratto indipendentemente, è una funzione derivabile di e (, ) e la backpropagation arriva all'encoder.
Perché l'autoencoder ordinario non genera. Il suo spazio latente è irregolare: codici vicini possono dare ricostruzioni molto diverse e punti scelti a caso (lontani da quelli visti) producono immagini prive di senso. Il VAE, con il termine KL, obbliga le distribuzioni latenti ad avvicinarsi a , quindi si può estrarre e passarlo al decoder per generare dati nuovi, con transizioni continue tra campioni.
Controllo
import numpy as np
err = np.array([.010,.012,.009,.015,.011,.013,.010,.014])
theta = err.mean() + 3 * err.std() # 0.0177
mu, s = np.array([.5, -1.]), np.array([2., .8])
kl = .5 * np.sum(mu**2 + s**2 - 1 - np.log(s**2)) # 1.4750
z = mu + s * np.array([.4, -1.2]) # [ 1.3 -1.96]