
Ogni giorno usiamo strumenti di intelligenza artificiale senza chiederci come facciano, in concreto, a prendere decisioni o a fare stime. Dietro molte di queste magie si nasconde il 'Machine Learning' (o apprendimento statistico): un'evoluzione della 'data science' che permette ai computer di imparare dai dati attraverso modelli dotati di parametri interni. Per capire come la tecnologia riesca a stimare valori concreti (come il prezzo futuro di una casa, la distanza di un oggetto o l'andamento di un titolo in borsa, ndr) basta capire il funzionamento del suo strumento più famoso: la 'regressione lineare'. Nell'Intelligenza artificiale esiste una grande famiglia chiamata: 'apprendimento supervisionato' (Supervised Learning). Il funzionamento è simile a quello di uno studente con un libro di esercizi: all'algoritmo vengono mostrati sia i dati di partenza, chiamati 'feature X', sia la risposta corretta reale, chiamata 'label Y'. A differenza dei modelli che devono scegliere una categoria (come decidere se una e-mail è 'spam' oppure 'non spam'), la regressione serve quando la risposta cercata è un numero continuo. L'idea alla base è intuitiva. Immaginiamo di tracciare dei punti su un foglio di carta, dove ogni punto rappresenta un dato reale. L'obiettivo dell'algoritmo è tracciare una linea retta che passi il più vicino possibile a tutti i punti presi insieme. Se le variabili da considerare diventano più di una, la retta si trasforma in un piano trasparente, ma la logica non cambia: il computer cerca l'inclinazione giusta per ridurre al minimo la distanza tra la sua linea e i dati reali. Quando il modello traccia la sua prima linea, quasi nessun punto reale cade esattamente sopra di essa. La distanza tra il punto reale e la linea tracciata dal computer si chiama 'residuo' o, più semplicemente, errore. Per capire quanto la linea sia precisa nel suo complesso, il computer calcola l'errore globale tramite la funzione di costo. In termini semplici, l'algoritmo prende tutti gli errori, li eleva al quadrato e ne fa la media. Elevare gli errori al quadrato serve a due cose, principalmente: a) evita che gli errori sopra la linea si annullino con quelli sotto; b) penalizza molto di più le 'sviste' grandi rispetto a quelle piccole. A questo punto, l'algoritmo deve regolare i suoi 'pesi' interni (le manopole che regolano l'altezza e l'inclinazione della retta, ndr) per rendere questo errore globale il più piccolo possibile. Per farlo ha due strade: 1) la 'scorciatoia matematica' (equazione normale): un calcolo diretto, che trova la soluzione esatta in un colpo solo, ma che diventa troppo pesante per la memoria del computer se i dati sono tantissimi; 2) i 'piccoli passi verso il basso' (o discesa del ‘gradiente’): il computer parte da una linea a caso e, passaggio dopo passaggio, misura la 'pendenza dell'errore', per capire in quale direzione spostarsi verso il punto di errore minimo. La grandezza dei passi che compie a ogni tentativo è regolata da un fattore chiamato: 'Learning Rate'. Nel mondo reale, le cose raramente si muovono lungo una linea retta. Se provassimo a descrivere una curva usando un semplice righello dritto, otterremmo errori enormi e un fenomeno chiamato 'underfitting' (sottoadattamento), dove il modello è troppo 'pigro' - o semplice - per capire la forma dei dati. Per risolvere il problema si usa l'espansione delle caratteristiche ('Feature Expansion'). Il computer crea nuove informazioni, moltiplicando le variabili tra loro, calcolandone il quadrato o usando trasformazioni matematiche. In questo modo, la retta si piega e diventa una curva - o una parabola - capace di seguire l'andamento reale. La cosa curiosa è che, anche se la linea si piega, il modello continua a chiamarsi: 'regressione lineare'. Questo perché la 'linearità', per gli informatici, non riguarda la forma del disegno sui dati, ma il modo più semplice e diretto in cui i pesi interni del modello vengono combinati tra loro. Nel 'machine learning', il pericolo più grande è l'overfitting (sovradattamento). Esso si verifica quando diamo al modello la possibilità di creare una curva troppo complessa e contorta. La curva inizierà ad andare a 'zig-zag' pur di toccare ogni singolo punto di allenamento, azzerando l'errore iniziale. Sembrerebbe un successo, ma in realtà il modello ha solo 'imparato a memoria'. Quando gli mostreremo un dato completamente nuovo, la curva compirà oscillazioni anomale e sbaglierà di grosso la previsione. Pertanto, per evitare sia il sottoadattamento (linea troppo rigida), sia il sovradattamento (curva troppo contorta), gli esperti dividono sempre i dati in due parti: a) training set: la porzione usata per far allenare il modello e regolare i suoi pesi; b) test set: una porzione tenuta 'nascosta' di riserva, usata alla fine per simulare come il modello si comporterà nel mondo reale di fronte a informazioni mai viste. L'obiettivo finale è trovare il punto di equilibrio perfetto: accettare, cioè, un piccolissimo margine di errore durante l'allenamento, pur di garantire che il modello rimanga stabile e preciso nel tempo. Nelle applicazioni reali, quelle che usiamo sul telefono o sul computer, la 'regressione lineare' è l'ultimo anello di una catena di montaggio ben strutturata. I dati 'grezzi' vengono sistemati e messi sulla stessa scala numerica per non sbilanciare i calcoli. Questa preparazione deve, tuttavia, avvenire rigorosamente, senza 'sbirciare' nei dati di test. Dopo la 'pulizia dei dati', l'algoritmo studia i dati di allenamento e calcola i pesi ottimali. Dopodiché, si misura l'accuratezza della linea sui dati messi da parte, al fine di verificare che non soffra di memoria a breve termine. Alla fine, il modello, se promosso, inizia a fare stime automatiche e istantanee sui flussi di dati reali di tutti i giorni.