CAPIRE L’IA · 4 di N
Perché funzionare sui dati di addestramento non significa funzionare nel mondo reale.
Due modelli affrontano lo stesso esercizio. Il primo commette qualche errore. Il secondo riproduce quasi perfettamente tutti gli esempi che gli abbiamo mostrato.
Quale sceglieresti?
La tentazione è premiare il secondo. Ma manca un’informazione decisiva: come si comportano quando gli esempi cambiano? Uno studente può ricordare le soluzioni di un eserciziario e trovarsi in difficoltà davanti a una variante. Anche un modello può adattarsi molto bene ai dati disponibili senza aver ricavato una regola utile per i casi successivi. L’analogia aiuta, purché non confondiamo il calcolo del modello con la comprensione umana.
Nei primi articoli abbiamo visto che cosa si apprende e quali segnali guidano l’apprendimento. Ora affrontiamo la prova più importante: la generalizzazione, cioè la capacità di ottenere buoni risultati su casi nuovi pertinenti al compito.
Un esperimento: tre modelli, gli stessi esempi
Costruiamo un piccolo mondo di cui conosciamo le regole. Scegliamo 18 valori di ingresso, indicati con x, fra 0 e 1. Per ciascuno generiamo un risultato:
y = 1 + 2x + ε
La lettera greca ε, epsilon, indica un rumore casuale: una variazione che si aggiunge alla relazione lineare. Qui il rumore ha media zero e deviazione standard 0,23. Tutte le quantità dell’esperimento sono adimensionali.
I punti non cadono esattamente su una retta. In un’applicazione, scostamenti del genere potrebbero dipendere da errori di misura o da fattori che non osserviamo. Nel nostro esperimento sono stati aggiunti deliberatamente.
Proviamo tre modelli: una costante, che restituisce sempre lo stesso valore; una retta; e un polinomio di grado 15, una curva molto più flessibile. Tutti vengono adattati agli stessi 18 esempi minimizzando la somma degli errori al quadrato.

La costante trascura un andamento evidente: al crescere di x, i risultati tendono ad aumentare. La retta coglie quell’andamento, pur passando a una certa distanza da diversi punti. Il polinomio segue molte delle irregolarità del campione e passa quasi su ogni osservazione.
La linea tratteggiata mostra la relazione che abbiamo usato per generare i dati. Possiamo disegnarla perché questo è un esperimento simulato. Nei problemi reali, quella linea di riferimento generalmente non la conosciamo.
La gara cambia quando arrivano i dati nuovi
Generiamo altri 600 esempi indipendenti, con ingressi nello stesso intervallo e lo stesso meccanismo di rumore. Nessuno dei tre modelli li ha usati per apprendere i parametri. Li impieghiamo come insieme di validazione, per confrontare le alternative.
Misuriamo gli errori con la radice dell’errore quadratico medio, o RMSE. Si calcolano gli scarti tra previsioni e risultati osservati, li si eleva al quadrato, se ne fa la media e infine si estrae la radice. Un valore più basso indica previsioni mediamente migliori secondo questo criterio.

