Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Ensemble

El aprendizaje por conjuntos combina las predicciones de varios modelos mediante bagging, boosting o stacking para conseguir un error menor que el de cualquiera de sus componentes por separado.

El aprendizaje por conjuntos entrena varios modelos para una misma tarea y combina sus predicciones mediante votación, promediado o un combinador aprendido, para generar una única salida que suele ser más precisa y estable que la de cualquiera de los modelos por separado. Funciona porque los distintos modelos cometen errores diferentes, y al combinarlos se cancela parte del error de cada uno. En 1995, Anders Krogh y Jesper Vedelsby demostraron que esto se cumple exactamente en modelos de regresión promediados: el error cuadrático del conjunto es igual al error medio de sus componentes menos su desacuerdo medio con el conjunto. Por tanto, un conjunto promediado nunca es peor que su componente medio, y la diversidad entre sus componentes es lo que lo hace mejor.

Bagging, boosting y stacking#

Tres familias abarcan la mayoría de los conjuntos de aprendizaje automático, y cada una actúa sobre distintos aspectos del compromiso entre sesgo y varianza.

El bagging, abreviatura de agregación bootstrap, fue introducido por Leo Breiman en 1996. Entrena cada componente de forma independiente con una muestra bootstrap extraída del conjunto de entrenamiento con reemplazo, y promedia los resultados o vota por ellos, lo que reduce principalmente la varianza. Es adecuado para aprendices inestables, como los árboles de decisión profundos. El bosque aleatorio de Breiman, de 2001, añade un subconjunto aleatorio de características en cada división para que los árboles sean aún más distintos.

El boosting entrena los componentes en secuencia, y cada uno se centra en los errores del conjunto acumulado hasta ese momento, lo que reduce principalmente el sesgo. AdaBoost, de Yoav Freund y Robert Schapire, aumenta el peso de los ejemplos mal clasificados antes de entrenar el siguiente aprendiz débil. El gradient boosting de Jerome Friedman ajusta cada árbol nuevo al gradiente de la función de pérdida, el enfoque que utilizan XGBoost, LightGBM y CatBoost, que siguen siendo los modelos más potentes en muchos conjuntos de datos tabulares.

El stacking, o generalización apilada, fue propuesto por David Wolpert en 1992. Un metamodelo, a menudo una regresión logística, aprende a combinar modelos base heterogéneos a partir de sus predicciones en particiones reservadas, y da más peso a los modelos cuyas predicciones reservadas son más fiables.

Este ejemplo de scikit-learn compara un árbol individual con un conjunto de cada familia en un conjunto de datos de diagnósticos de cáncer de mama, mediante validación cruzada de 5 particiones:

from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import GradientBoostingClassifier, RandomForestClassifier, StackingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier

X, y = load_breast_cancer(return_X_y=True)  # 569 tumors, 30 measurements each

forest = RandomForestClassifier(n_estimators=200, random_state=0)
boosting = GradientBoostingClassifier(random_state=0)
models = {
    "Single decision tree": DecisionTreeClassifier(random_state=0),
    "Bagging (random forest)": forest,
    "Boosting (gradient boosting)": boosting,
    # Stacking: a logistic regression learns how to combine the forest and the boosted trees
    "Stacking": StackingClassifier([("forest", forest), ("boosting", boosting)], LogisticRegression()),
}

for name, model in models.items():
    print(f"{name}: {cross_val_score(model, X, y, cv=5).mean():.3f}")

El árbol individual obtiene 0,917, el bosque aleatorio 0,960, el gradient boosting 0,963 y el modelo apilado 0,963. Todos los conjuntos reducen aproximadamente a la mitad el error del árbol. El stacking iguala a su componente más potente porque 16 de los 23 tumores que clasifica mal el bosque también están mal clasificados por los árboles potenciados, lo que deja poco desacuerdo que el metamodelo pueda aprovechar.

Conjuntos en aprendizaje profundo y visión#

Los conjuntos profundos entrenan varias redes neuronales con distintas inicializaciones aleatorias y promedian sus salidas. En 2017, Balaji Lakshminarayanan y sus colegas de DeepMind demostraron que esto mejora tanto la precisión como la cuantificación de la incertidumbre, porque los componentes discrepan más ante entradas distintas de los datos de entrenamiento. En la detección de objetos, se agrupan las cajas delimitadoras de varios detectores y se fusionan con la supresión no máxima (NMS) o Weighted Boxes Fusion, que promedia las cajas superpuestas en lugar de conservar solo la más segura. Los conjuntos de arquitecturas distintas son habituales en el análisis de imágenes médicas y en las participaciones en competiciones, donde la precisión importa más que el coste de inferencia.

Ese coste aumenta con cada componente, lo que limita los conjuntos en dispositivos de IA en el borde. La destilación de conocimiento se introdujo en parte para resolver este problema: Geoffrey Hinton, Oriol Vinyals y Jeff Dean entrenaron un único modelo para imitar las salidas promediadas de un conjunto. El dropout es una alternativa más económica, ya que entrenar con él aproxima el promedio de un número exponencial de subredes reducidas.

Conjuntos de modelos, model soups y mezclas de expertos#

Un conjunto de modelos suele consistir en combinar redes entrenadas por separado durante la inferencia, la forma más habitual de aprendizaje por conjuntos en el aprendizaje profundo. Los model soups y otros métodos de fusión de modelos promedian los pesos en lugar de las predicciones, lo que mantiene el coste de un solo modelo, pero solo funciona con modelos ajustados a partir de los mismos pesos preentrenados. Una mezcla de expertos (MoE) entrena a sus expertos conjuntamente con un enrutador que envía cada entrada a unos pocos de ellos, para que los expertos se especialicen en lugar de resolver cada uno toda la tarea.

Promediar los pesos a lo largo de una única ejecución de entrenamiento aproxima un conjunto de puntos de control de esa ejecución al coste de un solo modelo, como demostraron Pavel Izmailov y sus colegas con el promediado estocástico de pesos en 2018. El entrenamiento de Ultralytics YOLO aplica este método en cada ejecución de YOLO26: mantiene un promedio móvil exponencial de los pesos, actualizado tras cada paso del optimizador con una tasa de decaimiento que aumenta progresivamente hasta 0.9999, y valida y guarda ese promedio en best.pt y last.pt en lugar de los pesos sin promediar.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático