Model Ensemble
Découvre comment les ensembles de modèles combinent plusieurs architectures comme Ultralytics YOLO26 pour augmenter la précision et la robustesse. Apprends les techniques clés et des conseils d'implémentation.
Un Model Ensemble est une approche stratégique en apprentissage automatique où les prédictions de plusieurs modèles individuels sont combinées pour produire un résultat final souvent plus précis et robuste que ce qu'un modèle seul pourrait atteindre. Tout comme un comité d'experts délibérant pour prendre une meilleure décision qu'un individu seul, un ensemble de modèles exploite les forces de diverses architectures pour atténuer les erreurs. Cette technique est largement utilisée pour améliorer les performances dans les tâches complexes, réduire le risque de overfitting et gérer le tradeoff entre biais et variance inhérent à la modélisation statistique.
Les mécanismes de l'assemblage#
Le principe fondamental d'un ensemble de modèles est la « diversité ». En entraînant plusieurs modèles — souvent appelés « apprentis de base » ou « apprentis faibles » — sur différents sous-ensembles de données d'entraînement ou en utilisant différents algorithmes, l'ensemble garantit que les erreurs commises par un modèle sont probablement corrigées par les autres. Dans le contexte du deep learning, cela implique souvent d'exécuter plusieurs neural networks en parallèle pendant l'inférence.
Les méthodes courantes pour combiner ces prédictions incluent :
- Vote : Utilisé en image classification, où la classe sélectionnée par la majorité des modèles devient la prédiction finale.
- Moyenne : Souvent utilisée dans les tâches de régression, où les sorties numériques sont moyennées pour lisser le bruit.
- Fusion pondérée : En object detection, des techniques comme la Weighted Box Fusion (WBF) fusionnent les boîtes englobantes de différents détecteurs en fonction des scores de confiance.
Applications concrètes#
Les ensembles de modèles sont essentiels dans les environnements à haut risque où la maximisation de la précision est primordiale et où les ressources de calcul permettent d'exécuter plusieurs modèles.
-
Diagnostics médicaux : En medical image analysis, manquer un diagnostic peut avoir de graves conséquences. Les radiologues utilisent souvent des ensembles qui combinent un Convolutional Neural Network (CNN) standard avec un Vision Transformer (ViT). Le CNN excelle dans l'analyse de texture locale, tandis que le ViT capture le contexte global, permettant au système de détecter les tumeurs avec une sensibilité supérieure à celle de chaque architecture prise isolément.
-
Conduite autonome : Les systèmes de perception dans les autonomous vehicles doivent être infaillibles. Les ingénieurs déploient fréquemment un ensemble de modèles de détection — par exemple, en fusionnant la vitesse en temps réel de YOLO26 avec la précision basée sur les transformers de RT-DETR. Cela garantit que les piétons ou les obstacles sont détectés même si un modèle a du mal avec des conditions d'éclairage spécifiques, telles que les reflets ou les ombres.
Implémentation d'ensembles avec Python#
Bien que des stratégies d'ensemble complexes puissent être construites à l'aide de bibliothèques comme Scikit-learn, tu peux créer un ensemble d'inférence de base pour la vision par ordinateur en chargeant simplement plusieurs modèles et en traitant la même entrée. L'exemple suivant montre comment charger deux modèles Ultralytics YOLO distincts pour générer des prédictions sur la même image.
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.")Ensemble de modèles vs. mélange d'experts#
Il est utile de différencier un ensemble de modèles standard d'un Mixture of Experts (MoE), un terme souvent rencontré dans la recherche moderne sur les Large Language Model (LLM).
- Ensemble de modèles : Interroge généralement chaque modèle de la collection pour chaque entrée et agrège les résultats. Cela maximise les métriques telles que le mean average precision (mAP) mais augmente considérablement la latence d'inférence et le coût de calcul. C'est une approche brute-force de la qualité.
- Mixture of Experts : Utilise un « réseau de routage » (« gating network ») pour acheminer les données vers seulement quelques sous-modèles « experts » spécifiques les mieux adaptés à l'entrée actuelle. Cela permet une scalabilité massive dans les foundation models sans la pénalité de calcul liée à l'exécution de chaque paramètre pour chaque jeton.
Avantages et considérations#
Le principal avantage de l'utilisation d'un ensemble de modèles est l'amélioration des performances. Les ensembles dominent fréquemment les classements dans les défis de science des données comme les Kaggle competitions parce qu'ils peuvent modéliser des motifs complexes que les modèles uniques manquent. Cependant, cela a un coût : le déploiement d'ensembles nécessite plus de mémoire et de puissance de calcul.
Pour les équipes cherchant à gérer ces demandes en ressources de manière efficace, la Ultralytics Platform offre des outils pour entraîner, suivre et évaluer différentes architectures de modèles. En comparant facilement les métriques de performance, les développeurs peuvent décider si le gain de précision apporté par un ensemble justifie l'infrastructure supplémentaire requise pour le déploiement dans des scénarios edge AI.






