Termine AI · Lettera G

Gradient Descent

“Algoritmo di ottimizzazione che aggiorna iterativamente i parametri di un modello AI seguendo la direzione opposta al gradiente della funzione di costo.”

← Torna al Glossario

L'Algoritmo che Fa Imparare le Macchine

Il Gradient Descent (discesa del gradiente) è l'algoritmo di ottimizzazione alla base di quasi tutto il machine learning moderno. Il suo obiettivo è semplice ma potente: trovare i parametri ottimali di un modello che minimizzano una funzione di costo (loss function), seguendo iterativamente la direzione di massima discesa nella superficie dell'errore. Senza il gradient descent, backpropagation non avrebbe un modo per aggiornare i pesi, e l'intero deep learning non esisterebbe.

L'Intuizione: Discesa nella Nebbia

Immagina di essere sulla cima di una montagna avvolta nella nebbia, con l'obiettivo di raggiungere la valle più bassa. Non puoi vedere l'intero paesaggio, ma puoi sentire la pendenza del terreno sotto i tuoi piedi. Il gradient descent fa esattamente questo: a ogni passo, calcola la pendenza locale (il gradiente) della funzione di costo e si muove nella direzione opposta, cioè verso il basso. La dimensione di ogni passo è controllata dal learning rate, un iperparametro cruciale.

Formula Matematica

L'aggiornamento dei parametri segue la regola:

\theta_{t+1} = \theta_{t} - \eta \nabla J(\theta_{t})

dove \theta rappresenta i parametri, \eta è il learning rate, e \nabla J(\theta_{t}) è il gradiente della funzione di costo calcolato sui parametri correnti. Il segno negativo assicura il movimento nella direzione di massima discesa.

Varianti Principali

A seconda di quanti esempi vengono usati per calcolare il gradiente a ogni iterazione, si distinguono tre varianti:

  • Batch Gradient Descent: calcola il gradiente sull'intero dataset a ogni passo. Garantisce la direzione corretta ma è lento su dataset grandi e può rimanere bloccato in minimi locali.
  • Stochastic Gradient Descent (SGD): usa un singolo esempio alla volta. È veloce e introduce rumore benefico che aiuta a sfuggire dai minimi locali, ma la traiettoria è irregolare.
  • Mini-Batch Gradient Descent: usa un piccolo gruppo di esempi (tipicamente 32-512). È lo standard de facto: bilancia efficienza computazionale, stabilità e capacità di generalizzazione.

Ottimizzatori Moderni

Diverse varianti sono state sviluppate per migliorare la convergenza:

  • Momentum: accumula una media mobile dei gradienti passati, come una palla che acquista velocità scendendo la collina, accelerando nella direzione giusta e smorzando le oscillazioni.
  • RMSprop: adatta il learning rate per ogni parametro dividendo il gradiente per la radice della media mobile dei gradienti quadratici.
  • Adam (Adaptive Moment Estimation): combina momentum e RMSprop, mantenendo stime del primo e secondo momento del gradiente. È l'ottimizzatore più popolare per l'addestramento di LLM come GPT e Claude.
  • AdamW: variante di Adam con decay del peso corretto, preferita per i Transformer.

Problemi e Sfide

  • Learning rate: troppo alto causa divergenza, troppo basso rallenta la convergenza. Soluzioni: learning rate scheduling, warmup, e tecniche adaptive.
  • Minimi locali e saddle points: in reti non lineari la superficie di costo è ricca di punti stazionari. SGD e rumore stocastico aiutano a sfuggire.
  • Plateau: regioni dove il gradiente è quasi zero ma non è un minimo. Ottimizzatori con momentum aiutano ad attraversarli.
  • Overfitting: il modello minimizza l'errore sul training ma non generalizza. Si mitigano con regularization, validation set e early stopping.

Applicazioni Pratiche

  • Addestramento LLM: modelli come Llama e Gemini usano AdamW su cluster di GPU.
  • Computer vision: Vision Transformer e reti convoluzionali usano mini-batch SGD con momentum.
  • Generative AI: i diffusion models usano gradient descent per apprendere il processo di denoising.
  • Reinforcement Learning: il policy gradient method usa il gradiente della reward attesa per aggiornare la policy.
  • Fine-tuning: LoRA applica gradient descent solo a una matrice low-rank, rendendo l'adattamento efficiente.

Oltre il Gradient Descent

Framework moderni come JAX e PyTorch calcolano i gradienti automaticamente tramite automatic differentiation, rendendo il gradient descent accessibile anche senza derivare le formule a mano. Tecniche come la quantizzazione dei gradienti e la mixed precision training permettono di addestrare modelli con miliardi di parametri su infrastrutture accessibili, democratizzando l'intelligenza artificiale.

#Ottimizzazione #Adam #MachineLearning

Pronto ad applicare l'AI nel tuo business?

Dalle definizioni ai fatti: AISAC ti aiuta a implementare soluzioni reali basate su Gradient Descent e altro.

Prenota una consulenza