Discesa del gradiente (gradient descent): cos’è e come funziona
Cos'è la discesa del gradiente, il metodo con cui i modelli di AI imparano a ridurre gli errori. Come funziona, i tipi, le insidie e gli ottimizzatori.

Dietro ogni modello di intelligenza artificiale che riconosce un volto, traduce una frase o ti suggerisce il prossimo film si nasconde una domanda semplice: come fa una macchina a migliorare da sola? La risposta, nella grande maggioranza dei casi, ha un nome preciso ed è la discesa del gradiente.
Non è un dettaglio tecnico riservato agli addetti ai lavori. È il motore che permette a un modello di correggere i propri errori e diventare via via più preciso.
In questa guida completa vedrai cos’è la discesa del gradiente, l’intuizione che la rende comprensibile anche senza formule, come funziona passo dopo passo, quali varianti esistono e quali insidie nasconde. Alla fine avrai un quadro chiaro di ciò che accade davvero ogni volta che un modello impara.
Cos’è la discesa del gradiente
La discesa del gradiente è un metodo di ottimizzazione che serve a trovare i valori migliori per i parametri di un modello, cioè quei numeri interni che ne determinano il comportamento. In pratica è la procedura con cui un algoritmo riduce, passo dopo passo, la distanza tra le sue previsioni e la realtà.
Immagina di trovarti su un fianco di una montagna avvolto dalla nebbia, con l’obiettivo di raggiungere il punto più basso della valle. Non vedi il fondo, ma puoi sentire con i piedi in che direzione il terreno scende. Fai un passo verso la discesa più ripida, poi ti fermi, senti di nuovo la pendenza e fai un altro passo.
Ripetendo questo gesto molte volte arriverai in fondo, anche senza avere una mappa. La discesa del gradiente funziona esattamente così, con la differenza che al posto della montagna c’è l’errore del modello e al posto dei tuoi passi ci sono piccoli aggiustamenti dei parametri.
È un’idea potente proprio perché è semplice. Non serve conoscere in anticipo la soluzione perfetta, basta sapere in quale direzione muoversi per stare un po’ meglio di prima.
Il legame con l’apprendimento automatico
Quando un modello viene addestrato, all’inizio i suoi parametri hanno valori casuali e le sue previsioni sono pessime. L’obiettivo dell’addestramento è modificare quei parametri finché le previsioni non diventano accurate.
La discesa del gradiente è lo strumento che rende possibile questa trasformazione. È il ponte tra un modello che sbaglia quasi sempre e uno che, dopo molte iterazioni, sbaglia molto raramente. Per questo la ritrovi sotto il cofano tanto degli algoritmi più semplici quanto delle reti neurali più complesse.
Come funziona la discesa del gradiente
Per capire il meccanismo nel dettaglio dobbiamo introdurre tre ingredienti: la funzione di costo, il gradiente e il tasso di apprendimento. Sono i tre elementi che, combinati, fanno funzionare tutto.
Vediamoli uno alla volta, senza fretta.
La funzione di costo: l’errore da misurare
Prima di poter ridurre un errore, bisogna saperlo misurare. La funzione di costo, chiamata anche funzione di perdita, è proprio questo: una formula che assegna un numero all’entità dello sbaglio del modello. Più il numero è alto, peggiori sono le previsioni.
Puoi immaginarla come il pannello che ti dice quanto sei distante dalla meta. Un valore grande significa che il modello è molto lontano dal comportamento desiderato, un valore vicino a zero significa che ci è quasi arrivato.
Tutto il processo di apprendimento consiste nel rendere questo numero il più piccolo possibile. La funzione di costo è quindi la montagna della nostra metafora, e il fondo della valle è il punto in cui l’errore è minimo.
Il gradiente: la direzione della massima pendenza
Qui arriva il cuore del metodo. Il gradiente è un’informazione matematica che indica in quale direzione la funzione di costo cresce più rapidamente e con quale intensità.
Se il gradiente ti dice dove l’errore aumenta di più, per diminuirlo ti basta muoverti nella direzione opposta. Ecco perché si parla di discesa: l’algoritmo calcola il gradiente e poi fa un passo nel verso contrario, quello che porta verso il basso.
È come sentire con i piedi la pendenza del terreno. Il gradiente è la sensazione di quella pendenza, tradotta in numeri che l’algoritmo può usare per decidere dove andare.
Ogni parametro del modello ha la sua componente nel gradiente, quindi a ogni passo tutti i parametri vengono aggiornati insieme, ciascuno un po’ di più o un po’ di meno a seconda di quanto contribuisce all’errore complessivo.
Il tasso di apprendimento: quanto grande fare ogni passo
Sapere in che direzione muoversi non basta, bisogna anche decidere quanto essere audaci a ogni passo. Questo compito spetta al tasso di apprendimento, in inglese learning rate, uno dei parametri più importanti di tutto l’addestramento.
Un tasso di apprendimento grande fa compiere passi lunghi, e quindi avvicina in fretta alla soluzione, ma rischia di far scavalcare il fondo della valle e di far rimbalzare l’algoritmo avanti e indietro senza mai stabilizzarsi.
Un tasso piccolo, al contrario, rende ogni passo prudente e preciso, ma può allungare enormemente i tempi, come scendere una montagna a passetti minuscoli.
Trovare il giusto equilibrio è un’arte più che una scienza esatta, e gran parte del lavoro di chi addestra i modelli consiste proprio nel calibrare bene questo valore. Sbagliarlo è una delle cause più frequenti di un addestramento che non converge.
L’iterazione: ripetere finché serve
Messi insieme i tre ingredienti, il ciclo è chiaro. L’algoritmo misura l’errore con la funzione di costo, calcola il gradiente per capire dove l’errore cresce, si muove nella direzione opposta di una quantità stabilita dal tasso di apprendimento e poi ricomincia.
Ogni giro di questo ciclo si chiama iterazione, e un addestramento può richiederne migliaia o milioni. A ogni iterazione l’errore, se tutto va bene, cala un pochino.
Il processo si ferma quando l’errore smette di diminuire in modo significativo, segno che siamo arrivati vicino al fondo della valle. A quel punto i parametri del modello sono considerati buoni e l’addestramento è concluso.
I tipi di discesa del gradiente
Fin qui abbiamo parlato di un unico metodo, ma nella pratica esistono tre varianti principali, che si distinguono per quanti dati usano a ogni passo. La scelta tra loro influisce sulla velocità e sulla stabilità dell’addestramento.
Discesa del gradiente batch
Nella versione batch, l’algoritmo calcola il gradiente usando l’intero insieme di dati di addestramento prima di compiere ogni singolo passo. È il metodo più preciso, perché ogni passo tiene conto di tutte le informazioni disponibili.
Il rovescio della medaglia è la lentezza. Quando i dati sono milioni, calcolare il gradiente su tutto il dataset a ogni passo diventa pesantissimo, e l’addestramento può richiedere tempi lunghi.
Discesa del gradiente stocastica
La versione stocastica, spesso abbreviata in SGD, va all’estremo opposto. Aggiorna i parametri dopo aver esaminato un solo esempio alla volta, scelto a caso.
Questo la rende molto più veloce e capace di gestire enormi quantità di dati. In compenso il percorso verso il minimo diventa più irregolare, quasi a zig-zag, perché ogni singolo esempio spinge in una direzione leggermente diversa.
Curiosamente, questa irregolarità a volte è un vantaggio, perché aiuta l’algoritmo a scavalcare piccole buche in cui un metodo più ordinato resterebbe intrappolato.
Discesa del gradiente mini-batch
Nel mezzo si colloca la versione mini-batch, che è anche la più usata nella pratica. Invece di un solo esempio o dell’intero dataset, calcola il gradiente su piccoli gruppi di dati, per esempio qualche decina o centinaio di esempi per volta.
È un compromesso intelligente: mantiene buona parte della velocità della versione stocastica e recupera parte della stabilità di quella batch. Non a caso è la scelta predefinita per addestrare la maggior parte delle reti neurali moderne.
Iterazioni, epoche e convergenza: le parole da conoscere
Quando si parla di addestramento tornano spesso tre termini che vale la pena chiarire, perché descrivono il ritmo con cui la discesa del gradiente procede.
Un’iterazione, come hai visto, è un singolo aggiornamento dei parametri. Un’epoca, invece, è un passaggio completo attraverso tutti i dati di addestramento. Se il tuo insieme di dati contiene diecimila esempi e li elabori in mini-batch da cento, servono cento iterazioni per completare una sola epoca.
Gli addestramenti seri richiedono molte epoche, perché una sola passata sui dati raramente basta a far scendere l’errore quanto serve. A ogni epoca il modello rivede gli stessi esempi e affina ulteriormente i suoi parametri.
La parola convergenza indica infine il momento in cui l’errore si stabilizza e ulteriori iterazioni non portano miglioramenti apprezzabili. Un modello che converge bene ha trovato una buona soluzione, mentre uno che non converge continua a oscillare o non migliora, segno che qualcosa nell’impostazione va rivisto.
Le insidie della discesa del gradiente
Il metodo è elegante, ma non è privo di trappole. Conoscerle ti aiuta a capire perché addestrare un modello non sia sempre un percorso lineare.
La prima insidia sono i minimi locali. La funzione di costo di un modello complesso non è una valle liscia con un unico fondo, ma un paesaggio pieno di avvallamenti. L’algoritmo può fermarsi in una piccola conca credendo di aver raggiunto il punto più basso, quando in realtà esiste una valle ancora più profonda poco distante.
Ci sono poi i punti di sella, zone quasi piatte in cui la pendenza è talmente lieve che l’algoritmo procede lentissimo, come se camminasse su un altopiano senza sapere da che parte scendere. In questi tratti l’addestramento sembra bloccato pur non essendo davvero finito.
Un’altra difficoltà nasce dal tasso di apprendimento mal calibrato, di cui abbiamo già parlato. Troppo alto e il modello non converge mai, troppo basso e l’addestramento diventa interminabile.
Nelle reti molto profonde si aggiunge infine il problema dei gradienti che svaniscono o esplodono. Man mano che l’informazione attraversa molti strati, il gradiente può diventare così piccolo da fermare l’apprendimento, oppure così grande da mandarlo fuori controllo. È una delle sfide che hanno reso storicamente difficile addestrare le reti con tanti livelli.
Gli ottimizzatori moderni: oltre la discesa classica
Per aggirare queste insidie, negli anni sono nate versioni più sofisticate della discesa del gradiente, chiamate ottimizzatori. Non stravolgono l’idea di base, ma la rendono più furba e robusta.
Una delle intuizioni più utili è quella del momento, in inglese momentum. L’idea è dare all’algoritmo una sorta di inerzia, come una pallina che rotola giù per la valle: accumula slancio nelle direzioni giuste e supera con più facilità le piccole buche e i tratti piatti.
Altri ottimizzatori molto diffusi regolano automaticamente il tasso di apprendimento durante l’addestramento, aumentandolo o riducendolo a seconda della situazione. In questo modo tolgono a chi progetta il modello parte del difficile lavoro di calibrazione manuale.
Non serve conoscere i dettagli matematici di ciascuno per cogliere il punto importante. Tutti questi metodi restano, nel loro nucleo, delle discese del gradiente, arricchite con accorgimenti che le rendono più veloci e meno soggette a incepparsi.
La discesa del gradiente trova sempre la soluzione migliore?
È una domanda naturale, e la risposta onesta è no, non necessariamente. Come hai visto, l’algoritmo può fermarsi in un minimo locale, cioè in una soluzione buona ma non perfetta.
La cosa sorprendente è che, nella pratica del deep learning, questo raramente è un problema serio. Nei modelli con moltissimi parametri esistono tantissime soluzioni quasi equivalenti, e la maggior parte dei minimi in cui l’algoritmo si ferma produce risultati più che soddisfacenti.
In altre parole, non serve trovare il punto assolutamente più basso della valle, basta arrivare abbastanza in fondo. Questa tolleranza è una delle ragioni per cui un metodo così semplice funziona sorprendentemente bene anche su problemi di enorme complessità.
Vale però la pena ricordare che il risultato dipende anche dal punto di partenza. Due addestramenti dello stesso modello, avviati da parametri casuali diversi, possono terminare in minimi differenti, pur raggiungendo prestazioni simili.
Perché la discesa del gradiente è al cuore del deep learning
Se oggi possiamo addestrare modelli con miliardi di parametri, gran parte del merito va proprio a questo metodo. La discesa del gradiente è ciò che rende gestibile un problema che altrimenti sarebbe impossibile, perché cercare a caso la combinazione giusta di miliardi di numeri non porterebbe da nessuna parte.
Nel deep learning la discesa del gradiente lavora in coppia con una tecnica chiamata retropropagazione, che si occupa di calcolare in modo efficiente il gradiente in reti con moltissimi strati. Insieme, queste due idee sono il vero motore dell’apprendimento profondo.
È interessante notare quanto sia ampio il raggio d’azione di questo metodo. Lo ritrovi negli algoritmi di machine learning più tradizionali come nelle architetture generative più recenti, a riprova del fatto che alcuni principi fondamentali restano validi anche quando tutto il resto cambia.
Capire la discesa del gradiente significa quindi possedere una chiave di lettura che vale per gran parte dell’intelligenza artificiale, non solo per una tecnica specifica.
Un esempio intuitivo per fissare le idee
Immagina di voler insegnare a un modello a stimare il prezzo di una casa in base alla sua superficie. All’inizio il modello tira a indovinare e propone prezzi assurdi, lontanissimi da quelli reali.
La funzione di costo misura quanto le stime sbagliano rispetto ai prezzi veri. Il gradiente indica come modificare i parametri del modello per ridurre quello scarto, e il tasso di apprendimento decide di quanto correggere a ogni tentativo.
Dopo molte iterazioni, il modello smette di proporre cifre a caso e comincia a fornire stime sensate, perché la discesa del gradiente lo ha guidato, passo dopo passo, verso la combinazione di parametri che minimizza l’errore. Lo stesso identico principio, applicato a dati e modelli enormemente più complessi, è ciò che permette a un sistema di riconoscere immagini o comprendere il linguaggio. Per approfondire tutto il percorso conviene vedere anche come si addestra un modello di intelligenza artificiale dall’inizio alla fine.
Come capire se la discesa del gradiente sta funzionando
Chi addestra un modello non resta a guardare i parametri uno per uno, ma tiene d’occhio un grafico molto semplice: la curva di apprendimento, che mostra come l’errore cambia iterazione dopo iterazione. È lo strumento più immediato per capire se le cose stanno andando nel verso giusto.
In un addestramento sano quella curva scende in modo abbastanza regolare, prima in fretta e poi sempre più piano, fino ad appiattirsi vicino al minimo. È l’immagine visiva della discesa nella valle.
Se invece la curva sale, oscilla in modo violento o non scende affatto, è un campanello d’allarme. Spesso il colpevole è un tasso di apprendimento sbagliato, altre volte un problema nei dati o nella struttura del modello.
Osservare questa curva è una delle prime abilità pratiche che sviluppa chi lavora con l’intelligenza artificiale. Ti dice, con un solo sguardo, se la discesa del gradiente sta guidando il modello verso una buona soluzione o se si è persa per strada.
Conclusioni
La discesa del gradiente è uno di quei concetti che, una volta capiti, cambiano il modo in cui guardi l’intelligenza artificiale. Dietro la magia apparente di un modello che impara non c’è nulla di misterioso, ma un processo paziente di piccoli aggiustamenti guidati dalla pendenza dell’errore.
Abbiamo visto l’intuizione della valle nella nebbia, il ruolo della funzione di costo, del gradiente e del tasso di apprendimento, le tre varianti principali del metodo, le insidie più comuni e gli ottimizzatori che le aggirano. Sono le fondamenta su cui poggia gran parte dell’apprendimento automatico.
Se vuoi continuare a costruire la tua comprensione dell’AI, ti conviene partire proprio da qui e poi esplorare le tecnologie che su queste basi si reggono. Continua a seguire le nostre guide per collegare i vari tasselli e trasformare la curiosità in competenza reale.