Vai al contenuto
coden

Discesa del gradiente: come impara un modello

Il tasso di apprendimento, lo zigzag nelle valli strette, momentum, Adam, la discesa stocastica a mini-batch e i minimi locali — con animazioni di traiettorie reali.

24 minuti Matěj Žalmánek 2026-10-15

Serie Basi di IA Parte 11 di 52
  1. Mappa dell’intelligenza artificiale: che cos’è ciascuna cosa e come si incastra tutto
  2. Breve storia dell’intelligenza artificiale: da Turing ai modelli linguistici
  3. Dati, modello, addestramento, inferenza: i concetti di base su un unico esempio
  4. Come leggere la notazione matematica: simboli, indici, sommatorie e quantificatori
  5. Insiemi e relazioni: i mattoncini con cui si costruiscono le definizioni nell’IA
  6. Funzioni e applicazioni: perché ogni modello di IA è una funzione
  7. Logica e dimostrazioni: le regole con cui si ragiona nell’IA
  8. Grafi e alberi: la struttura su cui poggiano la ricerca e le reti neurali
  9. Algebra lineare per l’apprendimento automatico: vettori, matrici e perché l’IA soprattutto moltiplica
  10. Derivate, gradiente e regola della catena: come un modello capisce in quale direzione imparare
  11. Discesa del gradiente: come impara un modello
  12. Che cos’è la probabilità: dal lancio di un dado agli assiomi di Kolmogorov
  13. Probabilità condizionata e teorema di Bayes: come cambiare una stima quando scopri qualcosa di nuovo
  14. Variabile aleatoria e funzione di ripartizione: una sola funzione che dice tutto sulla distribuzione
  15. Funzione di densità e funzione di massa: perché una variabile continua ha probabilità zero in un punto
  16. Valore atteso, varianza e covarianza: dove si trova una distribuzione, quanto è larga e che cosa è legato a che cosa
  17. Panoramica delle distribuzioni di probabilità: Bernoulli, binomiale, Poisson, uniforme, normale ed esponenziale
  18. Legge dei grandi numeri e teorema del limite centrale: perché le medie si comportano in modo così prevedibile
  19. Statistica e stima dei parametri: massima verosimiglianza, MAP e intervalli di confidenza
  20. Teoria dell’informazione: entropia, entropia incrociata e divergenza KL — da dove vengono le funzioni di perdita
  21. Ricerca nello spazio degli stati: BFS, DFS, UCS e A* con animazioni
  22. Giochi e avversari: minimax, potatura alfa-beta e Monte Carlo tree search
  23. Soddisfacimento di vincoli: backtracking, propagazione dei vincoli e AC-3 su un sudoku e una mappa delle regioni ceche
  24. Logica e sistemi basati sulla conoscenza: concatenazione in avanti e all’indietro, risoluzione e sistemi esperti
  25. Pianificazione: STRIPS, il mondo dei blocchi, euristiche dal rilassamento e pianificazione negli agenti IA
  26. Ricerca locale e ricottura simulata: un commesso viaggiatore tra i capoluoghi di regione cechi
  27. Algoritmi genetici: popolazione, incrocio, mutazione e selezione su uno zaino per l’escursione
  28. Strategie evolutive e programmazione genetica: dalla regola di un quinto alla legge di Keplero
  29. Ottimizzazione con colonie di formiche: come una traccia di feromone trova un percorso breve
  30. Ottimizzazione a sciame di particelle: inerzia, esperienza propria ed esperienza dello sciame
  31. Neuroevoluzione: evoluzione dei pesi e della forma delle reti neurali e l’algoritmo NEAT
  32. Insiemi fuzzy e funzioni di appartenenza: come scrivere «un po’ caldo»
  33. Logica fuzzy e probabilità: perché «un po’ caldo» non significa «probabilmente caldo»
  34. Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA
  35. Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello
  36. Clustering fuzzy: l’algoritmo fuzzy c-means e i punti tra i cluster
  37. Sistemi neuro-fuzzy (ANFIS): regole fuzzy che imparano dai dati
  38. Catene di Markov: matrice di transizione, distribuzione stazionaria e PageRank
  39. Modelli di Markov nascosti: l’algoritmo di Viterbi e il casinò disonesto
  40. Reti bayesiane: perché l’erba è bagnata e che cosa significa per l’irrigatore
  41. Filtro di Kalman: come stimare da misure imprecise dove si trova un’auto e a che velocità va
  42. Tipi di apprendimento automatico: supervisionato, non supervisionato, semi-supervisionato e altri
  43. Prompt, contesto e RAG: come dare a un modello le informazioni giuste
  44. Autoencoder variazionali (VAE): immagini nuove da uno spazio latente continuo
  45. Reti generative avversarie (GAN): il falsario contro il detective
  46. Modelli di diffusione: come il rumore puro diventa un’immagine
  47. Processi decisionali di Markov: stati, azioni, ricompense ed equazioni di Bellman
  48. Q-learning e DQN: imparare il valore delle azioni, dalla tabella alla rete neurale
  49. Policy gradient e PPO: imparare direttamente la politica
  50. Come funziona un agente IA: un modello linguistico in un ciclo con strumenti
  51. Programmare con agenti IA: incarico, test e controllo
  52. Valutazione e sicurezza dei sistemi di IA: come misurare e come sorvegliare