La retta ha un RMSE di circa 0,20 sul training e 0,23 sulla validazione. Il polinomio scende a circa 0,04 sul training, ma sale a 1,42 sui dati nuovi. La costante rimane poco accurata in entrambi i casi.
Il modello che sembrava quasi impeccabile ha inseguito anche le oscillazioni casuali dei primi 18 punti. Nei nuovi esempi il rumore cambia: riprodurre le particolarità del vecchio campione non lo aiuta.
Il punto non è che una curva flessibile sia sempre una cattiva scelta. È che il suo successo sul training non basta a giustificarla. Il confronto classico fra modelli troppo rigidi e troppo flessibili è illustrato anche nell’esempio didattico di scikit-learn; i dati e i valori mostrati qui sono stati calcolati per questo articolo.
Underfitting e overfitting: due modi di imparare male
Il modello costante soffre di underfitting, o sottoadattamento: non riesce a rappresentare una relazione rilevante. Gli errori restano elevati già sugli esempi di addestramento.
Il polinomio mostra invece overfitting, o sovraadattamento: aderisce a dettagli del campione che non si trasferiscono bene ai casi nuovi. La distanza fra errore di addestramento ed errore su dati indipendenti è un segnale da osservare.
Un divario piccolo, però, non basta a dimostrare che un modello sia buono: la costante sbaglia quasi allo stesso modo sui due insiemi. E un divario grande non identifica da solo la causa: potrebbero esserci differenze fra i dati o errori nella valutazione.
Il titolo parla di “imparare a memoria”, ma la distinzione tecnica è più sottile. Memorizzazione e generalizzazione possono coesistere, e ottenere errore nullo sul training non impedisce necessariamente di funzionare sui dati nuovi. Le grandi reti neurali hanno mostrato quanto sia incompleto spiegare tutto contando semplicemente i parametri. Zhang e colleghi hanno studiato proprio questa tensione.
Il ponte matematico: l’errore che vediamo e quello che ci interessa
Indichiamo il modello con fθ, dove θ, theta, raccoglie i parametri appresi. Ogni esempio contiene un ingresso xi e un risultato yi. Una funzione di perdita ℓ misura quanto la previsione differisce dal risultato.
Errore empirico sul training
R̂train(θ) = (1/n) ∑i=1…n ℓ(fθ(xi), yi)
Si legge: la media delle perdite sugli n esempi disponibili.
Errore atteso sui casi di interesse
RP(θ) = 𝔼(X,Y)∼P[ℓ(fθ(X), Y)]
Si legge: la perdita media su esempi estratti dalla distribuzione P che descrive la popolazione di casi da affrontare. Il simbolo 𝔼 indica una media probabilistica, detta valore atteso.
Nel primo caso facciamo una media su un elenco finito che possediamo. Nel secondo ci interessa il comportamento su tutti i casi che quel processo potrebbe produrre, comprese situazioni non ancora osservate.
Ridurre la prima quantità è l’obiettivo immediato di molti metodi di addestramento. Ridurre la seconda è ciò che vorremmo ottenere nell’uso. Le due quantità sono collegate, ma non coincidono.
Nell’esperimento abbiamo usato la perdita quadratica, ℓ = (previsione − risultato)2; il grafico riporta la radice della sua media, il RMSE. Anche conoscendo la retta generatrice rimarrebbe un errore dovuto al rumore indipendente: prevedere la tendenza non permette di anticipare ogni oscillazione casuale.
Training, validazione e test: tre ruoli da separare
Per sviluppare e valutare un modello distinguiamo tre ruoli. Sul training apprendiamo i parametri. Con la validazione scegliamo tra alternative, per esempio il grado del polinomio: questa scelta è un iperparametro, diverso dai coefficienti appresi. Il test finale serve a valutare la soluzione già scelta, senza guidarne ulteriori modifiche.

Se continuiamo a modificare il modello dopo ogni risultato sul test, anche quel test entra nelle nostre decisioni. Non è più una verifica finale indipendente. Nell’esperimento dell’articolo confrontiamo quindi dati di validazione: non abbiamo chiamato “test finale” il campione usato per scegliere fra le tre curve.
Con pochi dati si può usare la validazione incrociata: si ripete il confronto alternando le parti usate per apprendere e validare. La procedura deve comunque rispettare dipendenze e ordine temporale. La documentazione di scikit-learn sulla valutazione descrive queste distinzioni.
Separare le righe non basta
Torniamo al centro di assistenza del terzo articolo. Un incidente può generare venti richieste quasi identiche. Se alcune finiscono nel training e altre nel test, il sistema incontra in valutazione varianti di qualcosa che ha già visto. Un punteggio alto può sovrastimare la capacità di affrontare incidenti nuovi.
La separazione va costruita in funzione dell’uso previsto: per incidente, per cliente oppure nel tempo. Se vogliamo prevedere le richieste del mese prossimo, una verifica su un periodo successivo è spesso più pertinente di un rimescolamento casuale dell’intero archivio.
Un’altra trappola è la fuga di informazioni, o data leakage. Immaginiamo di prevedere alla creazione del ticket se sarà risolto in ritardo, includendo però un campo compilato alla chiusura. Il modello dispone durante lo sviluppo di un’informazione che non avrà al momento della previsione.
Anche la preparazione dei dati può introdurre contaminazioni: per esempio, scegliere le variabili guardando tutto l’archivio prima di dividerlo. Le trasformazioni apprese dai dati vanno stimate sui dati di training e poi applicate agli altri insiemi; in validazione incrociata, questo vale dentro ogni suddivisione. La guida di scikit-learn sugli errori comuni mostra perché questa disciplina conta.
E se il mondo cambia dopo il test?
Finora abbiamo generato dati nuovi con lo stesso meccanismo dei vecchi. È un’ipotesi favorevole: gli esempi cambiano, ma le regolarità di fondo restano valide.
Nella pratica può cambiare anche quel meccanismo. Il centro di assistenza introduce un nuovo applicativo; un reparto cambia competenze; un diverso gruppo di utenti formula le richieste in modo diverso. La distribuzione dei casi si sposta. Parliamo di distribution shift.

