
Prima di parlare di reti neurali o di transformer, è necessario fissare un concetto fondamentale alla base di tutta la teoria del machine learning: il problema della predizione. Ogni compito di machine learning si può infatti ridurre ad un unico problema matematico:
Dato un insieme di N variabili di input, predire il valore di M variabili di output.
Tutto qui. Ciò che cambia da un’applicazione all’altra è soltanto quali sono gli input e gli output — ed è questo cambio d’abito a dare a ciascun compito il suo nome.
Qualche esempio dal mondo in cui lavoro:
- Date età, sesso, indice di massa corporea, predire la speranza di vita e il costo totale delle spese sanitarie fino al decesso. Gli output sono numeri su una scala continua — è la regressione.
- Date età, livello di istruzione, reddito annuo, predire se una persona sarà interessata a una polizza vita nei prossimi dodici mesi. L’output è una categoria — è la classificazione (o, quando i gruppi non sono etichettati in anticipo, il clustering).
- Date le parole di una domanda, predire la risposta migliore in linguaggio naturale. L’output è a sua volta una sequenza di parole — è la generazione, ed è esattamente ciò che fa un large language model.
- Data un’immagine, predirne la migliore descrizione — il captioning.
- …
Regressione, classificazione, generazione, captioning, …: tanti compiti, un solo problema. Una volta capito questo, il resto della serie è in fondo il racconto di come le macchine apprendono come risolvere efficacemente tale problema di base — di come trasformano “predici l’output dall’input” in qualcosa che un computer può davvero imparare a fare, invece di qualcosa che un umano deve programmare.
Il prossimo capitolo riprende l’esempio della speranza di vita e pone la domanda ovvia: in che cosa il machine learning è diverso dallo scrivere semplicemente un programma che risolva lo stesso problema di predizione?