Programma completo della serie 52 di 83 argomenti pubblicati

Cosa porterai a casa
  • Come funziona la discesa del gradiente e perché il tasso di apprendimento conta più di tutto.
  • Perché la discesa normale va a zigzag in una valle stretta e come lo risolvono momentum e Adam.
  • Perché le reti imparano a piccoli mini-batch casuali e cosa sono i minimi locali e i punti di sella.

Utile sapere prima: Derivate, gradiente e regola della catena: come un modello capisce in quale direzione imparare

Nelle parti precedenti abbiamo preparato tutto il necessario: un modello è una funzione con parametri, la funzione di perdita è un paesaggio sopra lo spazio dei parametri e il gradiente indica la direzione di salita più ripida. Ora uniamo tutto nell’algoritmo con cui impara quasi ogni rete neurale al mondo: la discesa del gradiente. La sua idea sta in una frase, e i suoi dettagli decidono se il modello imparerà in un’ora, in una settimana o mai.

1. L’idea: giù dalla collina nella nebbia

Definizione — discesa del gradiente

Per una funzione di perdita J(θ) scegliamo dei parametri iniziali θ0 e un tasso di apprendimento η > 0 e ripetiamo

θt+1 = θt − η ∇J(θt),

finché la perdita migliora in modo apprezzabile.

In parole semplici

Sei su una collina avvolta da una fitta nebbia e vuoi scendere a valle. Non vedi niente, senti solo la pendenza sotto i piedi. Fai un passo dove il terreno scende di più e poi tasti di nuovo. Il gradiente è quella pendenza, il tasso di apprendimento è la lunghezza del passo. Non c’è altro.

2. Il tasso di apprendimento: quanto è lungo il passo

La lunghezza del passo è la scelta più importante di tutto l’algoritmo. Lo mostriamo sul paesaggio più semplice, la parabola J(x) = x2, con partenza in x = 4. La derivata è 2x, quindi ogni passo fa x ← x − η · 2x = (1 − 2η)x. Dodici passi per quattro diversi tassi di apprendimento:

parametro x (adimensionale) perdita f(x) (adimensionale) η = 0,1 — lentamente
parametro x (adimensionale) perdita f(x) (adimensionale) η = 0,4 — velocemente
parametro x (adimensionale) perdita f(x) (adimensionale) η = 0,9 — oscilla
parametro x (adimensionale) perdita f(x) (adimensionale) η = 1,05 — diverge
Dodici passi sulla parabola x² con quattro tassi di apprendimento
  • η = 0,1 — ogni passo riduce la distanza dal minimo solo di un quinto. Dopo dodici passi la pallina è appena in x ≈ 0,27.
  • η = 0,4 — ogni passo la riduce di cinque volte; dopo pochi passi la pallina è praticamente sul fondo.
  • η = 0,9 — il passo è così lungo che la pallina salta dall’altra parte. Eppure si avvicina, perché salta con archi sempre più corti.
  • η = 1,05 — ogni volta salta più lontano di dov’era: invece di scendere vola verso l’esterno e dopo dodici passi è in x ≈ 12,55. L’apprendimento diverge.
