Esercizio - Dimensioni dei tensori di una CNN con minibatch (esempio d'esame 2)
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 → (sezione 4, convoluzione e tensori) 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) →. Esercizio collegato: Esercizio - CNN su CIFAR-10 con Keras (laboratorio 11). Domanda 6 del quiz da 9 CFU e domanda 3 di quello da 6 CFU: stesso testo, opzioni in ordine diverso.
Testo. Una CNN è addestrata su immagini a colori RGB di pixel, con minibatch di 24 immagini. Al primo livello si applicano 16 kernel di dimensione con stride e padding, verticale e orizzontale, di 1 pixel. Qual è la dimensione dei tensori di ingresso e di uscita? Menu (per ciascuno): ; ; ; ; ; ; ; ; ; Nessuna delle opzioni.
Soluzione
Le opzioni scrivono le dimensioni come altezza larghezza canali immagini del minibatch. (Keras usa un altro ordine, batch per primo: ; il numero di valori è lo stesso.)
Ingresso: . Ogni immagine ha pixel e canali (rosso, verde, blu); il minibatch ne contiene .
Uscita: .
- Lato spaziale. Con ingresso , kernel , padding , stride : . Il padding di 1 con kernel e stride 1 conserva la dimensione ("same").
- Profondità. Ogni kernel copre tutti i 3 canali e produce una mappa di caratteristiche . Con 16 kernel si hanno 16 mappe: la profondità diventa , qualunque fosse quella di ingresso.
- Minibatch. Il livello elabora ogni immagine in modo indipendente: restano campioni.
Parametri del livello: (27 pesi più un bias per kernel), indipendenti dalla dimensione dell'immagine e dal minibatch. Il tensore di uscita ha valori, circa MB in virgola mobile a 32 bit.
Perché le altre opzioni sono sbagliate
- : sono le dimensioni di CIFAR-10, non di queste immagini; con padding e stride dati non c'è riduzione.
- o senza il 24: dimenticano il minibatch.
- al posto di (per esempio ): confondono il numero di kernel con la dimensione del minibatch. Il 16 è la profondità dell'uscita, il 24 il numero di immagini.
- : non ha canali.
- come ingresso: i 16 sono i kernel, non i canali dell'ingresso, che sono 3.
- Nessuna delle opzioni: non vale, perché ci sono le risposte giuste.
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 →, 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) →.
- Uscita spaziale: (padding 1, stride 1: "same").
- Profondità di uscita = numero di kernel (16); ogni kernel copre i 3 canali. Minibatch invariato (24).
- Ingresso ; uscita . Parametri: .
Errori tipici: confondere i 16 kernel con il minibatch; dimenticare il minibatch; usare .