Meta Descrizione: Una guida semplice alla Discesa del Gradiente (Batch e Stocastica), il motore di ottimizzazione dell’IA per minimizzare l’errore.
INDICE
- 0.1 1. Introduzione: Il Problema (La Montagna dell’Errore)
- 0.2 2. La Funzione di Errore e i Due Approcci alla Soluzione
- 0.3 3. Approccio Iterativo 1: Batch Gradient Descent (Lento e Preciso)
- 0.4 4. Approccio Iterativo 2: Stochastic Gradient Descent (Veloce e Rumoroso)
- 0.5 5. Esempio Numerico 1: Ottimizzazione a 1 Variabile (SGD Puro)
- 0.6 6. Esempio Numerico 2: Ottimizzazione a 2 Variabili (SGD Sequenziale)
- 0.7 7. La Soluzione Pratica (AI): Mini-Batch e Shuffling
- 0.8 8. Applicazioni Pratiche (Dalla Storia all’AI)
- 1 IMPARA LA STATISTICA
1. Introduzione: Il Problema (La Montagna dell’Errore)
L’obiettivo fondamentale di quasi tutti i modelli di Machine Learning, dalla semplice Regressione Lineare alle complesse Reti Neurali dell’Intelligenza Artificiale, è minimizzare l’errore.
Immaginiamo la Funzione di Errore Totale ($E$) del nostro modello come un’immensa catena montuosa in $N$ dimensioni. L’altitudine in ogni punto rappresenta l’errore: le cime sono errori altissimi, le valli sono errori bassi.
L’obiettivo è trovare il punto più basso della valle: il Minimo Globale.
Per trovare questo punto, l’algoritmo è come un escursionista bendato. Non può vedere l’intera mappa; può solo “sentire” la pendenza del terreno sotto i suoi piedi. Questa “pendenza” è la derivata (o Gradiente), la nostra bussola matematica.
2. La Funzione di Errore e i Due Approcci alla Soluzione
Formalmente, la funzione di errore più comune è la Somma dei Quadrati degli Errori (SSE), che misura la somma delle differenze al quadrato tra i valori reali ($Y_i$) e quelli previsti dal modello ($\hat{Y}_i$):
$$E_{TOTALE} = \sum_{i=1}^{N} (Y_i – \hat{Y}_i)^2$$
Per minimizzare $E_{TOTALE}$ (trovare il fondo della valle), esistono due approcci principali:
A. L’Approccio Tradizionale (Soluzione Chiusa OLS)
Nella statistica classica, per la regressione lineare multipla, l’errore viene minimizzato in modo analitico e immediato utilizzando l’algebra lineare. La soluzione è la famosa formula OLS (Minimi Quadrati Ordinari):
$$\mathbf{\hat{\beta} = (X^T X)^{-1} X^T Y}$$
Questo metodo calcola i coefficienti $\hat{\beta}$ ottimali in un solo colpo, ma richiede di invertire la matrice $\mathbf{X^T X}$.
B. L’Approccio Iterativo (Discesa del Gradiente)
Quando si lavora con Big Data (milioni di osservazioni) o con Reti Neurali (milioni di parametri), calcolare e invertire la matrice $\mathbf{X^T X}$ diventa computazionalmente impossibile.
Per questo, l’Intelligenza Artificiale utilizza un approccio iterativo: la Discesa del Gradiente. Invece di risolvere il problema in un colpo solo, “cammina” lungo la montagna dell’errore passo dopo passo, usando la derivata (il gradiente) per trovare la direzione della discesa.
3. Approccio Iterativo 1: Batch Gradient Descent (Lento e Preciso)
L’approccio “Batch” (BGD) è l’alternativa iterativa più sicura. È l’escursionista cauto.
- Processo: L’algoritmo si ferma, analizza tutti i milioni di dati del dataset, calcola il gradiente (la derivata) per ciascuno, e ne fa la media. Questo gli dà la direzione di discesa perfetta ($\nabla E_{TOTALE}$).
- Formula di Aggiornamento: $w^{k+1} = w^k – \eta \cdot \nabla E_{TOTALE}$
- Svantaggio: È ancora troppo lento per l’IA moderna, poiché richiede il calcolo su tutti i dati per fare un singolo passo.
4. Approccio Iterativo 2: Stochastic Gradient Descent (Veloce e Rumoroso)
L’approccio Stocastico (SGD), menzionato nel tuo PDF, è il vero motore del Deep Learning. È l’escursionista veloce e “rumoroso”.
- Processo: Invece di analizzare tutti i dati, l’algoritmo prende un solo dato ($i$) alla volta, calcola il gradiente solo per quel dato ($\nabla E_i$), e fa un passo immediato.
- Formula di Aggiornamento: $w^{k+1} = w^k – \eta \cdot \nabla E_i$
- Vantaggio: È incredibilmente veloce e, grazie al suo “rumore”, ha più probabilità di sfuggire ai minimi locali e trovare il minimo globale.
5. Esempio Numerico 1: Ottimizzazione a 1 Variabile (SGD Puro)
Vediamo come la derivata di un singolo errore guida l’aggiornamento.
- Modello: $\hat{Y} = w \cdot X$
- Dato Singolo: $X=2, Y=10$
- Errore: $E(w) = (10 – 2w)^2$
- Derivata (Pendenza): $\frac{\partial E}{\partial w} = -40 + 8w$
L’algoritmo (con $\eta=0.01$) aggiorna $w$ usando la derivata:
| Passo (k) | w (Posizione) | Errore E(w) | Derivata ∂w∂E | Aggiornamento wk+1=wk−η⋅(Derivata) |
| 0 | $w = 3$ | 16,0 | $-16,0$ | $w^1 = 3 – (0.01 \cdot -16) = \mathbf{3,16}$ |
| 1 | $w = 3,16$ | 13,54 | $-14,72$ | $w^2 = 3,16 – (0.01 \cdot -14,72) = \mathbf{3,307}$ |
| … | … | $\downarrow$ (Scende) | … | … (Continua) … |
| Finale | $w \to 5$ | 0 | 0 | Processo fermo. |
6. Esempio Numerico 2: Ottimizzazione a 2 Variabili (SGD Sequenziale)
Il processo SGD non è commutativo: l’ordine $A \rightarrow B$ dà un risultato diverso da $B \rightarrow A$. I pesi sono globali e aggiornati sequenzialmente.
- Modello: $\hat{Y} = w_1 X_1 + w_2 X_2$
- Pesi Iniziali (k=0): $w_1 = 1, w_2 = 1$
- Learning Rate ($\eta$): $0.01$
| Passo (k) | Dato Analizzato | Pesi Attuali (w1,w2) | Errore (del dato) | Gradiente Calcolato (∇Ei) | Aggiornamento wk+1=wk−η⋅∇Ei |
| 1 | Dato A ($X_1=1, X_2=2, Y=10$) | (1,00, 1,00) | $E_A = (10-1-2)^2 = 49$ | $\nabla E_A = \begin{pmatrix} -14 \\ -28 \end{pmatrix}$ | $w_1 = 1 – (0.01 \cdot -14) = \mathbf{1,14}$ $w_2 = 1 – (0.01 \cdot -28) = \mathbf{1,28}$ |
| 2 | Dato B ($X_1=3, X_2=1, Y=8$) | (1,14, 1,28) | $E_B = (8-3(1,14)-1(1,28))^2 \approx 10,9$ | $\nabla E_B = \begin{pmatrix} -19,8 \\ -6,6 \end{pmatrix}$ | $w_1 = 1,14 – (0.01 \cdot -19,8) = \mathbf{1,338}$ $w_2 = 1,28 – (0.01 \cdot -6,6) = \mathbf{1,346}$ |
7. La Soluzione Pratica (AI): Mini-Batch e Shuffling
Nella pratica del Deep Learning, si usa un compromesso:
- Mini-Batch: Invece di 1 dato, si usa un piccolo gruppo (es. 64 dati). Si calcola la media dei 64 gradienti e si fa un solo passo. È più stabile dell’SGD e più veloce del Batch.
- Shuffling (Mescolamento): Per evitare che l’ordine $A \rightarrow B \rightarrow C$ influenzi l’apprendimento, l’intero dataset viene mescolato all’inizio di ogni ciclo (epoca), rendendo la sequenza casuale.
8. Applicazioni Pratiche (Dalla Storia all’AI)
Oggi, l’SGD (e le sue varianti avanzate come Momentum e Adagrad, menzionate nel tuo PDF) è il motore fondamentale dell’Intelligenza Artificiale, utilizzato per:
- Addestrare Reti Neurali Profonde per il riconoscimento di immagini.
- Creare Modelli Linguistici di Grandi Dimensioni (come quello che stai usando).
- Costruire filtri anti-spam, sistemi di raccomandazione (Netflix, Amazon) e diagnostica medica.
IMPARA LA STATISTICA
Comincia un fantastico viaggio alla scoperta di questa affascinante materia partendo da zero.
Si comincia dalla statistica descrittiva, passando per le probabilità si arriva all’inferenza.
Comincia subito il tuo percorso e migliora le tue abilità.