Teorema — quando la discesa sulla parabola converge

Per J(x) = x2 si ha xt = (1 − 2η)t x0, quindi la discesa converge se e solo se |1 − 2η| < 1, cioè 0 < η < 1. È più rapida per η = 0,5: allora arriva al minimo in un solo passo.

In parole semplici

Un passo piccolo è sicuro, ma lento. Un passo grande è veloce, finché non va oltre. Un passo troppo grande rompe l’apprendimento: l’errore invece di scendere cresce, fino a diventare infinito.

3. Valli strette e zigzag

I paesaggi reali non sono ciotole rotonde. Di solito sono valli lunghe e strette: ripide in una direzione, quasi piatte nell’altra. Prendiamo J(x, y) = x2/2 + 10y2, venti volte più ripida nella direzione y. La discesa normale qui ha un problema: il tasso di apprendimento deve essere piccolo a causa della direzione ripida (altrimenti divergerebbe in y), e con un passo così piccolo nella direzione piatta x si muove appena. In più, nella direzione y continua a saltare da un lato all’altro:

parametro x (adimensionale) parametro y (adimensionale)
Tre metodi in una valle stretta: quanti passi fino a una perdita sotto 0,01 discesa del gradiente: 36 passimomentum: 9 passiAdam: 9 passi

Ogni metodo ha il suo tasso di apprendimento migliore, trovato per tentativi. Anche così la discesa normale ha bisogno di 36 passi e va a zigzag, mentre momentum e Adam sono sul fondo in 9. Perché, lo mostrano i due capitoli successivi.

4. Momentum: una palla con l’inerzia

Definizione — discesa con momentum

vt+1 = β vt − η ∇J(θt),   θt+1 = θt + vt+1,

dove v è la «velocità» e β ∈ [0, 1) dice quanta ne rimane per il passo successivo (tipicamente 0,9; nella nostra valle il valore migliore è 0,6).

In parole semplici

Invece di un escursionista prudente, una palla pesante. Dove il gradiente punta sempre allo stesso modo (lungo la valle), la palla prende velocità. Dove la direzione si alterna (attraverso la valle), i movimenti avanti e indietro si annullano a vicenda. Lo zigzag si smorza e la palla si lancia verso il basso.

5. Adam: un passo proprio per ogni parametro

Definizione — Adam (Kingma e Ba, 2014)

m ← β1m + (1 − β1)g,   s ← β2s + (1 − β2)g2,   θ ← θ − η m̂ / (√ŝ + ε),

dove g = ∇J(θ), tutte le operazioni sono componente per componente e m̂, ŝ sono m, s con la correzione della distorsione iniziale (divisi per 1 − βt). Valori consueti: β1 = 0,9, β2 = 0,999.

In parole semplici

Adam è un momentum che in più ricorda, per ogni parametro, quanto sono grandi di solito i suoi gradienti, e divide il passo per questa grandezza. Così nella direzione ripida fa passi più corti, in quella piatta più lunghi — come se la valle si allargasse in una ciotola rotonda. Per questo va verso la meta quasi in linea retta (nella figura la supera appena alla fine, perché si porta ancora dietro l’inerzia) e per questo oggi è la scelta predefinita per addestrare le reti neurali.

6. Discesa stocastica: imparare a mini-batch

Definizione — discesa stocastica del gradiente (SGD)

