El aprendizaje conjunto combina varios alumnos para mejorar el rendimiento predictivo. Se ha adoptado en respuesta a problemas derivados de conjuntos de datos limitados.
El aprendizaje por conjuntos es una técnica de machine learning que agrega dos o más aprendices (por ejemplo, modelos de regresión, redes neuronales) para producir mejores predicciones. En otras palabras, un modelo de conjunto combina varios modelos individuales para producir predicciones más precisas que un único modelo por sí solo1. En ocasiones, las fuentes pueden referirse a esta técnica como aprendizaje basado en comités. El aprendizaje por conjuntos se basa en el principio de que una colectividad de aprendices produce una mayor precisión global que un aprendiz individual2. De hecho, la investigación apoya su eficacia con modelos de machine learning y redes neuronales convolucionales (CNN).
Una nota sobre la terminología: aprendiz base, modelo base y, en algunos casos, estimador base se refiere al modelo o modelos individuales utilizados en los algoritmos de conjuntos. La literatura divide aún más a los aprendices de base en aprendices fuertes y aprendices débiles. Los modelos débiles o aprendices se definen como aquellos que se desempeñan poco mejor que las conjeturas aleatorias. Para los problemas de clasificación binaria, los clasificadores débiles son más formalmente aquellos que logran una precisión de aproximadamente el cincuenta por ciento. Por el contrario, los modelos o aprendices sólidos logran un excelente rendimiento predictivo, que en la clasificación binaria se formaliza como igual o superior al ochenta por ciento de precisión3.
Tenga en cuenta que algunas fuentes confunden el aprendiz débil y el aprendiz base, dado que los métodos de conjunto, especialmente los secuenciales, impulsan eficazmente a los aprendices débiles a aprendices fuertes4.
El equilibrio entre el sesgo y la varianza es un problema muy conocido en el machine learning y un principio que motiva muchas de técnicas de regularización. Podemos definirlos como:
- El sesgo mide la diferencia media entre los valores pronosticados y los valores reales. A medida que aumenta el sesgo, un modelo predice con menos precisión en un conjunto de datos de entrenamiento. Un sesgo alto se refiere a un alto error en el entrenamiento. La optimización significa los intentos de reducir el sesgo.
- La varianza mide la diferencia entre las predicciones en varias realizaciones de un modelo determinado. A medida que aumenta la varianza, un modelo predice con menos precisión sobre datos no vistos. Una varianza elevada implica un alto nivel de error durante las pruebas y la validación. La generalización se refiere a los intentos de reducir la varianza.
El sesgo y la varianza representan inversamente la precisión del modelo en los datos de entrenamiento y prueba, respectivamente5. Son dos de los tres términos que comprenden la tasa de error total de un modelo, siendo el tercero el error irreducible. Este tercer término denota el error resultante de la aleatoriedad inherente a un conjunto de datos. El error total del modelo se puede definir mediante la fórmula:6
Cualquier algoritmo de entrenamiento de modelos consta de numerosas variables, por ejemplo, los datos de entrenamiento, los hiperparámetros, etc., que afectan al error total del modelo consecuente. Así, incluso un único algoritmo de entrenamiento puede producir modelos diferentes, cada uno con su propio sesgo, varianza y tasas de error irreducibles. Al combinar varios modelos diversos, los algoritmos de conjunto pueden producir una tasa de error general más baja, al mismo tiempo que conservan las complejidades y ventajas propias de cada modelo individual, como un sesgo notablemente bajo para un subconjunto de datos específico7.
La investigación sugiere que, en general, cuanto mayor sea la diversidad entre los modelos combinados, más preciso será el modelo de conjunto resultante. Por lo tanto, el aprendizaje de conjuntos puede abordar problemas de regresión como el sobreajuste sin sacrificar el sesgo del modelo. De hecho, la investigación sugiere que los conjuntos compuestos por modelos con diversidad bajo regularizados (es decir, modelos que se ajustan en exceso a sus datos de entrenamiento) superan a los modelos regularizados únicos8. Además, las técnicas de aprendizaje por conjuntos pueden ayudar a resolver problemas derivados de datos de alta dimensión y, por lo tanto, servir eficazmente como alternativa a la reducción de la dimensionalidad.
La literatura clasifica ampliamente los métodos de aprendizaje conjunto en el machine learning en dos grupos: paralelo y secuencial.
- Los métodos paralelos entrenan a cada alumno base a diferenciarse de los demás. Por tanto, según su nombre, los conjuntos paralelos entrenan a los aprendices base en paralelo e independientes unos de otros.
- Los métodos secuenciales entrenan a un nuevo alumno base para minimizar los errores cometidos por el modelo anterior entrenado en el paso anterior. En otras palabras, los métodos secuenciales construyen modelos base de forma secuencial por etapas9.
Los métodos paralelos se dividen a su vez en métodos homogéneos y heterogéneos. Los conjuntos paralelos homogéneos utilizan el mismo algoritmo de aprendizaje base para producir todos los aprendices base componentes. Los conjuntos paralelos heterogéneos utilizan diferentes algoritmos para producir aprendices base10.
¿Cómo combinan los métodos de conjunto a los alumnos base en un alumno final? Algunas técnicas, por ejemplo el stacking, utilizan algoritmos de machine learning separados para entrenar a un alumno conjunto a partir de los alumnos base. Pero un método habitual para consolidar las predicciones de los alumnos base es la votación y, más concretamente, la votación por mayoría.
La votación por mayoría tiene en cuenta la predicción de cada alumno base para un caso de datos determinado y emite una predicción final determinada por lo que predice la mayoría de los alumnos. Por ejemplo, en un problema de clasificación binaria, la votación por mayoría toma las predicciones de cada clasificador base para una instancia de datos dada y utiliza la predicción mayoritaria como predicción final. La votación por mayoría ponderada es una extensión de esta técnica que da más peso a las predicciones de ciertos alumnos sobre otros11.
Puede que tres de las técnicas de aprendizaje conjunto más populares sean bagging, boosting y stacking. De hecho, todos ellos ejemplifican las distinciones entre los tipos secuencial, paralelo, homogéneo y heterogéneo de métodos de conjunto.
Tenga en cuenta que esta descripción general no es exhaustiva; existen varios métodos de conjunto adicionales, como conjuntos de mezcla y de promedio ponderado. Este artículo tiene como único objetivo examinar algunos de los métodos más destacados de la literatura.
El bagging es un método paralelo homogéneo a veces denominado agregación bootstrap. Utiliza réplicas modificadas de un conjunto de datos de entrenamiento dado para entrenar múltiples aprendices base con el mismo algoritmo de entrenamiento12. El módulo ensemble de Scikit-learn en Python contiene funciones para implementar el bagging, como BaggingClassifier.
Más específicamente, el bagging utiliza una técnica llamada bootstrap para derivar varios conjuntos de datos nuevos a partir de un conjunto de datos inicial con el fin de entrenar a varios alumnos de base. ¿Cómo funciona? Digamos que un conjunto de datos contiene n ejemplos de entrenamiento. El bootstrap copia n instancias de datos de ese conjunto en un nuevo conjunto de datos de submuestra, con algunas instancias iniciales que aparecen más de una vez y otras se excluyen por completo. Estos son ejemplos de bootstrap. Repetir este proceso x veces produce x iteraciones del conjunto de datos original, cada una con n muestras del conjunto inicial. Luego, cada iteración del conjunto inicial se utiliza para entrenar a un alumno base diferente con el mismo algoritmo de aprendizaje13.
Un bosque aleatorio es una extensión de bagging que denota específicamente el uso de bagging para construir conjuntos de árboles de decisión aleatorios. Esto difiere de los árboles de decisión estándar en que estos últimos muestrean cada característica para identificar la mejor para la división. Por el contrario, los bosques aleatorios muestrean iterativamente subconjuntos aleatorios de características para crear un nodo de decisión14.
El stacking, o generalización apilada15, es un método paralelo heterogéneo que ejemplifica lo que se conoce como metaaprendizaje. El metaaprendizaje consiste en entrenar a un metaalumno a partir de los resultados de varios aprendices base. El stacking entrena específicamente a varios alumnos base a partir del mismo conjunto de datos utilizando un algoritmo de entrenamiento diferente para cada alumno. Cada alumno base hace predicciones en un conjunto de datos no visto. Estas primeras predicciones del modelo se compilan y se utilizan para entrenar un modelo final, que es el metamodelo16.
Tenga en cuenta la importancia de utilizar un conjunto de datos distinto del utilizado para entrenar a los aprendices de base con el fin de entrenar al metaalumno. Utilizar el mismo conjunto de datos para entrenar a los alumnos base y al metaalumno puede dar lugar a un sobreajuste. Esto puede requerir excluir instancias de datos de los datos de entrenamiento del alumno base para que sirvan como datos de prueba, que a su vez se convierten en datos de entrenamiento para el metaalumno. La bibliografía suele recomendar técnicas como la validación cruzada para garantizar que estos conjuntos de datos no se solapen17.
Al igual que el bagging, el módulo sklearn.ensemble de Python proporciona varias funciones para implementar técnicas de apilamiento.
Los algoritmos de boosting son un método de conjunto secuencial. El boosting tiene muchas variaciones, pero todas siguen el mismo procedimiento general. El boosting entrena a un aprendiz en un conjunto de datos inicial, d. El aprendiz resultante suele ser débil y clasifica erróneamente muchas muestras del conjunto de datos. Al igual que el bagging, el boosting muestrea a continuación instancias del conjunto de datos inicial para crear un nuevo conjunto de datos(d2). Sin embargo, a diferencia del bagging, el boosting da prioridad a las instancias de datos mal clasificadas del primer modelo o aprendiz. Se entrena un nuevo aprendiz en este nuevo conjunto de datos d2. A continuación, se compila un tercer conjunto de datos(d3) a partir de d1 y d2, priorizando las muestras mal clasificadas del segundo aprendiz y las instancias en las que d1 y d2 discrepan. El proceso se repite n veces para producir n aprendices. A continuación, el refuerzo combina y pondera todos los aprendices juntos para producir las predicciones finales18.
Los algoritmos de boosting difieren en gran medida en la forma en que priorizan las instancias de datos predichas erróneamente al crear un nuevo conjunto de datos. Dos de los métodos de boosting más destacados pueden ilustrarlo:
- El boosting adaptativo (AdaBoost) pondera los errores del modelo. Es decir, al crear una nueva iteración de un conjunto de datos para entrenar al siguiente alumno, AdaBoost añade ponderaciones a las muestras mal clasificadas del alumno anterior, lo que hace que el siguiente alumno priorice esas muestras mal clasificadas.
- El boosting de gradiente utiliza los errores residuales al entrenar a los nuevos aprendices. En lugar de ponderar las muestras mal clasificadas, el boosting de gradiente utiliza los errores residuales de un modelo anterior para establecer predicciones objetivo para el modelo siguiente. De este modo, intenta cerrar la brecha de error dejada por un modelo19.
Desafortunadamente, sklearn no contiene funciones predefinidas para implementar el boosting. Sin embargo, la biblioteca de código abierto Extreme Gradient Boosting (XGBoost) proporciona código para implementar el boosting de gradiente en Python.
Dadas las dificultades para adquirir grandes conjuntos de datos etiquetados y de uso justo para entrenar a los alumnos, el aprendizaje conjunto ha visto muchas aplicaciones en un intento de mejorar el rendimiento de los alumnos con menos datos. Por ejemplo, varios estudios recientes muestran resultados prometedores al mejorar la generalización del modelo utilizando métodos de conjunto para tareas de visión artificial, como entrenar varios modelos con diferentes representaciones de un conjunto de datos20 o combinar varios modelos sesgados21.
A pesar de la capacidad de los métodos de conjunto para mejorar la generalización, pueden sufrir injusticias. En el machine learning, la equidad denota los intentos de mitigar el sesgo algorítmico (a menudo contra grupos minoritarios) en los sistemas automatizados, normalmente como resultado de aprendices entrenados con datos sensibles. Algunos estudios proponen técnicas de medición, preprocesamiento y posprocesamiento para mejorar la equidad en los modelos de conjuntos.22 Los esfuerzos continuos para mejorar la equidad y las prácticas éticas en la IA siguen siendo un área muy necesaria para la investigación futura.
1 Zhi-Hua Zhou. Ensemble Methods: Foundations and Algorithms. CRC Press. 2012.
2 Gavin Brown. "Ensemble Learning". Encyclopedia of Machine Learning and Data Mining. Springer. 2017.
3 Gautam Kunapuli. Ensemble Methods for Machine Learning. Manning Publications. 2023. Lior Rokach. Pattern Classification Using Ensemble Methods. World Scientific Publishing Company. 2010.
4 Zhi-Hua Zhou. Ensemble Methods: Foundations and Algorithms. CRC Press. 2012.
5 Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani y Jonathan Taylor. An Introduction to Statistical Learning with Applications in Python. Springer. 2023.
6 George Kyriakides y Konstantinos G. Margaritis. Hands-On Ensemble Learning with Python. Packt Publishing. 2019.
7 Zhi-Hua Zhou. Machine Learning, traducido por Shaowu Liu. Springer. 2021. George Kyriakides y Konstantinos G. Margaritis. Hands-On Ensemble Learning with Python. Packt Publishing. 2019.
8 Peter Sollich y Anders Krogh. "Learning with ensembles: How overfitting can be useful". Advances in Neural Information Processing Systems. Vol. 8. 1995. https://papers.nips.cc/paper_files/paper/1995/hash/1019c8091693ef5c5f55970346633f92-Abstract.html.
9 Gautam Kunapuli. Ensemble Methods for Machine Learning. Manning Publications. 2023.
10 Zhi-Hua Zhou. Ensemble Methods: Foundations and Algorithms. CRC Press. 2012.
11 Ibomoiye Domor Mienye y Yanxia Sun. "A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects". IEEE Access. Vol. 10. 2022. PP. 99129-99149. https://ieeexplore.ieee.org/document/9893798. Lior Rokach. "Ensemble-based Classifiers". Artificial Intelligence Review,.Vol. 33. 2010. PP. 1-39. https://link.springer.com/article/10.1007/s10462-009-9124-7.
12 M. Galar, A. Fernandez, E. Barrenechea, H. Bustince y F. Herrera. "A Review on Ensembles for the Class Imbalance Problem: Bagging-, Boosting-, and Hybrid-Based Approaches". IEEE Transactions on Systems, Man, and Cybernetics. vol. 42. N.º 4. 2012. PP. 463-484. https://ieeexplore.ieee.org/document/5978225.
13 Zhi-Hua Zhou. Ensemble Methods: Foundations and Algorithms. CRC Press. 2012.
14 Gautam Kunapuli. Ensemble Methods for Machine Learning. Manning Publications. 2023.
15 Robi Palikar. “Ensemble Learning”. Ensemble Machine Learning: Methods and Applications. Springer. 2012.
16 Ibomoiye Domor Mienye y Yanxia Sun. "A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects". IEEE Access. Vol. 10. 2022. PP. 99129-99149. https://ieeexplore.ieee.org/document/9893798.
17 Zhi-Hua Zhou. Ensemble Methods: Foundations and Algorithms. CRC Press. 2012. Gautam Kunapuli. Ensemble Methods for Machine Learning. Manning Publications. 2023.
18 Robi Palikar. “Ensemble Learning”. Ensemble Machine Learning: Methods and Applications. Springer. 2012. Zhi-Hua Zhou. Ensemble Methods: Foundations and Algorithms. CRC Press. 2012.
19 Gautam Kunapuli. Ensemble Methods for Machine Learning. Manning Publications. 2023.
20 Devesh Walawalkar, Zhiqiang Shen y Marios Savvides. "Online Ensemble Model Compression Using Knowledge Distillation". 2020. PP. 18-35. https://link.springer.com/chapter/10.1007/978-3-030-58529-7_2.
21 Xinzhe Han, Shuhui Wang, Chi Su, Qingming Huang y Qi Tian. "Greedy Gradient Ensemble for Robust Visual Question Answering". Actas de la conferencia internacional IEEE/CVF sobre visión artificial (ICCV). 2021. PP. 1584-1593. https://openaccess.thecvf.com/content/ICCV2021/html/Han_Greedy_Gradient_Ensemble_for_Robust_Visual_Question_Answering_ICCV_2021_paper.html.
22 Usman Gohar, Sumon Biswas y Hridesh Rajan. "Towards Understanding Fairness and its Composition in Ensemble Machine Learning". 45ª Conferencia Internacional IEEE/ACM sobre Ingeniería del Software (ICSE) de 2023. 2023. PP. 1533-1545. https://ieeexplore.ieee.org/abstract/document/10172501. Khaled Badran, Pierre-Olivier Côté, Amanda Kolopanis, Rached Bouchoucha, Antonio Collante, Diego Elias Costa, Emad Shihab y Foutse Khomh. "Can Ensembling Preprocessing Algorithms Lead to Better Machine Learning Fairness?" Computer. Vol. 56. N.º 4. 2023. PP. 71-79. https://ieeexplore.ieee.org/abstract/document/10098174. Swanand Kadhe, Anisa Halimi, Ambrish Rawat y Nathalie Baracaldo. "FairSISA: Ensemble Post-Processing to Improve Fairness of Unlearning in LLMs". Socially Responsible Language Modelling Research Workshop. 2023. https://neurips.cc/virtual/2023/78908.