Gli algoritmi del machine learning
Dalla riga di un foglio di calcolo al modello in produzione. Le famiglie di algoritmi, cosa distingue una dall'altra, come si addestrano e come si misurano — con l'analogia che serve a capirli e i numeri con cui si lavora davvero.
Un problema solo attraversa tutto il diagramma. Ogni riquadro con la riga rossa racconta cosa gli succede in quello stadio.
«quali abbonati disdiranno il mese prossimo?»
40.000 clienti, 60 colonne, 3 anni di storico.
Un solo schema sotto tutti gli algoritmi
Cambiano la forma della funzione e il modo di cercare i parametri. Non cambia lo schema: una funzione con dei numeri regolabili dentro, una misura di quanto sbaglia, una procedura che muove i numeri per far scendere quella misura.
Un mixer audio. La funzione è il banco, i parametri sono i cursori, la loss è il fonico che ascolta e dice quanto suona male. Imparare significa muovere i cursori finché il fonico smette di lamentarsi. Il programmatore non decide dove vanno i cursori: costruisce il banco e sceglie il fonico.
I parametri li trova l'addestramento (i pesi). Gli iperparametri li scegli tu prima: profondità dell'albero, learning rate, numero di cluster. I secondi si cercano a tentativi, sul set di validazione.
Le colonne che dai in pasto. Su dati tabellari il feature engineering vale più della scelta dell'algoritmo; sulle reti profonde le feature se le costruisce il modello, ed è tutta la differenza fra le due metà di questo diagramma.
I quattro regimi di apprendimento
Non si dividono per algoritmo ma per che tipo di segnale hai a disposizione. La domanda giusta all'inizio di un progetto non è «quale modello uso», è «chi mi dice se ho indovinato».
Quattro modi di imparare un mestiere: con le soluzioni a fondo pagina, senza soluzioni ma con la pila di esercizi, coprendo con la mano un pezzo del testo che hai già, oppure provando sul campo e contando gli incidenti.
Hai le risposte
Ogni riga porta con sé l'etichetta giusta. Il 90% del ML che gira in azienda sta qui.
Due varietà: classificazione (quale categoria) e regressione (quale numero). Costo: etichettare.
Hai solo i dati
Nessuna etichetta: si cerca struttura. Gruppi, direzioni principali, cose fuori posto.
Problema: non esiste una risposta giusta, quindi non esiste una metrica onesta.
L'etichetta è nel dato
Nascondi un pezzo di quello che hai e chiedi al modello di ricostruirlo. Etichette infinite, gratis.
Perché conta: è ciò che ha reso possibili i modelli linguistici e visivi di grandi dimensioni.
Hai solo il punteggio
Nessuno ti dice la mossa giusta: alla fine sai solo se è andata bene. Il segnale arriva tardi e raro.
Dove serve: controllo, giochi, robotica, allineamento e ragionamento dei modelli linguistici.
Come si muovono i parametri
Quasi tutto il ML moderno usa lo stesso motore: calcola la pendenza della loss rispetto a ogni parametro, fai un passetto in discesa, ripeti. Il resto sono dettagli su quanto è grande il passo. Eccezione importante: gli alberi dello stadio 05 non si addestrano così. Le soglie si cercano provando i tagli possibili; il gradient boosting usa il gradiente solo per decidere quale errore deve correggere l'albero successivo.
Scendere da una montagna nella nebbia. Non vedi la valle, ma senti la pendenza sotto i piedi: fai un passo in giù e risenti. Passi troppo lunghi e rimbalzi da un versante all'altro; troppo corti e sei ancora lì domani. La backpropagation è solo il modo efficiente di sentire la pendenza quando i piedi sono un miliardo.
L'iperparametro che sbaglia più gente: tipicamente fra 10⁻⁵ e 10⁻² e quasi sempre calante nel tempo. Se la loss esplode o resta piatta, si guarda qui prima di ogni altra cosa.
Gli ottimizzatori usati in pratica tengono conto anche della velocità accumulata e adattano il passo per ogni parametro. Adam e AdamW sono la scelta di default da anni; dal 2025 alcuni modelli di frontiera si addestrano con Muon, che aggiorna ogni matrice di pesi «in blocco» e arriva allo stesso risultato con meno calcolo.
Modelli lineari: una somma pesata
Moltiplichi ogni colonna per un peso, sommi, e hai finito. Sembra troppo poco, ed è ancora il primo modello da provare su qualsiasi problema: veloce, stabile e — insieme al singolo albero — il più leggibile della pagina: ogni peso dice di quanto una colonna sposta la previsione.
La pagella con i crediti: ogni materia vale un tot, si sommano i punti, sopra una soglia si passa. Trasparente e difendibile davanti a chiunque — motivo per cui banche e assicurazioni lo usano ancora al posto di modelli più accurati.
Regressione lineare
Prevede un numero. Retta di miglior compromesso fra i punti, loss = errore quadratico.
Regressione logistica
Stessa somma, schiacciata fra 0 e 1: diventa una probabilità. Nonostante il nome è un classificatore.
Ridge e Lasso
Le stesse, con una penale sui pesi grandi. Lasso ne azzera parecchi: seleziona le colonne che contano.
Vede solo effetti additivi: non può cogliere «i clienti nuovi con molti ticket disdicono, ma quelli vecchi no». Le interazioni gliele devi costruire tu, a mano, come colonne nuove.
La penale sui pesi è il modo più antico ed economico di combattere l'overfitting: obbliga il modello a spiegare i dati con la storia più semplice che riesce a raccontare.
Alberi ed ensemble: il riferimento per i dati tabellari
Un albero è una catena di domande sì/no sulle colonne. Da solo è debole e instabile. A centinaia, combinati bene, è da anni il modello da battere sui dati a righe e colonne: le reti addestrate da zero ci riescono di rado.
Il triage al pronto soccorso: una sequenza di domande secche, ognuna sceglie il ramo. Random forest è un consulto fra cento medici che hanno visto pazienti diversi e votano. Boosting è una fila di specialisti in cui ognuno corregge quello che il gruppo, fin lì, sbaglia ancora.
Leggibile, fragile
Lo puoi disegnare e mostrare a un dirigente. Cambia dieci righe di dati e cambia forma: da solo non si usa quasi mai.
Cento in parallelo
Ognuno su un campione diverso di righe, e a ogni domanda sceglie fra un sottoinsieme casuale di colonne. Poi si vota. Robusto, quasi impossibile da sbagliare, pochissimi iperparametri.
Mille in fila
Ogni albero corregge l'errore residuo di tutti quelli venuti prima: si somma al gruppo con un peso piccolo, e il gruppo migliora un passo alla volta. È la discesa del gradiente dello stadio 03, fatta aggiungendo alberi invece di spostare pesi. XGBoost, LightGBM, CatBoost.
Dal 2025 una rete ha iniziato a battere il boosting sul suo terreno. TabPFN e simili sono transformer pre-addestrati su milioni di tabelle sintetiche: gli passi il tuo dataset di addestramento come contesto e prevedono in un solo passaggio, senza iperparametri da cercare. Sotto le 50.000 righe, nei benchmark, battono in media un XGBoost ottimizzato per ore; le versioni del 2026 dichiarano di arrivare a un milione di righe. I numeri vengono in gran parte dai produttori. Il boosting resta la scelta robusta, economica e facile da mettere in produzione; ma oggi va confrontato con loro.
Le soglie sì/no sono immuni alla scala delle colonne, digeriscono valori mancanti e categorie, e trovano da sole le interazioni. Tutto ciò che su una rete neurale va preparato a mano.
Mille alberi non si leggono più. Si ricorre a strumenti di attribuzione (SHAP) per capire quali colonne hanno spinto una singola previsione — utili, ma sono una ricostruzione a posteriori, non il ragionamento del modello.
Distanze, margini e probabilità
Tre classici che risolvono lo stesso problema con tre idee molto diverse. Si incontrano ancora spesso, e uno dei tre — il vicinato — è tornato al centro della scena con la ricerca semantica.
Tre modi di giudicare un quartiere nuovo: guardare chi sono i cinque vicini di casa (kNN), tracciare il confine più largo possibile fra due zone (SVM), o partire da quanto è frequente ciascun tipo di quartiere e aggiornare l'idea a ogni indizio (Bayes).
Nessun addestramento
Tiene tutti i dati e al momento della domanda cerca i k più simili. Costo zero prima, costo alto dopo: l'opposto di tutti gli altri.
Il confine più largo
Cerca la separazione con più spazio libero attorno. Con il kernel trick separa anche classi non separabili da una retta. Ottimo con pochi dati e molte colonne.
Conteggi e nient'altro
Assume che, dentro ciascuna classe, le colonne siano indipendenti fra loro — ipotesi quasi sempre falsa che funziona lo stesso. Istantaneo, storicamente il filtro antispam.
Cercare i vettori più simili in un database di embedding — ricerca semantica, RAG, raccomandazioni, deduplicazione — è k-NN su larga scala, con indici approssimati per non confrontare tutto con tutto. Un algoritmo del 1951 è oggi uno di quelli che girano di più.
Senza etichette: gruppi, assi, anomalie
Qui non si prevede niente: si guarda. Sono strumenti da fase esplorativa, e vanno usati sapendo che il risultato dipende da scelte tue — quanti gruppi, quale distanza — e che nessuna metrica ti dirà se hai scelto bene.
Riordinare un magazzino senza inventario. Puoi fare mucchi di cose simili (clustering), puoi accorgerti che tutta la merce varia lungo due sole dimensioni e buttare via le altre (riduzione dimensionale), o puoi cercare l'oggetto che in quel magazzino non ci dovrebbe stare (anomalie).
k mucchi sferici
Sposta k centri finché ognuno sta al baricentro del suo gruppo. Velocissimo. Ma k lo scegli tu, e assume gruppi tondi e di dimensioni simili.
Gruppi di forma libera
Segue le zone dense: trova gruppi allungati, decide da solo quanti sono e lascia fuori il rumore. Il gerarchico costruisce invece un albero di gruppi dentro gruppi.
Da 60 colonne a 2
PCA tiene le direzioni di massima varianza ed è lineare: dai 2 numeri si ricostruisce un'approssimazione dei 60 originali. UMAP e t-SNE servono soprattutto a fare grafici: bellissimi, ma le distanze fra gruppi lontani sulla mappa non vanno interpretate.
Quello che non torna
Isolation forest, one-class SVM, autoencoder. Si addestrano sul normale e segnalano ciò che si discosta: frodi, guasti, intrusioni — dove gli esempi positivi sono troppo pochi per il supervisionato.
Reti neurali: quando le feature se le fa da sola
Strati di somme pesate alternati a una funzione non lineare. La novità non è la potenza — è che su immagini, suono e testo la rete si costruisce da sé le colonne utili, che nessuno saprebbe scrivere a mano.
Una catena di montaggio del significato. I primi strati riconoscono bordi e macchie, quelli in mezzo occhi e ruote, gli ultimi «gatto» o «autobus». Nessuno ha programmato quei livelli: si sono formati perché erano il modo più economico di far scendere la loss.
La rete base
Tutto collegato con tutto. Funziona con qualsiasi input, non sfrutta nessuna struttura. Addestrata da zero su dati tabellari, perde quasi sempre contro il boosting.
Per le immagini
Lo stesso piccolo filtro fatto scorrere su tutta l'immagine: un bordo è un bordo ovunque si trovi. Pochi pesi, tanta efficienza.
Per le sequenze, prima
Leggono un elemento per volta portandosi dietro uno stato. Difficili da addestrare su sequenze lunghe e impossibili da parallelizzare: superate dai transformer. Ma l'idea è tornata: le ricorrenze lineari moderne (Mamba e simili) si addestrano in parallelo e oggi affiancano l'attenzione in molti modelli ibridi, per leggere contesti lunghi a costo costante.
Per le sequenze, oggi
Ogni elemento guarda tutti gli altri e decide a chi dare peso. Si addestra in parallelo, quindi scala. Ha assorbito anche visione e audio. Il diagramma dedicato →
Generativi: imparare la distribuzione, non il confine
Un classificatore impara dove passa la linea fra le classi. Un generativo impara com'è fatto l'insieme dei dati, e per questo può produrne di nuovi che ci somigliano.
La differenza fra saper riconoscere uno stile e saperlo dipingere. Il critico distingue un Morandi da un De Chirico; il falsario ha capito come si costruisce un Morandi. Sono due competenze diverse, e la seconda richiede molti più dati.
Comprimi e ricostruisci
Strozza il dato in poche dimensioni e prova a rifarlo uguale. Quello che sopravvive alla strozzatura è l'essenziale. Usati per compressione, anomalie e come pezzo interno dei sistemi di diffusione.
Falsario contro perito
Due reti in competizione: una genera, l'altra smaschera. Risultati nitidi ma addestramento instabile. Ha dominato fino al 2021, oggi in gran parte sostituita.
Togliere rumore
Si insegna a rimuovere un po' di rumore da un'immagine sporcata, poi si parte da rumore puro e si ripete la pulizia. La variante oggi più usata, il flow matching, impara direttamente la direzione che porta dal rumore all'immagine lungo un percorso quasi rettilineo: servono meno passi, e i modelli distillati arrivano a 1-4. È il motore di quasi tutta la generazione di immagini e video.
Un pezzo alla volta
Prevedi l'elemento successivo dati i precedenti, e ripeti. È la ricetta dei modelli linguistici, e sempre più anche di audio e immagini. E il confine si sta sciogliendo: esistono già modelli linguistici a diffusione, che partono da una frase tutta mascherata e la riempiono in pochi passi paralleli.
Rinforzo: imparare dalle conseguenze
Nessuno mostra la mossa giusta. C'è un ambiente che risponde, una ricompensa che arriva tardi, e il problema di capire quale delle cento mosse fatte ha prodotto il risultato.
Imparare a cucinare senza ricetta e con un solo giudizio a fine cena. Buono o cattivo — ma quale gesto è stato decisivo? E conviene rifare il piatto che riesce, o provare qualcosa di nuovo che potrebbe riuscire meglio? Quel dilemma ha un nome: esplorazione contro sfruttamento.
Value-based (Q-learning, DQN): stima quanto vale ogni mossa e prendi la migliore. Policy gradient (PPO): regola direttamente la probabilità delle mosse, spingendo in alto quelle che hanno reso.
Servono milioni di tentativi, quindi un simulatore. Se sbagliare costa — un magazzino, un paziente, un impianto — il rinforzo puro non è praticabile. Fuori dai simulatori il suo impiego più diffuso è il post-training dei modelli linguistici: prima con RLHF (un modello di ricompensa imita le preferenze umane), dal 2025 soprattutto con ricompense verificabili — il test passa, il risultato è giusto. È così che nascono i modelli di ragionamento. L'algoritmo tipico, GRPO, genera molte risposte alla stessa domanda e premia quelle sopra la media del gruppo, senza un secondo modello che stimi il valore.
Valutare: dove si perdono i progetti
Scegliere l'algoritmo è la parte facile. I progetti falliscono nella misurazione: sul dato sbagliato, con la metrica sbagliata, o con una perdita di informazione dal futuro che nessuno ha notato.
Un esame in cui lo studente ha visto le domande. Prende trenta e non sa niente. Il test set è la busta sigillata: si apre una volta sola, alla fine. Se lo apri ogni sera per scegliere il modello migliore, hai solo spostato l'imbroglio di un livello.
Si impara sul primo, si scelgono gli iperparametri sul secondo, si dichiara il risultato sul terzo. Con pochi positivi un solo set di validazione è rumoroso: si ripete la divisione più volte (cross-validation) e si fa la media. Sui dati temporali la divisione va fatta per data, mai a caso, e le pieghe scorrono in avanti: si addestra fino a marzo e si valida su aprile, poi fino ad aprile e si valida su maggio.
Il modello memorizza invece di generalizzare. Si riconosce da un solo sintomo: ottimo in addestramento, mediocre in validazione. Si cura con più dati, meno capacità, regolarizzazione, early stopping.
Informazione che il modello non avrebbe al momento della previsione. Una colonna dal futuro, ma anche una normalizzazione o un oversampling fatti prima di dividere i dati, lo stesso cliente in train e in test. Dà risultati stupendi in prova e inutili in produzione. Regola: tutto ciò che impara dai dati si adatta solo sul training.
| Metrica | Cosa misura | Quando è quella giusta |
|---|---|---|
| Accuratezza | quante previsioni sono corrette | quasi mai: con classi sbilanciate mente |
| Precision | di quelli segnalati, quanti lo erano davvero | quando intervenire costa |
| Recall | di quelli veri, quanti ne hai presi | quando mancarne uno costa di più |
| F1 | media armonica delle due | quando serve un numero solo e i veri negativi non interessano; se conosci i costi, usa direttamente il costo atteso |
| ROC-AUC | quanto bene ordina i casi, a ogni soglia | per confrontare modelli; non vede lo sbilanciamento |
| PR-AUC · precision/recall al top-k | quanto è pulita la lista dei primi k segnalati | classi rare e budget fisso di interventi: il caso del churn |
| Calibrazione (Brier, log loss, curva di affidabilità) | se «30%» vuol dire davvero 3 casi su 10 | quando la probabilità si usa per decidere: soglie, costi, budget |
| RMSE / MAE | errore medio di una previsione numerica | regressione — RMSE punisce gli errori grossi |
Inferenza: il modello al lavoro
Addestrare si fa una volta, prevedere si fa per sempre. Da qui in poi i vincoli non sono più statistici ma ingegneristici: latenza, costo per chiamata, e un mondo che nel frattempo cambia.
La differenza fra progettare un ponte e mantenerlo aperto. Il progetto è finito; il traffico no. E il fiume sotto non è quello di tre anni fa — i clienti di oggi non si comportano come quelli su cui il modello ha imparato.
Tutto il database una volta a notte, oppure una riga per volta dietro un'API in pochi millisecondi. Sono due sistemi diversi: sceglilo prima di addestrare, non dopo.
Quantizzazione (meno bit per peso), pruning (via i pesi inutili), distillazione (un modello piccolo addestrato a imitare quello grande). Quattro volte più veloce a parità quasi esatta di qualità.
Le colonne calcolate in un modo nel notebook e in un altro nel servizio. Silenzioso, frequente, e sufficiente a far crollare un modello sano.
Il mondo si muove e il modello resta fermo. Si sorvegliano le distribuzioni in ingresso e le metriche in uscita, e si riaddestra a scadenza fissa o quando l'allarme scatta.
Il modello dice chi rischia di andarsene, non chi resterà grazie alla telefonata: alcuni se ne vanno comunque, altri restano anche senza chiamata. Per saperlo serve l'uplift: confrontare contattati e gruppo di controllo e prevedere la differenza, non il rischio. E attenzione al riaddestramento: i clienti che il call center ha salvato ora sembrano «rimasti», e il modello impara che non erano a rischio. Per addestrare si usa solo il gruppo di controllo, o si tiene conto dell'intervento.
Come si sceglie, in pratica
| Se hai… | Prova prima | Poi eventualmente | Non serve |
|---|---|---|---|
| Righe e colonne, etichette | Regressione logistica come riferimento | Gradient boosting; sotto ~50.000 righe anche un foundation model tabellare (TabPFN e simili) | Una rete addestrata da zero sui tuoi dati |
| Immagini | Un modello pre-addestrato, fine-tuned | CNN o vision transformer su misura | Partire da zero |
| Testo | Un LLM via API, o embedding + classificatore | Fine-tuning di un modello piccolo | Addestrare da zero |
| Serie storiche | Baseline stagionale, un foundation model zero-shot (Chronos, TimesFM), boosting su feature temporali | Modelli specializzati o fine-tuning | Divisione casuale dei dati |
| Nessuna etichetta | Clustering ed esplorazione | Etichettare a mano qualche centinaio di casi | Aspettarsi una metrica oggettiva |
| Pochi esempi, molte colonne | Lineare regolarizzato, SVM | Un foundation model tabellare pre-addestrato; raccogliere più dati | Addestrare da zero qualcosa con molti parametri |
L'algoritmo è la parte facile.
Sette famiglie, un solo schema sotto: una funzione con dei numeri regolabili, una misura dell'errore, una procedura che li muove. Quello che distingue un progetto riuscito da uno fallito quasi mai è la scelta del modello — sono i dati, la metrica e ciò che succede il giorno dopo il rilascio.