Esercizio - Architetture di reti neurali e proprietà (esempio d'esame 1)
Teoria: Deep learning - reti profonde, CNN e addestramento con KerasQuadro del deep learning nel corso di IA. Un neurone calcola la somma pesata degli ingressi e applica una funzione di attivazione non lineare (soglia, sigmoide, ReLU, tanh); un perceptron a soglia realizza AND, OR e NOT ma non lo XOR (non linearmente separabile), che richiede 3 neuroni su due livelli; due livelli bastano per approssimare ogni funzione continua. Uscite: lineare per la regressione, sigmoide per due classi, softmax per più classi, con perdita di entropia incrociata. Addestramento con SGD a minibatch e backpropagation (passaggio in avanti e all'indietro, gradienti che si moltiplicano: svaniscono con sigmoide e tanh). CNN: kernel appreso, stride, padding, uscita (n+2p-k)/s+1, pooling; tensori; transfer learning e dropout. RNN con stato nascosto z_t=f(z_{t-1},x_t) e BPTT, LSTM con porte, autoencoder, VAE, GAN, modelli linguistici e trasformatori con attenzione. Pipeline Keras del laboratorio 11: Sequential, Conv2D, MaxPooling2D, Flatten, Dense, compile (Adam, perdita), fit, evaluate, predict, save.Deep learning - reti profonde, CNN e addestramento con Keras → (sezioni 1, 4, 5, 6), 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 → e 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) →. Domanda 4 del quiz da 9 CFU e domanda 3 di quello da 6 CFU: stesse sei architetture e stesse sei proprietà, in ordine diverso (domanda di associazione).
Testo. Associare ad ognuna delle seguenti architetture di reti neurali la corretta proprietà. Architetture: Recurrent Neural Network (RNN), Multilayer Feedforward Network, Convolutional Neural Network (CNN), Variational Autoencoder (VAE), Generative Adversarial Network (GAN), Autoencoder (AE). Menu a tendina, sei proprietà:
- Utilizza un pattern di pesi, chiamato "kernel", applicato su regioni multiple del tensore di input.
- Contiene uno o più "hidden" layers attraverso cui l'informazione passa da input ad output senza alcun ciclo.
- Mantiene al suo interno (latent space) rappresentazioni dell'input nella forma di distribuzioni di probabilità.
- È in grado di mantenere internamente una "memoria" del suo stato interno.
- Un esempio di unsupervised network che nella sua forma più semplice include un "embedding" di tipo lineare.
- Include due blocchi principali, un "generator" ed un "discriminator".
Soluzione
| Architettura | Proprietà | Perché |
|---|---|---|
| CNN | 1 | il kernel (pesi condivisi) scorre sull'ingresso e si applica su regioni diverse del tensore |
| Multilayer feedforward | 2 | grafo diretto aciclico: i collegamenti vanno in una sola direzione, senza cicli |
| VAE | 3 | codifica in una distribuzione nello spazio latente, non in un punto |
| RNN | 4 | ha cicli con ritardo e uno stato interno , cioè una memoria |
| Autoencoder | 5 | non supervisionato (l'obiettivo è ricostruire ); con encoder e decoder lineari è equivalente alla PCA |
| GAN | 6 | il generatore produce campioni falsi, il discriminatore li distingue dai veri |
Perché le associazioni sbagliate non vanno
- VAE contro AE (3 e 5). Entrambi hanno encoder, decoder e spazio latente, ma solo il VAE rappresenta l'ingresso come distribuzione, e solo lui permette di generare dati nuovi campionando in modo casuale lo spazio latente. L'AE deterministico mappa un punto in un punto. La proprietà 5 ("embedding lineare nella forma più semplice") è quella dell'AE.
- RNN contro feedforward (2 e 4). Anche la RNN ha livelli nascosti, ma con cicli; la 2 specifica "senza alcun ciclo".
- GAN e VAE: sono entrambi modelli generativi, ma solo la GAN ha due reti avversarie; il VAE ha un solo blocco encoder-decoder.
- CNN e feedforward: anche la CNN è feedforward, ma la proprietà specifica 1 (kernel su regioni multiple) è sua; la 2 descrive la rete generica.
Versione ripasso
Teoria: Deep learning - reti profonde, CNN e addestramento con KerasQuadro del deep learning nel corso di IA. Un neurone calcola la somma pesata degli ingressi e applica una funzione di attivazione non lineare (soglia, sigmoide, ReLU, tanh); un perceptron a soglia realizza AND, OR e NOT ma non lo XOR (non linearmente separabile), che richiede 3 neuroni su due livelli; due livelli bastano per approssimare ogni funzione continua. Uscite: lineare per la regressione, sigmoide per due classi, softmax per più classi, con perdita di entropia incrociata. Addestramento con SGD a minibatch e backpropagation (passaggio in avanti e all'indietro, gradienti che si moltiplicano: svaniscono con sigmoide e tanh). CNN: kernel appreso, stride, padding, uscita (n+2p-k)/s+1, pooling; tensori; transfer learning e dropout. RNN con stato nascosto z_t=f(z_{t-1},x_t) e BPTT, LSTM con porte, autoencoder, VAE, GAN, modelli linguistici e trasformatori con attenzione. Pipeline Keras del laboratorio 11: Sequential, Conv2D, MaxPooling2D, Flatten, Dense, compile (Adam, perdita), fit, evaluate, predict, save.Deep learning - reti profonde, CNN e addestramento con Keras →, 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 →.
- CNN: kernel applicato su regioni multiple del tensore.
- Feedforward: livelli nascosti, grafo senza cicli.
- VAE: latent space come distribuzioni , genera dati nuovi.
- RNN: cicli, stato interno , memoria.
- Autoencoder: non supervisionato, embedding lineare nella forma più semplice (come la PCA).
- GAN: generator e discriminator.
Errori tipici: scambiare VAE e AE (la distribuzione è del VAE); dare "senza cicli" alla RNN.