Ensemble
Scopri come l’apprendimento d’insieme migliora la precisione e riduce l’overfitting. Impara a combinare più modelli, come Ultralytics YOLO26, per ottenere risultati superiori nella visione artificiale.
L'apprendimento tramite ensemble è una strategia robusta nell'apprendimento automatico (ML) in cui più modelli indipendenti, spesso definiti "weak learner", vengono combinati per produrre un'unica previsione. Il principio fondamentale è che un gruppo di modelli può spesso raggiungere una maggiore accuratezza e una migliore capacità di generalizzazione rispetto a qualsiasi singolo modello operante autonomamente. Aggregando le previsioni di algoritmi diversi, i metodi ensemble riducono efficacemente il rischio di [overfitting](https://ultralytics-translation-2.invalid sui dati di addestramento, attenuano gli errori casuali e migliorano la stabilità complessiva del sistema. Questo approccio è analogo al consultare un gruppo di esperti invece di affidarsi all'opinione di una sola persona per prendere una decisione critica.
Meccanismi dell'apprendimento tramite ensemble#
L'efficacia dei metodi ensemble risiede nella loro capacità di gestire il compromesso bias-varianza. I singoli modelli possono soffrire di varianza elevata (sensibilità al rumore) o bias elevato (eccessiva semplificazione). L'ensemble learning attenua questi problemi attraverso tecniche specifiche:
- Bagging (aggregazione bootstrap): Questa tecnica consiste nell'addestrare più istanze dello stesso algoritmo su diversi sottoinsiemi del dataset. L'esempio più famoso è l'algoritmo Random Forest, che aggrega le decisioni di molti alberi decisionali 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 dai precedenti. Framework diffusi come LightGBM e CatBoost utilizzano questa tecnica per creare sistemi predittivi altamente accurati.
- Stacking (generalizzazione a strati): Consiste nell'addestrare un nuovo "meta-modello" per combinare le previsioni di diversi modelli di base eterogenei (ad esempio, una rete neurale e una macchina a vettori di supporto).
Ensemble nella visione artificiale#
Nel campo della visione artificiale (CV), gli ensemble vengono utilizzati frequentemente per massimizzare le prestazioni nelle competizioni e nelle applicazioni critiche per la sicurezza. Per il rilevamento degli oggetti, spesso si eseguono più modelli, ad esempio versioni diverse di YOLO26, sulla stessa immagine. I riquadri di delimitazione risultanti vengono quindi uniti utilizzando tecniche come la soppressione non massima (NMS) o la fusione pesata dei riquadri (WBF) per ricavare le posizioni degli oggetti più probabili.
Applicazioni nel mondo reale#
I metodi ensemble sono onnipresenti nei settori in cui l'affidabilità delle previsioni è fondamentale.
-
Diagnosi e imaging medico: In ambito sanitario, evitare i falsi negativi è fondamentale. Un ensemble potrebbe combinare una rete neurale convoluzionale (CNN) addestrata su radiografie con un Vision Transformer (ViT) per rilevare anomalie. Il consenso tra i modelli fornisce un punteggio di confidenza più elevato, aiutando i radiologi a rilevare i tumori o a diagnosticare condizioni rare.
-
Rilevamento delle frodi finanziarie: Gli istituti finanziari utilizzano gli ensemble per analizzare i modelli delle transazioni. Combinando modelli di regressione logistica con modelli di gradient boosting, il sistema può rilevare indicatori sottili di frode che un singolo modello potrebbe non individuare, mantenendo al contempo bassi i tassi di falsi allarmi.
Implementazione di ensemble di modelli con Python#
Puoi simulare un ensemble di inferenza di base caricando più modelli addestrati e generando previsioni per lo stesso input. La Ultralytics Platform ti consente di addestrare facilmente queste varianti. L'esempio seguente mostra come caricare due diversi modelli Ultralytics YOLO (YOLO26n e YOLO26s) per verificare i rilevamenti 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")Ensemble e aumento dei dati#
È importante distinguere l'apprendimento Ensemble dall'aumento dei dati.
- Ensemble si concentra sulla fase di architettura e di previsione, combinando più modelli distinti già addestrati per migliorare i risultati.
- Aumento dei dati si concentra sulla fase dei dati di addestramento, aumentando artificialmente la diversità del dataset (ad esempio, tramite la rotazione o il ribaltamento) per addestrare un singolo modello più robusto.
Mentre l'aumento dei dati aiuta un singolo modello ad apprendere meglio, l'apprendimento tramite ensemble aiuta più modelli a verificare reciprocamente i propri output. Entrambe le strategie vengono spesso utilizzate insieme per ottenere risultati all'avanguardia in attività come la segmentazione delle istanze e la stima della posa.









