Legge IV · Loss, gradiente e ottimizzatori
Esercizi di ottimizzazione e gradiente
16 esercizi su loss, gradiente e ottimizzatori con soluzioni passo passo, calcoli guidati e strumenti pratici per capire AI e machine learning.
Esercizio 1
Esegui un passo SGD con w=1, gradiente 0.25 e lr=0.1.
Mostra la soluzione passo passo
- Aggiornamento: Δw=−ηg=−0.025.
- w_new=1−0.025.
- Risultato: 0.975.
Esercizio 2
Calcola MSE e MAE per errori 1, 1, 5.
Mostra la soluzione passo passo
- MSE=(1+1+25)/3=9.
- MAE=(1+1+5)/3≈2.33.
- Il MSE penalizza più fortemente l’errore 5.
Esercizio 3
Calcola output di Conv2d con W=32, K=3, P=1, S=1.
Mostra la soluzione passo passo
- Campo effettivo: 3.
- W_out=floor((32+2−(3−1)−1)/1)+1=32.
- Risultato: 32.
Esercizio 4
Calcola i parametri di Conv2d 3→16 con kernel 3×3 e bias.
Mostra la soluzione passo passo
- Pesi: 3·3·3·16=432.
- Bias: 16.
- Totale: 448.
Esercizio 5
Perché gradient clipping non cambia la direzione del gradiente?
Mostra la soluzione passo passo
- Calcola la norma totale.
- Se supera la soglia, scala tutti i componenti per lo stesso fattore.
- La norma si riduce ma la direzione resta invariata.
Esercizio 6
Perché Adam richiede più memoria di SGD con momentum?
Mostra la soluzione passo passo
- Momentum conserva una media del gradiente.
- Adam conserva primo e secondo momento per ogni peso.
- Il costo aggiuntivo è approssimativamente un vettore di stato in più per parametro.
Esercizio 7
Qual è il batch effettivo con 8 esempi, 2 dispositivi e accumulo 4?
Mostra la soluzione passo passo
- Batch per passo: 8×2=16.
- Accumulo: 16×4=64.
- Batch effettivo: 64.
Esercizio 8
Perché la quantizzazione post-training richiede validazione?
Mostra la soluzione passo passo
- Riduce precisione e memoria senza riaddestramento.
- Arrotondamenti e scale possono alterare alcuni output.
- Sul task reale si misura il compromesso fra efficienza e accuratezza.
Esercizio 9
Esegui tre passi SGD su f(x)=(x−2)² con x₀=6 e η=0.25.
Mostra la soluzione passo passo
- Il gradiente è 2(x−2), quindi x_new=x−0.5(x−2)=0.5x+1.
- x₁=4, x₂=3, x₃=2.5.
- La distanza dal minimo si dimezza a ogni passo.
Esercizio 10
Perché SGD diverge su f(x)=(x−3)² con learning rate 1.1?
Mostra la soluzione passo passo
- Il gradiente è 2(x−3), quindi x_new=x−2.2(x−3).
- Lo scarto dal minimo viene moltiplicato per −1.2.
- Il valore assoluto cresce del 20% a ogni iterazione e il segno oscilla.
Esercizio 11
Calcola RMSE dagli errori 1, 1, 5.
Mostra la soluzione passo passo
- MSE=(1+1+25)/3=9.
- RMSE=√9=3.
- La metrica torna nell’unità del target.
Esercizio 12
Confronta Huber e MSE per un residuo 10 con δ=1.
Mostra la soluzione passo passo
- MSE per quel residuo è 10²=100.
- Huber è δ(|r|−δ/2)=1·(10−0.5)=9.5.
- Huber cresce linearmente oltre δ e penalizza meno l’outlier.
Esercizio 13
Quanti bit servono idealmente per 1 milione di pesi FP32, BF16 e INT8?
Mostra la soluzione passo passo
- FP32 usa 32 bit, BF16 16 e INT8 8 per peso.
- I valori sono 32, 16 e 8 milioni di bit.
- Divisi per 8: 4 MB, 2 MB e 1 MB in unità decimali, esclusi metadati.
Esercizio 14
Perché il warmup può stabilizzare l’inizio del training?
Mostra la soluzione passo passo
- I primi gradienti possono essere grandi o poco rappresentativi.
- Il learning rate cresce gradualmente invece di partire subito al massimo.
- Riduce aggiornamenti bruschi, ma durata e valore massimo richiedono validazione.
Esercizio 15
Che differenza c’è fra L2 e weight decay disaccoppiato?
Mostra la soluzione passo passo
- In L2 la penalità entra nella loss e nel gradiente.
- Negli ottimizzatori adattivi quel termine viene a sua volta normalizzato.
- AdamW applica il decadimento separatamente dall’adattamento del gradiente.
Esercizio 16
Perché ridurre batch size può richiedere di cambiare learning rate?
Mostra la soluzione passo passo
- Batch più piccoli producono stime del gradiente più rumorose.
- Lo stesso passo può avere una dinamica diversa.
- Non esiste una regola universale: lo scaling va verificato con scheduler e validation.