Scopri come gli insiemi di modelli combinano più architetture come Ultralytics per aumentare la precisione e la robustezza. Impara le tecniche chiave e i suggerimenti per l'implementazione.
Un ensemble di modelli è un approccio strategico nell'apprendimento automatico in cui le previsioni di più modelli individuali vengono combinate per produrre un risultato finale che spesso è più accurato e robusto di quello che un singolo modello potrebbe ottenere da solo. Proprio come un comitato di esperti che delibera per raggiungere una decisione migliore rispetto a quella che potrebbe prendere un singolo individuo, un ensemble di modelli sfrutta i punti di forza di diverse architetture per mitigare gli errori. Questa tecnica è ampiamente utilizzata per migliorare le prestazioni in compiti complessi, ridurre il rischio di overfitting e gestire il compromesso intrinseco tra bias e varianza che si riscontra nella modellazione statistica .
Il principio fondamentale alla base di un ensemble di modelli è la "diversità". Addestrando più modelli, spesso denominati "base learners" o "weak learners", su diversi sottoinsiemi di dati di addestramento o utilizzando algoritmi diversi, l' ensemble garantisce che gli errori commessi da un modello vengano corretti dagli altri. Nel contesto del deep learning, ciò comporta spesso l'esecuzione di più reti neurali in parallelo durante l' inferenza.
I metodi comuni per combinare queste previsioni includono:
Gli insiemi di modelli sono essenziali in ambienti ad alto rischio in cui massimizzare l' accuratezza è fondamentale e le risorse computazionali consentono l' esecuzione di più modelli.
Sebbene sia possibile creare strategie di ensemble complesse utilizzando librerie come Scikit-learn, è possibile creare un ensemble di inferenza di base per la visione artificiale semplicemente caricando più modelli ed elaborando lo stesso input. L'esempio seguente mostra come caricare due modelli distinti Ultralytics YOLO per generare previsioni sulla stessa immagine.
from ultralytics import YOLO
# Load two different model variants to create a diverse ensemble
model_a = YOLO("yolo26n.pt") # Nano model (Speed focused)
model_b = YOLO("yolo26s.pt") # Small model (Higher accuracy)
# Perform inference on an image with both models
# In production, results are typically merged programmatically
results_a = model_a("https://ultralytics.com/images/bus.jpg")
results_b = model_b("https://ultralytics.com/images/bus.jpg")
print(f"Model A detected {len(results_a[0].boxes)} objects.")
print(f"Model B detected {len(results_b[0].boxes)} objects.")
È utile distinguere un insieme di modelli standard da una Mixture of Experts (MoE), un termine spesso utilizzato nella moderna ricerca sui modelli linguistici di grandi dimensioni (LLM).
Il vantaggio principale dell'utilizzo di un insieme di modelli è il miglioramento delle prestazioni. Gli insiemi spesso dominano le classifiche nelle sfide di data science come le competizioni Kaggle perché sono in grado di modellare schemi complessi che i modelli singoli non riescono a cogliere. Tuttavia, ciò ha un costo: l'implementazione di insiemi richiede più memoria e potenza di calcolo.
Per i team che desiderano gestire in modo efficiente queste richieste di risorse, Ultralytics offre strumenti per addestrare, track e confrontare diverse architetture di modelli. Confrontando facilmente le metriche delle prestazioni, gli sviluppatori possono decidere se il guadagno in termini di accuratezza ottenuto da un ensemble giustifica l'infrastruttura aggiuntiva necessaria per l'implementazione in scenari di IA edge.