Lezione 27CNN, architetture e autoencoder
In questa pagina 3
Settimana: 11 · Fonte: slide del corso Machine Learning, Ingegneria dell'Automazione UniPD (lezione 27)
Argomenti trattati
- Ripasso: convoluzione 2D e padding (calcolo di ), softmax, cross-entropy, ImageNet e top-5 error.
- Architetture in dettaglio: AlexNet ( M parametri, data augmentation), VGG (campo recettivo di tre strati e parametri contro ), GoogLeNet (filtri , M operazioni), ResNet (connessioni residue, , parametri di addestramento), EfficientNet.
- Cosa vede una CNN (parte facoltativa).
- Apprendimento non supervisionato nel deep learning: riduzione di dimensionalità e ipotesi del manifold, PCA.
- Autoencoder: encoder, decoder, collo di bottiglia, loss di ricostruzione; autoencoder sparsi, denoising e convolutivi (inpainting).
- Anomaly detection con l'errore di ricostruzione.
- Modelli generativi: VAE (KL, riparametrizzazione, interpolazione), -VAE, cenno ai GAN.
Teoria
- Reti neurali convolutive (CNN)approfondimento: non nel programma di Telecomunicazioni. Una rete convolutiva (CNN) sostituisce gli strati densi con filtri piccoli che scorrono sull'immagine: ogni neurone vede solo una patch locale (campo recettivo) e i pesi del filtro sono condivisi in tutta l'immagine, quindi i parametri non dipendono dalla dimensione dell'immagine ($K^2C_{in}C_{out}+C_{out}$ per strato) e si conserva l'informazione spaziale. Dimensione dell'uscita: $\lfloor(W-K+2P)/S\rfloor+1$. Pooling (max 2x2, stride 2) sottocampiona e dà invarianza locale; i filtri 1x1 riducono i canali; struttura tipica CONV+ReLU, POOL, ..., FLATTEN, FC, SOFTMAX, addestrata con cross-entropy e backpropagation. Tre strati 3x3 hanno il campo recettivo di un 7x7 con meno parametri e più non linearità (VGG). Architetture: LeNet, AlexNet (ReLU, dropout, data augmentation), VGG, GoogLeNet (moduli Inception), ResNet (blocchi residui $H(x)=F(x)+x$), EfficientNet. Nel lab: CNN su Fashion-MNIST (241 546 parametri) e su CIFAR-10 (122 570).Reti neurali convolutive (CNN) →
- 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 →
Esercizi
Lezione precedente: Lezione 26 · Reti neurali convolutive Lezione successiva: Lezione 28 · Laboratorio di deep learning (reti neurali 1)