Lezione 28Laboratorio di deep learning (reti neurali 1)
In questa pagina 3
Settimana: 11 · Fonte: notebook LAB7_NN1 del repository dei laboratori del corso Machine Learning, Ingegneria dell'Automazione UniPD
Argomenti trattati
- Laboratorio senza slide, dal notebook LAB7_NN1: MNIST con Keras.
- Confronto dei framework (Keras, TensorFlow, PyTorch), esplorazione del dataset e normalizzazione dei pixel.
- Rete feed-forward con
Sequential: stratiFlatten,Dense,Dropout;compile(loss, ottimizzatore, metriche),fitconvalidation_split,evaluate,predict; curve di training e validazione; classi più confuse e matrice di confusione. - Salvataggio di pesi e modelli, callback
ModelCheckpointeEarlyStopping, TensorBoard. - API funzionale (modello multi-output per il rischio di credito) e sottoclasse di
tf.keras.Model. - Regolarizzazione: , , dropout, batch normalization, early stopping a confronto.
Teoria
- Reti neurali - neuroni e funzioni di attivazioneUn neurone calcola $\hat y=g(w_0+w^\top x)$: somma pesata degli ingressi più bias, poi una funzione di attivazione $g$ non lineare (Perceptron a soglia, sigmoide, tanh, ReLU e varianti). Senza non linearità ogni rete è equivalente a un solo modello lineare. Una rete feed-forward impila strati di neuroni: $a^{(k)}=g(W^{(k)}a^{(k-1)}+b^{(k)})$; con uno strato nascosto è già un approssimatore universale, ma più strati rappresentano funzioni complesse con molti meno neuroni e imparano feature gerarchiche (bordi, parti, oggetti). Lo strato di uscita e la loss si scelgono dal compito: lineare+MSE (regressione), sigmoide+cross-entropy binaria, softmax+cross-entropy (multiclasse). Il numero di parametri di uno strato denso è $n_{in}n_{out}+n_{out}$. Nel lab (Keras, MNIST) una rete 784-512-10 ha 407 050 parametri e supera il 98% di accuratezza.Reti neurali - neuroni e funzioni di attivazione →
- Regolarizzazione delle reti neuraliUna rete con tanti parametri tende a memorizzare il training set (overfitting): la loss di training scende ma quella di validazione risale. Le tecniche di regolarizzazione limitano la capacità effettiva: penalità sui pesi ($\ell_2$: $J+\lambda|W|_2^2$, il passo diventa $W\leftarrow(1-2\eta\lambda)W-\eta\nabla J$; $\ell_1$: $J+\lambda|W|_1$, porta pesi esattamente a zero), early stopping (si ferma l'addestramento quando la validation loss smette di scendere, con pazienza e ripristino dei pesi migliori), dropout (in training si azzera a caso una frazione $p$ delle attivazioni e si riscala per $1/(1-p)$; in inferenza è spento), batch normalization (effetto collaterale) e data augmentation. Nel lab MNIST con $\lambda=0{,}01$ la penalità $\ell_1$ è troppo forte (accuratezza di test 0,844 contro 0,9815 senza regolarizzazione), mentre dropout e early stopping non peggiorano e tengono la validation loss più bassa.Regolarizzazione delle reti neurali →
Esercizi
- Esercizio - Rete feed-forward su MNIST con Keras
- Esercizio - Confronto di tecniche di regolarizzazione su MNIST
Lezione precedente: Lezione 27 · CNN, architetture e autoencoder Lezione successiva: Lezione 29 · Fairness e simulazione della parte pratica