Ensemble
Scopri come l'ensemble learning migliora l'accuratezza e riduce l'overfitting. Impara a combinare più modelli come Ultralytics YOLO26 per risultati superiori nella visione artificiale.
L'apprendimento d'insieme (Ensemble learning) è una strategia solida nel machine learning (ML) in cui più modelli indipendenti, spesso definiti "weak learners", vengono combinati per produrre un unico output predittivo. La premessa fondamentale è che un gruppo di modelli può spesso raggiungere una accuracy più elevata e una migliore generalizzazione rispetto a qualsiasi singolo modello che agisce da solo. Aggregando le predizioni di diversi algoritmi, i metodi d'insieme riducono efficacemente il rischio di overfitting sui training data, attenuano gli errori casuali e migliorano la stabilità complessiva del sistema. Questo approccio è paragonabile a consultare un gruppo di esperti invece di affidarsi al parere di un singolo individuo per prendere una decisione critica.
Link to this sectionMeccanismi dell'Apprendimento d'Insieme#
L'efficacia dei metodi d'insieme risiede nella loro capacità di manipolare il bias-variance tradeoff. I singoli modelli possono soffrire di alta varianza (sensibilità al rumore) o alto bias (semplificazione eccessiva). L'Ensembling mitiga questi problemi attraverso tecniche specifiche:
- Bagging (Bootstrap Aggregating): Questa tecnica prevede l'addestramento di più istanze dello stesso algoritmo su diversi sottoinsiemi del dataset. L'esempio più famoso è l'algoritmo Random Forest, che aggrega le decisioni di molti decision trees per ridurre la varianza.
- Boosting: A differenza del bagging, il boosting addestra i modelli in sequenza. Ogni nuovo modello si concentra sulla correzione degli errori commessi da quelli precedenti. Framework popolari come LightGBM e CatBoost utilizzano questo metodo per creare sistemi predittivi altamente accurati.
- Stacking (Stacked Generalization): Questo comporta l'addestramento di un nuovo "meta-modello" per combinare le predizioni di diversi modelli base eterogenei (ad esempio, una neural network e una Support Vector Machine).
Link to this sectionEnsembling nella Computer Vision#
Nel campo della computer vision (CV), gli ensemble sono spesso utilizzati per massimizzare le prestazioni nelle competizioni e nelle applicazioni di sicurezza critica. Per l'object detection, questo comporta spesso l'esecuzione di più modelli — come diverse versioni di YOLO26 — sulla stessa immagine. I bounding boxes risultanti vengono poi uniti utilizzando tecniche come la Non-Maximum Suppression (NMS) o la Weighted Box Fusion (WBF) per derivare le posizioni degli oggetti più probabili.
Link to this sectionApplicazioni nel mondo reale#
I metodi d'insieme sono onnipresenti nei settori in cui l'affidabilità predittiva è fondamentale.
-
Medical Diagnosis and Imaging: Nel settore sanitario, evitare falsi negativi è cruciale. Un ensemble potrebbe combinare una Convolutional Neural Network (CNN) addestrata su radiografie con un Vision Transformer (ViT) per rilevare anomalie. Il consenso tra i modelli fornisce un punteggio di confidenza più elevato, assistendo i radiologi nel detecting tumors o nella diagnosi di condizioni rare.
-
Financial Fraud Detection: Le istituzioni finanziarie utilizzano gli ensemble per analizzare i pattern di transazione. Combinando modelli di logistic regression con macchine di gradient boosting, il sistema può rilevare sottili indicatori di frode che un singolo modello potrebbe perdere, mantenendo bassi i tassi di falsi allarmi.
Link to this sectionImplementazione dell'Ensembling dei Modelli con Python#
Puoi simulare un ensemble di inferenza di base caricando più modelli addestrati e generando predizioni per lo stesso input. La Ultralytics Platform ti consente di addestrare facilmente queste varianti. L'esempio seguente mostra il caricamento di due diversi modelli Ultralytics YOLO (YOLO26n e YOLO26s) per verificare le rilevazioni su un'immagine.
from ultralytics import YOLO
# Load two distinct YOLO26 model variants
# 'n' (nano) is faster, 's' (small) is more accurate
model_nano = YOLO("yolo26n.pt")
model_small = YOLO("yolo26s.pt")
# Define the image source
source = "https://ultralytics.com/images/bus.jpg"
# Run inference with both models
results_n = model_nano(source)
results_s = model_small(source)
# Compare the number of objects detected by each model
print(f"Nano Model Found: {len(results_n[0].boxes)} objects")
print(f"Small Model Found: {len(results_s[0].boxes)} objects")Link to this sectionEnsemble vs. Data Augmentation#
È importante distinguere l'apprendimento Ensemble dalla Data Augmentation.
- L'Ensemble si concentra sulla fase di architettura e predizione, combinando più modelli distinti addestrati per migliorare i risultati.
- La Data Augmentation si concentra sulla fase dei training data, aumentando artificialmente la diversità del dataset (ad esempio, tramite rotation or flipping) per addestrare un unico modello più robusto.
Mentre la data augmentation aiuta un singolo modello ad apprendere meglio, l'apprendimento d'insieme aiuta più modelli a verificare i rispettivi output. Entrambe le strategie vengono spesso utilizzate insieme per ottenere risultati all'avanguardia in attività come l'instance segmentation e la pose estimation.






