Améliorez la précision et la robustesse des modèles grâce aux ensembles de modèles. Explorez des techniques telles que le bagging, le boosting, le stacking et les applications concrètes.
Un ensemble de modèles est une technique sophistiquée d'apprentissage l'apprentissage machine (ML) où les prédictions de de plusieurs modèles indépendants sont combinées pour générer un résultat final unique et supérieur. Plutôt que de s'appuyer sur la capacité de décision d'un seul algorithme, un ensemble tire parti de la "sagesse de la foule". capacité de décision d'un seul algorithme, un ensemble tire parti du principe de la "sagesse de la foule" pour améliorer la précision et la stabilité globales. améliorer la précision et la stabilité globales. En agrégeant les En agrégeant les résultats de divers modèles, les ingénieurs peuvent réduire de manière significative le risque de surajustement à l'ensemble d'apprentissage et de surestimation des coûts. d'adaptation excessive à l'ensemble d'apprentissage et créer des systèmes qui qui sont beaucoup plus robustes face au bruit dans les données d'apprentissage. Cette approche est fréquemment utilisée pour pour obtenir des résultats de pointe dans des environnements compétitifs tels que les concours Kaggle. Kaggle.
L'efficacité d'un ensemble de modèles dépend de la diversité des éléments qui le composent. Si tous les modèles ont des faiblesses identiques, leur combinaison n'apporte aucune amélioration. C'est pourquoi les praticiens introduisent souvent de la diversité en faisant varier l'architecture du l 'architecture du réseau neuronal, en utilisant différents différents sous-ensembles de données ou en appliquant stratégies distinctes d'enrichissement des données.
Il existe trois méthodes principales pour construire des ensembles :
Les ensembles de modèles sont essentiels dans les secteurs où la précision est cruciale et où le coût de l'erreur est élevé.
Il est important de différencier un ensemble de modèles standard d'un mélange d'experts (MoE). Bien que les deux utilisent plusieurs sous-modèles, ils fonctionnent différemment pendant l'inférence :
Alors que des bibliothèques comme PyTorch permettent des architectures d'ensemble complexes
vous pouvez obtenir un ensemble de base pour l'inférence en chargeant simplement plusieurs modèles et en traitant les mêmes données.
même entrée. L'exemple suivant montre comment charger deux modèles YOLO distincts à l'aide de la commande
ultralytics l'emballage.
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)}")
La mise en œuvre d'ensembles nécessite une attention particulière aux ressources de MLOps. ressources de MLOps, car le déploiement de plusieurs modèles augmente l'utilisation de la mémoire. Toutefois, pour les tâches exigeant les meilleures performances possibles dans le domaine de la vision par ordinateur, le compromis est souvent difficile à trouver. vision artificielle (CV), le compromis est souvent justifié.