Il quarto grafico mostra un caso particolarmente istruttivo: gli ingressi restano nello stesso intervallo, ma a parità di x il risultato si sposta verso l’alto. Il modello continua a calcolare correttamente la vecchia relazione e sottostima sistematicamente i nuovi risultati.
Questa difficoltà può emergere anche con un modello che non era sovraadattato. Generalizzare a nuovi esempi delle stesse condizioni e funzionare in condizioni diverse sono prove differenti. Il progetto di ricerca WILDS studia proprio valutazioni che includono cambiamenti di dominio e contesto osservati in applicazioni reali.
Un test affidabile deve quindi avvicinarsi ai casi che ci interessa affrontare. La sua numerosità conta, ma non può compensare da sola una popolazione sbagliata. E dopo il rilascio occorre continuare a osservare gli errori, quando gli esiti diventano disponibili.
Che cosa aiuta a generalizzare?
Non esiste una manopola universale. Possiamo agire su diversi aspetti, verificando il beneficio sulla validazione:
- Dati più pertinenti e vari. Coprire condizioni, gruppi e casi difficili dell’uso previsto; aggiungere copie quasi identiche non offre la stessa informazione.
- Capacità del modello adeguata. Un modello troppo rigido perde relazioni utili; uno flessibile richiede un controllo coerente con dati e compito.
- Regolarizzazione. Introdurre vincoli o penalità che orientino la soluzione; per esempio, scoraggiare coefficienti eccessivamente grandi. La forza della penalità si sceglie durante la validazione.
- Arresto anticipato. Nei metodi iterativi si può scegliere il punto di addestramento usando la validazione, anziché continuare solo perché il training migliora.
- Valutazione per casi e sottogruppi. Una buona media può nascondere risultati deboli proprio nelle condizioni più importanti.
Queste scelte non sostituiscono un confronto con una soluzione semplice. Nel nostro esperimento la retta è un riferimento utile; in altri casi potrebbe esserlo una regola operativa già in uso. La complessità deve dimostrare di portare un vantaggio.
La stessa domanda vale per gli LLM
Un modello linguistico può riprodurre passaggi incontrati in addestramento e allo stesso tempo riuscire su richieste nuove. Per valutare una capacità, però, non basta mostrargli sempre esercizi famosi con formulazioni ricorrenti.
Se un benchmark o le sue soluzioni sono entrati nei dati di addestramento, una parte del risultato potrebbe riflettere familiarità con quel materiale. Per mettere alla prova la capacità che ci interessa possiamo costruire varianti, cambiare vincoli e usare problemi nuovi con risposte verificabili.
Anche qui bisogna definire il compito: generalizzare nella previsione del testo non garantisce automaticamente correttezza fattuale o affidabilità in ogni uso. La domanda resta la stessa del nostro piccolo esperimento: quale prestazione abbiamo misurato, e su quali casi nuovi?
Tre cose da conservare
- Il training mostra quanto il modello si adatta agli esempi disponibili. Non dimostra, da solo, la qualità delle previsioni future.
- La generalizzazione richiede una verifica indipendente e pertinente. Separare i dati significa anche rispettare tempo, gruppi e informazioni realmente disponibili.
- Il mondo può cambiare. Un buon risultato nelle condizioni iniziali non garantisce la stessa prestazione in un altro contesto.
Un modello quasi perfetto sul passato può essere una previsione fragile del futuro. Per questo, davanti a un numero impressionante, la prima domanda non dovrebbe essere soltanto “quanto è alto?”, ma “che cosa è rimasto davvero fuori dall’apprendimento?”






