Ensemble

[ensèmble]

Combini più modelli diversi per ottenere previsioni migliori. Il classico "chi più ne ha più ne metta" del machine learning.

L'ensemble è una tecnica dove combini più modelli diversi per ottenere previsioni migliori di quelle di un singolo modello. Vince quasi sempre, soprattutto in competizioni come Kaggle.

L'idea base: ogni modello ha i suoi errori, ma se combini modelli diversi, gli errori tendono a cancellarsi e i punti di forza si sommano.

Tecniche principali:

  • Bagging: addestri lo stesso modello su sottocampioni casuali del dataset, fai media. Riduce varianza. Random Forest è bagging di alberi di decisione.
  • Boosting: addestri modelli sequenzialmente, ognuno corregge gli errori del precedente. Riduce bias. XGBoost, LightGBM, AdaBoost: tutti boosting.
  • Stacking: addestri un meta-modello che impara a combinare gli output di altri modelli.
  • Voting: ogni modello vota, vince la maggioranza (classificazione) o si fa media (regressione).

Esempi famosi:

  • Netflix Prize (2009): vinse un ensemble di centinaia di modelli.
  • Kaggle: praticamente ogni vincitore degli ultimi 10 anni è un ensemble.
  • AlphaGo: combinava policy network, value network, Monte Carlo tree search.

Problemi:

  • Computazionalmente costoso: addestri N modelli, fai N inferenze.
  • Difficile da deployare: latenza moltiplicata.
  • Marginal gain: spesso passi da 95% a 95.5% accuracy. Vale la pena? Dipende.

Negli LLM moderni l'ensemble è meno comune (ogni modello costa milioni). Si fa in piccolo con tecniche come "self-consistency": chiedi al modello la stessa domanda più volte con temperatura diversa, prendi la risposta più frequente. Costa più inferenze ma migliora la qualità.

Strategia di mestiere: parti con un modello solo, ben fatto. Se serve l'ultimo punto percentuale di accuracy, ensemble. Non parti mai dall'ensemble.