Model Ensemble
Un conjunto de modelos combina las predicciones de varios modelos para generar un único resultado más preciso y robusto. Descubre la votación, el promedio, la fusión de cajas y sus ventajas e inconvenientes.
Un conjunto de modelos combina las predicciones de varios modelos entrenados en una única salida, mediante votación, promediado o una combinación aprendida, de modo que los errores de cada modelo se compensen entre sí. Cuando los modelos cometen errores diferentes, el conjunto es más preciso y robusto que su mejor integrante; por eso los conjuntos dominan las competiciones de aprendizaje automático: un equipo que combinó las predicciones de muchos modelos ganó el premio Netflix en 2009, y el modelo de aprendizaje profundo que ganó el reto ImageNet de 2012 promedió las predicciones de siete redes convolucionales y alcanzó un error top-5 del 15,3 %. El coste es computacional: cada integrante se ejecuta con cada entrada, por lo que el uso de memoria y la latencia de inferencia aumentan con el tamaño del conjunto.
Cómo funcionan los conjuntos de modelos#
Un conjunto de modelos solo resulta útil cuando sus integrantes cometen errores distintos. Promediar las salidas de modelos cuyos errores son independientes reduce la varianza de la predicción combinada, mientras que combinar modelos que fallan ante las mismas entradas aporta poco. El bagging genera esta diversidad al entrenar cada integrante con una muestra obtenida mediante remuestreo aleatorio de los datos de entrenamiento, como en un bosque aleatorio de árboles de decisión, y el boosting entrena cada nuevo integrante para corregir los errores de los anteriores, como en XGBoost y LightGBM. Los ensembles profundos entrenan copias de una misma red neuronal con distintas semillas aleatorias, y la dispersión de sus predicciones también mide la incertidumbre del modelo. Combinar arquitecturas distintas, como una red neuronal convolucional y un transformador de visión, da lugar a modelos con sesgos inductivos distintos y errores menos correlacionados.
La regla de combinación depende de las salidas de los integrantes:
Los modelos de gran varianza, como los árboles de decisión sin poda, son los que más se benefician. Este ejemplo de scikit-learn entrena cinco árboles que solo se diferencian en la semilla aleatoria y promedia las probabilidades predichas:
import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=0)
# Five decision trees that differ only in their random seed, which changes the features each split considers
trees = [DecisionTreeClassifier(max_features="sqrt", random_state=seed) for seed in range(5)]
for tree in trees:
tree.fit(X_train, y_train)
print("Single trees:", ", ".join(f"{tree.score(X_test, y_test):.3f}" for tree in trees))
# Ensemble: average the predicted class probabilities and pick the most likely class
probabilities = np.mean([tree.predict_proba(X_test) for tree in trees], axis=0)
accuracy = (probabilities.argmax(axis=1) == y_test).mean()
print(f"Ensemble of 5: {accuracy:.3f}")En 899 imágenes de dígitos reservadas para la evaluación, los árboles individuales obtienen puntuaciones de entre 0.736 y 0.805, y el conjunto de los cinco alcanza 0.901, por encima de cualquiera de sus integrantes, porque los errores de cada árbol se producen en imágenes distintas.
Ensamblaje de detectores de objetos#
Los conjuntos de detección de objetos también deben fusionar las cajas: varios modelos suelen encontrar el mismo objeto en posiciones ligeramente distintas. El método más sencillo agrupa las cajas de todos los modelos y aplica la supresión no máxima (NMS), que conserva la caja con mayor confianza de cada grupo de cajas solapadas. La fusión ponderada de cajas, en cambio, promedia las coordenadas de las cajas solapadas ponderándolas por su confianza, de modo que cada modelo contribuye a la posición final. Ultralytics YOLO26 integra un conjunto relacionado en la predicción: con augment=True, el detector procesa la imagen a escala completa, al 83 % y al 67 %; la copia al 83 % se voltea de izquierda a derecha, y los tres conjuntos de cajas se fusionan mediante NMS. Este ejemplo combina dos modelos YOLO26 de distinto tamaño del mismo modo:
import torch
from torchvision.ops import batched_nms
from ultralytics import YOLO
# Two YOLO26 models of different sizes make different mistakes
models = [YOLO("yolo26n.pt"), YOLO("yolo26s.pt")]
results = [model("https://ultralytics.com/images/bus.jpg")[0] for model in models]
# Pool the boxes from both models
boxes = torch.cat([result.boxes.xyxy for result in results])
scores = torch.cat([result.boxes.conf for result in results])
classes = torch.cat([result.boxes.cls for result in results])
# Keep the highest-scoring box in each overlapping group of the same class
keep = batched_nms(boxes, scores, classes, iou_threshold=0.5)
print(f"{len(boxes)} boxes from both models, {len(keep)} after fusion")Las cajas que han encontrado ambos modelos se fusionan en una sola, y los objetos que solo ha encontrado uno sobreviven a la combinación; así es como un conjunto de detección aumenta la exhaustividad.
Aplicaciones#
- Análisis de imágenes médicas: Los modelos de diagnóstico combinan varias redes para aumentar la sensibilidad, y las discrepancias entre sus resultados señalan los casos que debe revisar un radiólogo.
- Competiciones y pruebas de referencia: Las soluciones ganadoras de Kaggle y de tablas de clasificación similares suelen promediar modelos entrenados con distintas arquitecturas, semillas y particiones de datos, ya que la mejora en precisión compensa el coste computacional adicional.
- Vehículos autónomos: Los sistemas de percepción combinan modelos con distintas fortalezas, como un detector basado en cámara y otro basado en lidar, para que el otro pueda detectar un objeto que uno de ellos no haya detectado.
Conjunto de modelos frente a términos relacionados#
- Aprendizaje por conjuntos: Sinónimo de la técnica general. «Conjunto de modelos» suele referirse al grupo de modelos combinados que se obtiene.
- Fusión de modelos: Promedia los pesos de modelos compatibles en una sola red, que después se ejecuta con el coste de un único modelo.
- Mezcla de expertos (MoE): Un enrutador aprendido envía cada entrada solo a unas pocas subredes expertas, lo que añade capacidad sin ejecutar todos los expertos con cada entrada.
- Destilación de conocimiento: Entrena un único modelo alumno para que imite a un modelo profesor, que puede ser un conjunto completo. En su artículo sobre destilación de 2015, Geoffrey Hinton, Oriol Vinyals y Jeff Dean comprimieron un conjunto de modelos de reconocimiento del habla en un único modelo que conservaba la mayor parte de las mejoras del conjunto.










