Aumenta l'accuratezza e la robustezza del modello con i Model Ensemble. Esplora tecniche come bagging, boosting, stacking e applicazioni nel mondo reale.
Un insieme di modelli è una tecnica sofisticata di apprendimento automatico (ML) in cui le previsioni di modelli indipendenti vengono combinati per generare un unico risultato finale di qualità superiore. Piuttosto che affidarsi alla capacità capacità decisionale di un solo algoritmo, un ensemble sfrutta il principio della "saggezza della folla" per migliorare l'accuratezza e la stabilità complessive. migliorare l'accuratezza e la stabilità complessive. Aggregando i risultati risultati di diversi modelli, gli ingegneri possono ridurre in modo significativo il rischio di di overfitting al set di addestramento e creare sistemi che sistemi molto più robusti contro il rumore dei dati dati di addestramento. Questo approccio è spesso utilizzato per risultati allo stato dell'arte in ambienti competitivi come le Kaggle.
L'efficacia di un insieme di modelli dipende dalla diversità delle parti che lo compongono. Se tutti i modelli hanno le stesse debolezze identiche, la loro combinazione non offre alcun miglioramento. Per questo motivo, i professionisti spesso introducono la diversità variando l'architettura della rete architettura della rete neurale, utilizzando diversi sottoinsiemi di dati diversi o applicando strategie strategie di incremento dei dati.
Esistono tre metodi principali per costruire gli ensemble:
Gli ensemble di modelli sono fondamentali nei settori in cui la precisione è fondamentale e il costo dell'errore è elevato.
È importante distinguere un ensemble di modelli standard da una Miscela di esperti (MoE). Sebbene entrambi utilizzino più sottomodelli, operano in modo diverso durante l'inferenza:
Mentre le biblioteche come PyTorch consentono architetture di ensemble complesse
è possibile ottenere un ensemble di base per l'inferenza semplicemente caricando più modelli ed elaborando lo stesso input.
stesso input. L'esempio seguente mostra come caricare due modelli YOLO distinti utilizzando il metodo
ultralytics pacchetto.
from ultralytics import YOLO
# Load two different model variants to create a diverse ensemble
model_a = YOLO("yolo11n.pt") # Nano model
model_b = YOLO("yolo11s.pt") # Small model
# Perform inference on an image with both models
# In a production ensemble, you would merge these results (e.g., via NMS)
results_a = model_a("https://ultralytics.com/images/bus.jpg")
results_b = model_b("https://ultralytics.com/images/bus.jpg")
print(f"Model A detections: {len(results_a[0].boxes)}")
print(f"Model B detections: {len(results_b[0].boxes)}")
L'implementazione degli ensemble richiede un'attenta considerazione delle risorse di MLOps, poiché la distribuzione di modelli multipli aumenta l'utilizzo della memoria. Tuttavia, per i compiti che richiedono le massime prestazioni possibili nella computer vision (CV), il compromesso è spesso giustificato. giustificato.