)
Serie 1 · Fondamenti del Machine Learning

Come imparano le macchine: pesi, loss e discesa del gradiente

Un sistema di machine learning impara regolando i propri pesi per rendere la loss — il numero che misura l'errore di predizione complessivo — la più piccola possibile, tramite un algoritmo di ottimizzazione, tipicamente la discesa del gradiente.

← Tutti gli argomenti
Tre modelli di esempio che mappano gli stessi tre input — età, livello di istruzione, reddito annuo — su due output attraverso formule di forma diversa, a illustrare che un modello è solo una relazione matematica tra input e output.

“Allenare un modello” suona misterioso finché non se ne vede il meccanismo. Si riduce sempre a cinque ingredienti e a un obiettivo molto concreto.

Partiamo dall’esempio più semplice possibile: un input x (età), un output y (reddito) e un modello lineare y = w₀ + w₁x con solo due pesi. Dato un training set (una tabella di coppie età/reddito realmente osservate), come troviamo i due numeri giusti?

  1. Inizializza. Si parte da pesi casuali e si fa girare il modello su ogni input del training set (età) per ottenere i redditi predetti.
  2. Misura l’errore. Per ogni record del training set si misura l’errore di predizione. Esistono varie formule. La più semplice da intuire è la somma degli errori quadratici: si prende la differenza tra reddito predetto e reddito reale e la si eleva al quadrato, così che errori in eccesso e in difetto contino allo stesso modo e gli errori grossi pesino più di quelli piccoli. Poi si sommano questi valori su tutto il training set. Quel totale unico è la loss — un solo numero che misura l’errore di predizione che il modello sta commettendo con quei pesi.
  3. Migliora. Si cambiano i pesi per rendere la loss più piccola.
Il modello viene applicato a un training set di coppie età/reddito; l'errore quadratico su ogni esempio viene sommato in un'unica loss L da minimizzare.
Il cuore di tutto: far girare il modello, misurare l'errore di predizione su ogni esempio e sommarlo in un'unica loss L. I dati sono numeri fissi — solo i pesi sono liberi di cambiare.

Tutto l’apprendimento sta nel passo 3: trovare i pesi che rendono la loss la più piccola possibile. Ed ecco la parte elegante — poiché i dati di training sono solo numeri fissi, la loss dipende soltanto dai pesi. Con due pesi la si può letteralmente disegnare come una superficie e andare a cercarne il punto più basso, ovvero il punto di minimo.

Una superficie di loss 3D disegnata rispetto a due pesi, dove scelte diverse di pesi danno fit molto diversi ai dati età/reddito.
Con due pesi la loss diventa una superficie. Scelte diverse di pesi fittano i dati in modo molto diverso; la coppia migliore sta nel punto di minimo della superficie.

Quel punto più basso non lo si trova provando combinazioni a caso all’infinito — i modelli reali hanno miliardi di pesi (GPT-3 ne aveva 175 miliardi; Brown, T. et al. (2020), Language Models are Few-Shot Learners). Si usa invece un algoritmo di ottimizzazione, e quello maggiormente utilizzato è la discesa del gradiente: si parte da un punto della superficie e si compie ripetutamente un passo nella direzione di massima discesa, scendendo fino a un minimo — non necessariamente il più profondo in assoluto, ma in pratica abbastanza buono.

I cinque ingredienti del machine learning: un compito, un modello, un training set, una funzione di loss e un algoritmo di ottimizzazione.
I cinque ingredienti di cui ha bisogno ogni sistema di machine learning — un compito, un modello, un training set, una funzione di loss e un algoritmo di ottimizzazione. Cambia gli ingredienti e cambi l'applicazione; la ricetta resta la stessa.

Mettendo insieme il tutto, ogni sistema di machine learning ha bisogno degli stessi cinque ingredienti: un compito (regressione, classificazione…), un modello con parametri, un training set da cui imparare, una funzione di loss che quantifica l’errore di predizione e un algoritmo di ottimizzazione che minimizza quella loss. Cambia gli ingredienti e cambi l’applicazione — ma la ricetta non cambia mai. E soprattutto: il comportamento del modello è appreso dai dati, non scritto da una persona.