Available in English

III Curso sobre Machine Learning y Banca Central

Del 12 al 15 de septiembre de 2022
Formato Digital

 

Eventos 2022

El III Curso sobre Machine Learning y Banca Central se llevó a cabo de manera digital del 12 al 15 de septiembre de 2022. El curso tuvo como objetivo presentar los componentes básicos del Aprendizaje Automatizado (Machine Learning) y analizar los métodos seleccionados, estableciendo conexiones entre ellos y los métodos estadísticos convencionales. El evento también abordó los desafíos prácticos asociados con su adopción, proporcionando un foro para que los participantes presentaran y discutieran estrategias para desarrollar e implementar modelos de Aprendizaje Automatizado, permitiendo un intercambio de conocimientos entre países sobre este tema cada vez más relevante.

El curso contó con las palabras de bienvenida del Dr. Gerardo Hernández del Valle, quien destacó las capacidades de automatización del aprendizaje de máquina, pero mencionando que debe ser usado como un complemento para las tareas humanas, no un sustituto.

Día 1

La primera sesión se usó para dar una introducción al curso. Los ponentes comenzaron recalcando que las herramientas de machine learning (ML) deben ser usadas con cuidado, y que su objetivo no es sustituir a las herramientas tradicionales, sino complementarlas. En esta línea, un modelo generado por ML no debe aprender al 100%, pues significaría que está memorizando en lugar de entendiendo las relaciones entre las variables, por lo que no será efectivo en el mundo real.

Se explicó que se deben repartir los datos que se tienen, pues hay que evaluar el modelo para ver que no ocurra esta memorización. El estándar es dividir aleatoriamente los datos, tomando 60% para entrenar al modelo, 20% para validarlo y 20% para probarlo.

Los instructores mencionaron que los datos de validación sirven para hacer prueba y error con el modelo, ver cómo se comporta y regresar a hacer cambios, volverlo a entrenar y repetir este proceso hasta estar satisfechos. Este es un punto de no retorno, pues si se evalúa al modelo con los datos de prueba y se deciden hacer cambios, el modelo deja de ser insesgado. Es común que los modelos de ML no sean capaces de predecir eventos que no hayan sucedido antes, y comentaron que tener muchos datos no necesariamente ayuda, pues pueden ser muy similares entre sí.

Después explicaron el método de valoración cruzada (cross-validation), en el que se dividen los datos aleatoriamente en K partes, de las cuales una se deja para evaluación y las demás para entrenamiento; por ejemplo, si se divide en 4 partes, en la primera iteración la parte 1 se separa para evaluación y se entrena utilizando las partes 2, 3 y 4, en la segunda iteración se separa la parte 2 y se entrena con las partes 1, 3 y 4, etc., obteniendo 4 estimaciones para el error.

La desventaja que se tiene es que se debe entrenar K veces el modelo, lo cual puede ser tardado. Para una serie de tiempo, se usa una ventana que se extiende en cada iteración, y se usa la última sección de esa ventana para evaluar.

La segunda sesión continuó con la introducción. Comenzaron explicando métodos de evaluación como las matrices de confusión, donde se comparan los falsos positivos, falsos negativos, verdaderos negativos y verdaderos positivos. Algunas medidas obtenidas de esto son la exactitud, la sensibilidad y la especificidad.

La exactitud se calcula dividiendo las predicciones correctas entre el total. El problema es que muchas veces se tienen clases marginadas, por ejemplo, en clasificación de préstamos 99% de las veces se cumple el pago, por lo que un modelo con 99% de precisión funcionaría igual que simplemente decir que todos los préstamos se pagarán, pues eso también tendría 99% de precisión. La sensibilidad mide el porcentaje de verdaderos que se predijeron correctamente, y la especificidad hace lo mismo con los falsos.

Después comentaron la prueba F1, que balancea exactitud con sensibilidad, así como la curva ROC (receiver operating curve), que compara sensibilidad contra especificidad para diferentes probabilidades.

El día concluyó con una introducción al lenguaje R, así como algunos ejemplos prácticos en él.

Día 2

El segundo día comenzó con los expositores presentando los árboles de decisión. Su funcionamiento es tomar la mejor decisión en el momento actual, y con eso dividir el problema en partes más sencillas, de manera recursiva. En cada punto se formará un criterio de decisión (por ejemplo, si la cantidad total de un préstamo es mayor a cierta cantidad o no) con el cuál se dividen los datos. Con cada división se va creando el árbol.

Después explicaron que una buena manera de elegir el criterio con el cuál se dividirá el árbol es usando el coeficiente Gini, pues su mínimo es cuando todas las observaciones pertenecen a la misma categoría (pureza), y es máximo cuando las observaciones están distribuidas equitativamente entre todas las categorías. Se busca que las decisiones sean lo más claras posibles. La variable a usar será la que genere nodos más puros.

Otro problema que comentaron es que, si no se detiene, el algoritmo puede llegar a generar una hoja (punto final del árbol) por cada observación, volviéndose malo para evaluar datos nuevos. Para evitarlo, se debe podar el árbol, ya sea una vez terminado o especificar su tamaño antes del entrenamiento.

Después hablaron sobre qué hacer si una variable usada para decidir no está disponible, y que se suelen tomar variables sustitutas, que sean independientes a la faltante pero que su división sea lo más parecida posible.

La explicación concluyó con algunas consideraciones, como que el coeficiente Gini es sesgado respecto a variables con observaciones faltantes, y que las observaciones deben ser independientes.

El siguiente tema tratado fueron los árboles de inferencia condicional, que usan el p-value en lugar del coeficiente Gini, por lo que se reduce el sobreajuste (memorización de los datos), tienen un criterio de paro natural, y no da más valor a variables con observaciones faltantes. Sin embargo, es más complejo computacionalmente.

