Implementación de modelos de aprendizaje automático: El análisis de errores y atributos protegidos con InterpretM; TensorFlow Model Analysis; TensorFlow What-if y Fairlearn en Python

Más allá del valor de la métrica específica, es importante entender cómo nuestro modelo se comporta. La práctica de análisis de errores trata de identificar cómo nuestro modelo comete los errores y cómo se distribuyen esos errores dentro del conjunto de datos y, en particular, en algunos subconjuntos con determinados atributos. En muchos casos es importante diseñar pruebas que dividan el conjunto de datos en subpoblaciones o slices basándose en atributos protegidos (los cuales podrían o no ser predictores utilizados por el modelo). Esta técnica también suele utilizarse para asegurar que nuestro modelo sea justo (fairness), un procedimiento mandatorio para cualquier modelo que utilice datos de personas ya que podría haber requerimientos de negocio, regulatorios o legales que penalicen a la organización por no realizarlo. Por ejemplo, podríamos preguntarnos «¿Cúal es la performance de nuestro modelo de reconocimiento de voz cuando el interlocutor tiene un acento determinado?».

Hacer este tipo de preguntas llevan a nuestro análisis de performance mucho más lejos que cuando miramos simplemente una métrica en particular como la precisión o el coeficiente de determinación.

Tomarse el tiempo para entender cómo y por qué nuestro modelo comete errores tiene numerosos beneficios incluyendo:

•   Puede ayudarnos a identificar zonas donde no tenemos suficiente cantidad de datos. Por ejemplo, si nuestro modelo comete muchos errores clasificando frutas, pero no clasificando animales, entonces podríamos querer aumentar el conjunto de datos con más imágenes de frutas.

•   Si sabemos que nuestro modelo tiene especiales complicaciones manejando determinado tipo de casos, podríamos decidir imponer algunas restricciones en su uso para prevenir fallas más graves en los procesos de negocio que lo utilizan. 

•   Puede ayudarnos a identificar problemas fundamentales en nuestro modelo que nos hagan replantearnos si el modelo debería llegar a producción. Por ejemplo, si nuestro modelo comete determinados errores con determinado género de las personas, quizás deberíamos evaluar no utilizarlo.

El análisis de errores es el proceso para identificar, observar y diagnosticar predicciones erróneas de un modelo de aprendizaje automático, ayudándonos a comprender las áreas con fortalezas o debilidades de un modelo. Cuando decimos que «la precisión del modelo es del 90 %», puede que no sea uniforme en todos los subgrupos de datos o puede haber algunas condiciones en los datos de entrada en las que el modelo falla más. Por lo tanto, es importante someter las métricas a una revisión más profunda para poder mejorarlo.

Se mostrará como utilizar la herramienta de Error Analysis provista en el Responsable AI Toolbox. El análisis de errores nos permite explorar como se distribuye el error de las predicciones de nuestro modelo. Una de las ventajas más interesantes de esta herramienta es que es agnóstica del modelo, es decir, que lo podemos aplicar para cualquier tipo de modelo ya que solamente necesitamos proveer los conjuntos de datos de evaluación con las predicciones que realizó el modelo.

Por otra parte, a medida que los modelos predictivos de Machine Learning avanzan más y más en nuestro día a día para decidir, informar y también actuar sobre nuestras vidas, muchas preguntas se nos aparecen sobre qué tan “justas” son tales decisiones que los sistemas toman. De particular interés es el evitar que estas decisiones terminen afectando a grupos minoritarios de forma inequitativa discriminando por género, raza, religión, etc.

Un sistema basado en modelos de aprendizaje automático puede comportarse de manera injusta ante sus usuarios por diversas razones. A veces se debe a sesgos sociales reflejados en los datos de entrenamiento y en las decisiones tomadas durante el desarrollo. En otros casos, los sistemas se comportan injustamente no por sesgos sociales, sino por las características de los datos (por ejemplo, muy pocos datos sobre algún grupo de personas en particular). Puede ser difícil distinguir entre estas razones, especialmente porque no son mutuamente excluyentes y, a menudo, se exacerban entre sí.

Por lo tanto, definimos si un modelo de aprendizaje automático se está comportando injustamente en términos de su impacto en las personas, es decir, en términos de daños, y no en términos de causas específicas, como sesgos sociales, o en términos de intenciones, como prejuicios.

Fairlearn es un paquete de Python que puede ayudar a evaluar y mitigar la no imparcialidad en los modelos de aprendizaje automático. Sin embargo, no pierda de vista que la equidad es un desafío fundamentalmente sociotécnico y no se puede resolver solo con herramientas tecnológicas. Dicho esto, fairlearn puede ser útil para ciertas tareas, como evaluar la injusticia a través de varias métricas, o para mitigar la injusticia observada al entrenar un modelo.

What-If (también conodido como WIT) es una herramienta que provee una simple interfaz de usuario para exploración y entendimiento de modelos de aprendizaje automático entrenados. Se trata de un plug-in para Tensorboard que nos permite ejecutar el modelo sobre un conjunto de datos para luego evaluar de forma visual sus resultados. Adicionalmente nos permite editar cada una de las muestras sobre las que ejecutamos el modelo para investigar el efecto que tiene sobre el modelo.

Esta herramienta se puede utilizar en modelos que cumplan con las siguientes condiciones: El modelo debe poder ejecutarse utilizando TensorFlow Serving utilizando las APIs classify, regress o predict. El conjunto de datos de validación debe estar en formato TFRecord.

Por último, TensorFlow Model Analysis (TFMA) es una biblioteca de Python para realizar la evaluación del modelo en diferentes segmentos de datos. TFMA es una herramienta muy potente en ambientes productivos ya que realiza sus cálculos de manera distribuida sobre grandes cantidades de datos utilizando Apache Beam, lo cual lo hace altamente escalable. TFMA se puede utilizar para investigar y visualizar el rendimiento de un modelo con respecto a las características del conjunto de datos.