Generalization

[generalizèiscion]

Capacità di un modello di funzionare bene su dati nuovi, mai visti in training. È l'unico vero scopo del machine learning.

La generalizzazione è la capacità di un modello di funzionare bene su dati che non ha mai visto. È l'unica cosa che conta davvero. Tutto il resto è strumento.

Un modello che ha 100% di accuracy sui dati di training ma 60% su dati nuovi non è un buon modello. È un modello che ha memorizzato. Vedi overfitting.

Idea base: i dati di training sono un campione del mondo. Il modello deve imparare la struttura del mondo, non i singoli esempi del campione. Se impara la struttura, generalizza. Se impara gli esempi, memorizza.

Come misurare generalizzazione:

  • Train/validation/test split: dividi i dati in tre. Training per addestrare, validation per regolare iperparametri, test per valutazione finale onesta.
  • Cross-validation: alterni quale fetta usi come validation. Più robusto su dataset piccoli.
  • Out-of-distribution (OOD) testing: testi su dati strutturalmente diversi. Vero stress test.

Cosa aiuta la generalizzazione:

  • Più dati: la cosa più importante. Più esempi, più struttura, meno memoria.
  • Dati diversificati: data augmentation, multi-source, variazioni.
  • Regolarizzazione: weight decay, dropout, early stopping.
  • Modelli più semplici: a parità di dati, modelli più piccoli generalizzano meglio.
  • Inductive bias: scelte architetturali che riflettono il problema (CNN per immagini, Transformer per sequenze).

Curiosità: gli LLM moderni sono enormi (centinaia di miliardi di parametri) ma generalizzano benissimo. Va contro l'intuizione classica del bias-variance tradeoff. Si chiama "double descent" e "grokking", fenomeni studiati ancora oggi. Insomma: più grande non è sempre peggio per la generalizzazione, in certe condizioni.