En la segunda sesión se habló del dilema del sesgo y la varianza, pues es muy común que en modelos complejos se tenga bajo sesgo, pero alta varianza. Se busca tener un modelo que tenga un buen balance entre estas medidas.

Después explicaron los métodos de ensamble, que buscan combinar una serie de modelos débiles para producir uno más fuerte y estable. De todas las predicciones obtenidas, se puede tomar el promedio o el voto de la mayoría para llegar a un consenso. Sin embargo, es más complicado interpretar sus resultados, pues tener tantos modelos los convierten en una caja negra.

El primer método de este tipo explicado fue Bagging, en el que se busca crear modelos pequeños a partir del mismo conjunto de datos. La idea es entrenar un modelo con bases de datos ligeramente diferentes; para crearlas, se hace muestreo con repetición de los datos originales. Otro método es Boosting, en el que se inicia con un modelo simple, se analiza y se mejora en una segunda iteración; este proceso se repite, mejorando el modelo original en cada iteración hasta llegar a un criterio de parada.

El día concluyó con una sesión práctica sobre los temas vistos.

Día 3

La primera sesión del día comenzó con algunos problemas de los métodos del día anterior, como que pueden producir predicciones muy similares entre sí. Una solución es usar Random Forests (Bosques Aleatorios), que le ocultan al árbol algunas variables, para que tenga la oportunidad de probar diferentes opciones en cada iteración; se crean varios árboles, cada uno con variables diferentes.

Explicaron como este método reduce la varianza, pero puede incrementar la predisposición, pues se pueden crear separaciones sesgadas, y son más difíciles de interpretar.

El siguiente método explicado fue Causal Forests (Bosques Causales), que son utilizados para hacer relaciones causa y efecto. En lugar de usar árboles aleatorios como antes, se usan árboles causales, en los que se hacen las separaciones basándose en tener nodos con un tratamiento constante, pero diferente de otras hojas.

En la segunda sesión comentaron Gradient boosting (Potenciación del gradiente), que se usa para optimizar una función de pérdida, para lo que se calcula el gradiente de esta función. También mencionaron que usarlo de manera individual puede resultar en modelos sencillos, pero al iterarlo se obtienen resultados más robustos. Hay que tener cuidado con el tamaño de los pasos en cada iteración, pues el método va moviéndose en óptimos locales, si el paso es muy chico no habrá mejora, y si es muy grande se alejará de ese punto óptimo. Los modelos débiles que utiliza pueden ser árboles.

La sesión concluyó con un ejercicio práctico de los métodos vistos.

Día 4

Después de responder algunas preguntas, en la primera sesión los expositores comentaron las máquinas de vectores de soporte (SVM), que crean un vector de separación entre dos (o más) clases en un conjunto de datos. Los vectores de soporte son los que maximizan la distancia entre las clases.

Se pueden generalizar a problemas no lineales, replanteando la formulación y la función a optimizar. También existe una variante para hacer regresiones (SVR). Para ejemplificarlo, probaron algunas variantes en R Studio, y compararon los resultados.

En la última sesión del curso se presentaron algunas aplicaciones reales, por ejemplo, modificar una base de datos de pagos para que los investigadores la puedan usar sin que se pierda información, pero que sea lo suficientemente diferente para evitar problemas de privacidad; es decir, que no se pueda identificar a un banco particular en esos datos. El método utilizado fue variational autoencoder con differential privacy. Se dio un espacio para preguntas y respuestas sobre el modelo. Otro ejemplo de los autoencoders es detectar anomalías, como pagos fuera de lo ordinario o fraudulentos.

Después se comentó un modelo usado para clasificar fondos sostenibles autoproclamados. Se utilizaron modelos no supervisados para detectar grupos. En ambos casos, hubo problemas con los resultados iniciales y se han tenido que hacer ajustes, mencionando que esto es muy común.

Concluyeron recordando que el aprendizaje de máquina no debe reemplazar a los elementos ya existentes, y que hay una gran área por explorar sobre el tema.

 

Gerardo Hernández-del-Valle

Centro de Estudios Monetarios Latinoamericanos

El Dr. Gerardo Hernández del Valle es ingeniero eléctrico de profesión, con estudios de posgrado en Probabilidad y Estadística. Al terminar su doctorado en la Universidad de Columbia, en la ciudad de Nueva York, fue profesor de la misma institución, así como consultor en la empresa financiera Algorithmic Trading Management. Al regresar a México en el 2012 se incorporó a la Dirección General de Investigación Económica en donde trabajo en temas de economía y sus interacciones con agentes y activos financieros. Posteriormente trabajó durante varios años como Portafolio Manager y Analista Cuantitativo en la Casa de Bolsa de Actinver, en la Ciudad de México. En mes de enero del presente año, se incorporó al CEMLA.

Gabriela Alves Werb

Deutsche Bundesbank

Gabriela Alves Werb is a professor of Business Information Systems at the Frankfurt University of Applied Sciences. She is affiliated with the Research Data and Service Centre of the Deutsche Bundesbank since August 2020. Prior to her PhD studies at the Goethe University Frankfurt, she led cross-functional projects and teams in various functions at IBM and Hays for several years. Her research interests lie in the interface among marketing, finance and information systems.

Sebastian Seltmann

Deutsche Bundesbank

Sebastian Seltmann is a Data Scientist at the Research Data and Service Centre of Deutsche Bundesbank since 2020. Among his responsibilities is the dataset of large loans in Germany as well as the development of tools and pipelines to improve data workflows.

Before that he was a software engineer and application owner at a private german bank.