Se la perdita è una media sui dati, J(θ) = (1/n) ∑i Li(θ), la SGD sostituisce il gradiente completo con la media su un mini-batch casuale B ⊂ {1, …, n}: g = (1/|B|) ∑i ∈ B ∇Li(θ). Un passaggio su tutti i dati si chiama epoca.

In parole semplici

Calcolare il gradiente su un miliardo di esempi costa caro. Basta guardarne alcuni a caso e prenderne la media: la stima della pendenza è un po’ rumorosa, ma costa una frazione del lavoro. Al prezzo di un passo esatto ne fai centinaia approssimati.

Su una regressione lineare con 40 punti confrontiamo la discesa completa (gradiente su tutti i 40 punti) con la SGD a mini-batch di 4 punti:

0.10.010.001 passo (iterazione) perdita MSE (scala log.)
Perdita durante 60 passi (asse logaritmico) discesa completa SGD, batch da 4

Dopo 60 passi la discesa completa ha una perdita di 0,0017 e la SGD di 0,0027 — la curva della SGD è irregolare, ma quasi altrettanto bassa. Però ogni passo della SGD ha esaminato solo 4 punti invece di 40, cioè dieci volte meno lavoro. Con dati reali di milioni di esempi questa differenza è decisiva. E il rumore ha perfino un vantaggio: aiuta a uscire dalle buche poco profonde.

7. Minimi locali e punti di sella

La discesa del gradiente trova il fondo della valle in cui è partita. In una funzione convessa il fondo è uno solo, in una non convessa dipende dalla partenza. La funzione x4 − 3x2 + x della parte sulle funzioni ha due minimi:

minimo locale minimo globale parametro x (adimensionale) perdita f(x) (adimensionale)
Stesso algoritmo, altra partenza, altro fondo

La pallina che parte da x = 2 finisce nel minimo locale vicino a x ≈ 1,13 con valore ≈ −1,07. La pallina che parte da x = −2 trova il minimo globale vicino a x ≈ −1,30 con valore ≈ −3,51. Nelle alte dimensioni delle reti neurali si scopre che i cattivi minimi locali sono più rari di quanto ci si aspetterebbe — un problema più grande sono spesso i punti di sella, punti in cui il gradiente è zero, ma in una direzione il paesaggio sale e in un’altra scende. Il rumore della SGD e il momentum aiutano a scivolarne fuori.

8. Come si fa in pratica

  • Adam o SGD con momentum — le due scelte più comuni. Adam funziona bene subito; la SGD con momentum, dopo un’accurata messa a punto, è spesso un po’ migliore.
  • Pianificazione del tasso di apprendimento — all’inizio un avvio lento (warmup), poi una riduzione graduale. I passi grandi servono lontano dalla meta, quelli piccoli vicino.
  • Dimensione del mini-batch — tipicamente da 32 a migliaia di esempi; la limita la memoria della scheda grafica.
  • Epoche e arresto anticipato — i dati si percorrono più volte e l’addestramento si ferma quando smette di migliorare l’errore su dati che il modello non ha visto.
  • Normalizzazione dei dati — quando gli input hanno un intervallo simile, il paesaggio è più rotondo e la discesa più facile.

9. Riepilogo

  • La discesa del gradiente ripete θ ← θ − η∇J(θ): un passo contro il gradiente.
  • Il tasso di apprendimento è decisivo: piccolo è lento, grande oscilla, troppo grande diverge.
  • Nelle valli strette la discesa normale va a zigzag; il momentum aggiunge inerzia, Adam un passo proprio per ogni parametro.
  • La SGD calcola il gradiente su piccoli mini-batch — è rumorosa, ma ogni passo costa molte volte meno.
  • La discesa trova il fondo della valle in cui è partita; nei paesaggi non convessi dipende dalla partenza.

Con questa parte è completa la matematica che ti serve per capire l’apprendimento. I moduli successivi della serie — probabilità, apprendimento automatico e reti neurali — si basano su di essa.

La vedi diversamente? Scrivi a support@coden-app.com.

Un Agente sul tuo computer, guidato dal telefono