Análisis de error para el diseño de sistemas Machine Learning
La preparación de un modelo ML consta de varias etapas, por lo que depurar fallas puede tomar mucho tiempo. Sabías que con el Análisis de Error puedes mejorar su desempeño en un período corto?
Autor: Rocío B. Ayala Meza
Fuente: [1]
Introducción
La preparación de un modelo Machine Learning (ML, por sus siglas en inglés) es un proceso largo que implica varias etapas: recolección de datos, preprocesamiento, entrenamiento e implementación. A su vez, existen varias técnicas para mejorar su desempeño: creación de datos sintéticos, optimización de hiperparámetros, empleo de nuevas arquitecturas, etc. Por lo que es crucial evaluar la causa de fallas para elegir el método más rápido y apropiado.
El análisis de error [2] consiste en examinar, manualmente, los desaciertos del algoritmo. Con esto se prioriza técnicas que sean rápidas de probar, que aborden directamente el tipo de error y que garanticen la mejora del desempeño del modelo en un lapso corto de tiempo.
Procedimiento
El análisis de error consiste de los siguientes pasos [3]:
Examinar manualmente unas 100 muestras en las que el algoritmo cometió fallas.
Crear una tabla, en la que se clasifique cada muestra según la fuente potencial de error.
Seleccionar la columna con la causa de error que contenga el mayor número de muestras.
Proponer soluciones para abordar directamente las fuentes de error.
Volver a entrenar el modelo.
Comparar el rendimiento del nuevo modelo con el anterior.
Escenario – Inspección de circuitos integrados
Los fabricantes de productos electrónicos deben inspeccionar visualmente los circuitos integrados en busca de defectos como pines doblados, faltantes o torcidos. Por lo tanto, para comprender mejor el procedimiento de análisis de error, se va a analizar el caso de un modelo de visión por ordenador (detección de objetos) que localiza pines doblados y faltantes en los circuitos integrados.
Examinar manualmente unas 100 muestras en las que el algoritmo cometió fallas
Después de entrenar el modelo (YOLOX), se observó que el algoritmo no detecta correctamente los defectos por pines faltantes, y tiene una precisión de 84%. Entonces, se tomó una muestra de 100 imágenes para entender por qué el algoritmo tiene dificultad en reconocer ese defecto.
Crear una tabla, en la que se clasifique cada imagen según la fuente potencial de error
En la Tabla 1, se ha definido las posibles causas de falla: a) no se detectan casos severos de pines faltantes, b) hay imágenes sobreexpuestas, y c) algunos defectos están en los bordes de la imagen.
Seleccionar la columna con la causa de error que contenga el mayor número de muestras
En la Tabla 1 se aprecia que la mayor parte de fallas en detección es porque el defecto está en las esquinas de las imágenes (61%) y porque los casos severos de falta de pines son situaciones raras (31%).
Tabla 1: Fallas en el modelo ML y sus causas. Fuente: Elaboración propia.
Proponer soluciones para abordar directamente las fuentes de error
El modelo no detecta cuando faltan muchos pines. Como es un caso raro primero se inspeccionó la distribución de imágenes con ese tipo de defecto en el conjunto de datos de entrenamiento y en el de validación. Lo que se encontró fue que en el primero no habían imágenes con esa falla, por lo que se redistribuyeron las imágenes entre éste y el conjunto de datos de validación.
Para el siguiente caso, los defectos están cerca de los bordes de las imágenes, por lo que se decidió aumentar más datos. Es decir, de manera aleatoria, se recortaron las imágenes para crear artificialmente nuevas pero con defectos en los bordes.
Volver a entrenar el modelo
Para el primer caso, luego del entrenamiento se alcanzó una precisión de 87%. Mientras que para el segundo caso se consiguió un 93%
Comparar el rendimiento del nuevo modelo con el anterior
Discusión
Para dar solución a las dos situaciones anteriores también se consideró cambiar a un modelo de segmentación (para mejorar el desempeño), así como crear imágenes sintéticas (para hacer al conjunto de datos más grande). Pero, en ambos se necesita de más tiempo (etiquetado de imágenes, etc), además que ninguno soluciona directamente las fallas del algoritmo.
Se eligieron los 2 casos porque ofrecían un retorno más alto en un período de tiempo corto. En el primer caso (Pines faltantes) son 31 imágenes erróneas de una muestra de 100 (31%), lo que significa como máximo un incremento de hasta 3.1% en la precisión total del modelo (si se consideran 1000 imágenes). Mientras que para el segundo caso (Defectos en esquinas), hasta 6.1%.
Conclusiones
El análisis de error es examinar, manualmente, las fallas en el modelo de ML. Permite abordar directamente los desaciertos, así como priorizar sobre las técnicas a emplear para mejorar el desempeño del algoritmo en un periodo de tiempo corto. Adicionalmente, es muy útil para darse cuenta si las inexactitudes en el modelo son debido a un etiquetado de muestras heterogéneo.
Referencias
[1] R. Ayala Meza, “Portafolio Fotográfico.” 2021, [Online]. Available: https://photos.app.goo.gl/9EPSEUyCGwKaNccD8.
[2] S. Online, “Lecture 13 - Debugging ML Models and Error Analysis | Stanford CS229: Machine Learning (Autumn 2018) - YouTube,” 2020. (accessed Apr. 20, 2022).
[3] M. Sabini, “Boosting Model Performance Through Error Analysis - Landing AI,” Landing AI, 2021. https://landing.ai/boosting-model-performance-through-error-analysis/ (accessed Apr. 20, 2022).
Si a usted le gusta la Ciencia, visité A.M’s Newsletter para leer la nueva serie Horizon Star Walk escrito por A.M. Productions!