Aumenta la precisión y la robustez del modelo con los Model Ensembles (ensambles de modelos). Explora técnicas como bagging, boosting, stacking y aplicaciones del mundo real.
Un conjunto de modelos es una sofisticada técnica de aprendizaje automático (AM) en la que se combinan múltiples modelos independientes se combinan para generar un resultado final único y superior. En lugar de confiar en la capacidad de decisión de un algoritmo, un conjunto aprovecha el principio de la "sabiduría de la multitud" para mejorar la precisión y la estabilidad generales. para mejorar la precisión y la estabilidad generales. Al agregar los resultados de diversos modelos, los ingenieros pueden reducir significativamente el riesgo de de sobreajuste del conjunto de entrenamiento y crear sistemas mucho más robustos frente al ruido de los los datos de entrenamiento. Este enfoque se utiliza con frecuencia para resultados de vanguardia en entornos competitivos como los concursos competiciones Kaggle.
La eficacia de un conjunto de modelos depende de la diversidad de sus componentes. Si todos los modelos Si todos los modelos tienen los mismos puntos débiles, su combinación no aporta ninguna mejora. Por ello, los profesionales suelen introducir la diversidad variando la arquitectura de la red neuronal, utilizando subconjuntos de datos, o aplicando distintas estrategias de aumento de datos.
Existen tres métodos principales para construir conjuntos:
Los conjuntos de modelos son fundamentales en sectores en los que la precisión es crítica y el coste del error es elevado.
Es importante diferenciar un conjunto de modelos estándar de una Mezcla de Expertos (MoE). Aunque ambos utilizan múltiples submodelos, funcionan de forma diferente durante la inferencia:
Mientras que bibliotecas como PyTorch permiten arquitecturas de conjunto complejas
para la inferencia simplemente cargando varios modelos y procesando la misma entrada.
misma entrada. El siguiente ejemplo muestra cómo cargar dos modelos YOLO distintos utilizando la función
ultralytics paquete.
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 implementación de conjuntos requiere una cuidadosa consideración de recursos MLOps, ya que el despliegue múltiples modelos aumenta el uso de memoria. Sin embargo, para las tareas que requieren el mayor rendimiento posible en visión por ordenador (VC), la compensación suele estar justificada.