Steigern Sie die Modellgenauigkeit und -robustheit mit Model Ensembles. Entdecken Sie Techniken wie Bagging, Boosting, Stacking und Anwendungen in der Praxis.
Ein Modell-Ensemble ist eine anspruchsvolle Technik des maschinellen Lernens (ML), bei dem Vorhersagen aus Vorhersagen aus mehreren unabhängigen Modellen kombiniert werden, um ein einziges, besseres Endergebnis zu erzielen. Anstatt sich auf die Entscheidungsfähigkeit eines einzelnen Algorithmus zu verlassen, nutzt ein Ensemble das Prinzip der "Weisheit der Menge", um um die Gesamtgenauigkeit und Stabilität zu verbessern. Durch die Zusammenführung der Ergebnisse verschiedener Modelle können die Ingenieure das Risiko einer einer Überanpassung an die Trainingsmenge erheblich reduzieren und Systeme weitaus robuster gegenüber dem Rauschen in den Trainingsdaten sind. Dieser Ansatz wird häufig verwendet, um in wettbewerbsorientierten Umgebungen wie Kaggle-Wettbewerben zu Kaggle-Wettbewerben.
Die Wirksamkeit eines Modellensembles hängt von der Vielfalt seiner Bestandteile ab. Wenn alle Modelle identische Schwächen haben, bringt ihre Kombination keine Verbesserung. Daher wird in der Praxis oft Vielfalt eingeführt, indem die Architektur des neuronalen Netzes, die Verwendung verschiedener Teilmengen von Daten oder die Anwendung verschiedener Strategien zur Datenerweiterung.
Es gibt drei Hauptmethoden für die Bildung von Ensembles:
Modell-Ensembles sind von zentraler Bedeutung in Branchen, in denen es auf Präzision ankommt und die Kosten für Fehler hoch sind.
Es ist wichtig, ein Standardmodell-Ensemble von einer Mischung von Experten (Mixture of Experts, MoE). Beide verwenden zwar mehrere Teilmodelle verwenden, arbeiten sie während der Inferenz unterschiedlich:
Während Bibliotheken wie PyTorch ermöglichen komplexe Ensemble
Architekturen zu ermöglichen, können Sie ein einfaches Ensemble für die Inferenz erreichen, indem Sie einfach mehrere Modelle laden und die gleiche Eingabe verarbeiten.
gleiche Eingabe. Das folgende Beispiel zeigt, wie man zwei verschiedene YOLO unter Verwendung der
ultralytics Paket.
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)}")
Die Implementierung von Ensembles erfordert eine sorgfältige Abwägung der MLOps-Ressourcen, da der Einsatz mehrere Modelle den Speicherverbrauch erhöhen. Bei Aufgaben, die die höchstmögliche Leistung in der Computer Vision (CV) erfordern, ist dieser Kompromiss oft gerechtfertigt.