
Riprendiamo l’esempio del capitolo precedente: date età, sesso, indice di massa corporea, predire la speranza di vita e il costo totale delle spese sanitarie fino al decesso. Ci sono due modi completamente diversi di costruire questo predittore.
Programmazione tradizionale. Un analista studia il problema e ricava le regole — l’algoritmo che trasforma gli input in un output. Scrive quelle regole in modo esplicito (se età < 50 e sesso = Femmina e BMI > 20, allora speranza di vita = 85 anni e costo = 300k), le verifica sui dati storici, le corregge dove sbagliano e le mette in produzione. L’intelligenza sta nelle regole, ed è stata una persona a doverla fornire.
Machine learning. Invece di scrivere le regole, si sceglie un modello: un insieme generico di formule che dipende da un insieme di parametri liberi, di solito chiamati pesi. Il modello non sa ancora nulla. Poi lo si allena — si regolano quei pesi — usando esempi noti (il training set) affinché il suo output riproduca il più fedelmente possibile la realtà osservata. Si tiene da parte una piccola porzione di dati per il test finale, si torna a correggere il modello se serve e si mette in produzione. Nessuno ha scritto le regole: sono codificate nei pesi che la macchina ha trovato attraverso questo processo di ottimizzazione.
Il modo più pulito per vedere la differenza è guardare che cosa entra e che cosa esce.

La programmazione classica consuma regole + dati e produce risposte. Il machine learning consuma dati + risposte e produce le regole.
Una conseguenza da sottolineare, perché spiega molto di ciò che segue: lo stesso modello, allenato su un training set diverso, arriva a pesi diversi e può descrivere un problema completamente diverso. Le formule che predicono speranza di vita e costi sanitari da età, sesso e BMI potrebbero, con pesi diversi, predire se un fiore è una rosa o un geranio a partire dalle caratteristiche dei suoi petali. La struttura è generica; il significato sta tutto nei valori dei pesi.
È per questo che, negli ultimi due decenni, il machine learning ha progressivamente prevalso, nei problemi di predizione, sulla programmazione basata su regole esplicite (i cosiddetti sistemi esperti): la potenza di calcolo ha smesso di essere il collo di bottiglia, sono diventati disponibili dati in quantità prima impensabili, e lasciare che siano i dati a scrivere le regole scala in un modo che nessun analista potrebbe eguagliare.

Il machine learning è solo una regione di una mappa più ampia. È una delle modalità per implementare l’intelligenza artificiale, ormai la più diffusa; il deep learning è una particolare classe di machine learning; la GenAI si basa sul deep learning per risolvere problemi di generazione — e quasi tutto ciò di cui parleremo è costruito su un solo strumento tecnico, la rete neurale, che è dove va la serie da qui in avanti.
