sábado, octubre 24, 2020

Machine Learning Interpretability: Uno de los mayores retos de la Inteligencia Artificial

La Inteligencia Artificial (IA) es ya una realidad en todo el mundo. Todos nosotros la utilizamos, directa o indirectamente, en nuestro día a día y sin darnos cuenta de ello. En estos últimos años, ha avanzado muchísimo. Una prueba de hacia dónde vamos son las aplicaciones del nuevo modelo GPT3 del que nos habló nuestro compañero Pablo Saucedo.

Figura 1: Machine Learning Interpretability: Uno de los mayores retos de la Inteligencia Artificial 

Actualmente, uno de los campos de la IA que más se ha desarrollado es el Machine Learning - aplicado en todas las industrias y negocios, como hacemos nosotros al aplicarlo a la ciberseguridad -, es decir, hacer que una máquina aprenda algo, pero ¿cómo hacemos que las máquinas aprendan? Pues muy sencillo: a través de los datos. 

Figura 2: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Es decir, los algoritmos reciben datos relacionados con una o varias situaciones (generalmente el problema está acotado) siendo capaces de deducir una serie de patrones en esa información. Posteriormente, estas máquinas serán capaces de resolver problemas relacionados con esa o esas situaciones a través de los patrones que han aprendido.

Introducción al problema de interpretabilidad en modelos de Machine Learning

En general, los modelos de Machine Learning se centran en dar una respuesta o salida (con una probabilidad de éxito o error asociada) a unos valores o atributos que reciben como entrada. Sin embargo, estos no se centran en explicar el porqué de esa salida.

Figura 3: Primero se entrena el modelo de Machine Learning y
posteriormente se utiliza para realizar predicciones 

Quizás, esto puede parecer algo abstracto para aquellos que no hayan trabajado con modelos de Machine Learning. No os preocupéis, vamos a verlo con un ejemplo. Supongamos que queremos predecir el precio de una casa. Para ello, hemos entrenado un modelo con datos reales de casas. Cada una de ellas puede describirse con una serie de características o atributos como, por ejemplo: número de habitaciones, número de cuartos de baño, metros cuadrados, situación geográfica, el tipo de casa y el precio. Entonces, el modelo es capaz de asociar las características de una casa a su precio, de forma que cuando nosotros introduzcamos como entrada una casa con sus características, este sea capaz de predecir su precio.

Supongamos ahora que Alice quiere saber cuánto cuesta su casa porque está pensando en venderla y mudarse a otra ciudad a vivir. Entonces, Alice utiliza el modelo que ha sido entrenado para predecir el precio de una casa. Este le devuelve un precio como salida, pero Alice se hace las siguientes preguntas:

- ¿Por qué ese es el precio de mi casa?  
 
- ¿Por qué es tan bajo? 
 
- ¿Qué atributo o característica de la casa es el más importante para la predicción del precio? 
 
- ¿Puedo centrarme en mejorar una característica de mi casa y que así el precio aumente considerablemente? 

Pues desafortunadamente, por sí solo, este modelo no es capaz de explicar por qué el precio predicho de la casa de Alice es ese ni cómo afecta cada uno de los atributos o características de la entrada a la salida. El modelo solo es capaz de informar a Alice del precio de su casa, dadas sus características. Además, ¿cómo puede asegurarse Alice de que realmente el modelo funciona correctamente y no se ha confundido? Puede que el modelo no haya sido entrenado teniendo en cuenta casas similares a la suya. 

Sin una explicación, o mejor dicho sin que el modelo sea interpretable, Alice nunca lo sabrá. A continuación, mostramos varios ejemplos que podrían darse en un futuro no tan lejano y que pueden llegar a ser bastante críticos:

- ¿Por qué no podemos recibir un préstamo del banco? 
 
- ¿Por qué nuestro coche autónomo toma esa decisión? 
 
- ¿Por qué el precio de nuestro seguro de coche es tan caro? 
 
- ¿El modelo tiene sesgos de género?

La última pregunta es algo real y muy reciente. Este mismo mes de octubre el Ministerio de Igualdad, dirigido por Irene Montero, ha organizado un seminario donde se abordó “la reproducción de los sesgos sociales de los algoritmos que rigen las inteligencias artificiales”, tal y como puedes ver aquí, que ya ha sido subido a Youtube.

Figura 4: Seminario de Inteligencia Artificial y Género

Planteamos otro caso de uso: a veces los algoritmos de Machine Learning o Inteligencia Artificial pueden superar al ser humano - superando la Paridad Humana - , tal y como se muestra en la gráfica de la Figura 5. ¿No podríamos utilizar las decisiones que toma ese modelo para aprender nosotros mismos, si fuésemos capaces de saber qué decisiones toma? Imaginaos este potencial en un ámbito sanitario, tal y como ya se ha probado para reconocer imágenes de enfermos de COVID-19 usando Deep Learning y Teachable Machine. A nosotros personalmente nos parece un gran avance. Seriamos capaces de aprender de una máquina e incluso, abrir nuevas vías de investigación gracias a ella. 

Figura 5: Curva que muestra la precisión (accuracy) del modelo durante su entrenamiento. Llega un momento en el que el modelo es capaz de superar la precisión humana (human accuracy). 

Planteamos un ejemplo sencillo e irreal. Cada uno seguro que sabe extrapolarlo a sus necesidades u otras aplicaciones más interesantes: imaginaos que un algoritmo de Machine Learning utiliza diez mil características para determinar cuánto tiempo durará un electrodoméstico funcionando adecuadamente. 

Suponiendo que este modelo tiene muy buenos resultados, podríamos utilizarlo para aprender y ver en qué características se fija. Nosotros como personas, no vamos a poder fijarnos en diez mil características, pero, si sabemos las causas de sus decisiones, podríamos inferir las diez características más importantes. De esta forma, podríamos inferir por nosotros mismos cuánto durará un electrodoméstico antes de comprarlo.

Por tanto, a raíz de la necesidad de comprender las causas de una decisión en los algoritmos de Machine Learning, aparecen las técnicas de Machine Learning Interpretability.

Machine Learning Interpretability

Machine Learning Interpretability es una parte de la IA que se encarga de analizar la relación que existe entre la entrada y la salida de un modelo de Machine Learning. Es decir, analiza cómo el valor de los atributos de las entradas afectan a las salidas, de forma que un humano pueda comprender las causas de una decisión. Este ha sido un problema con muchas aproximaciones en el que, por ejemplo. Google presentó eu TCAV (Testing with Concept Activation Vectors) para encontrar los sesgos en el aprendizaje de los algoritmos.

Figura 6: Exposición gráfica del problema de algunos modelos
de Machine Learning: la falta de interpretabilidad. 

Cuando implementamos un modelo, utilizamos distintas métricas para analizar lo bueno que es ese modelo. Para simplificar, en este caso solamente tendremos en cuenta la accuracy o precisión. Generalmente, cuando queremos obtener mejores resultados, cambiamos el modelo o le añadimos más complejidad. 

Figura 7: relación entre la accuracy o precisión de un modelo y su interpretabilidad

Sin embargo, esto disminuye su interpretabilidad. Esto es lo que se muestra en la Figura 7. Es decir, tal y como se ve, una red neuronal o un algoritmo de Deep Learning tendrá mejores resultados que una regresión lineal. Sin embargo, su interpretabilidad será mucho menor debido a su complejidad intrínseca. 

Técnicas de interpretabilidad para modelos de Machine Learning  

Las técnicas que se utilizan para aportar interpretabilidad a modelos de Machine Learning se clasifican según varios criterios:

- Intrínseco o post-hoc: este criterio distingue si la interpretabilidad se logra restringiendo la complejidad del modelo o aplicando métodos que analizan el modelo después del entrenamiento. La interpretabilidad intrínseca se refiere a modelos de Machine Learning que se consideran interpretables debido a su simple estructura, como por ejemplo árboles de decisión pequeños. La interpretabilidad post-hoc se refiere a aplicar métodos o técnicas de interpretabilidad después de haber entrenado el modelo.

- Local o global: se refiere a si el método explica una predicción individual, un conjunto de ellas o el comportamiento del modelo.

- Específico o agnóstico: se refiere a si el método solamente es capaz de dar interpretabilidad de determinados modelos o de si es capaz de hacerlo para cualquier tipo de modelo.

- Resultado: este criterio indica el tipo de resultado que devuelve el método de interpretabilidad. Hay varias posibilidades: feature summary statistic, feature summary visualization, model internals, data points, etcétera.

Además, hay distintos métodos que permiten evaluar cómo de buena es la interpretabilidad y hacer que los resultados sean amigables para un humano. Si alguien quiere entrar en más detalle, dejamos un libro, publicado este mismo año y visible en Github, que explica todos estos conceptos de forma más detallada.


En posts sucesivos, explicaremos varias técnicas de Machine Learning Interpretability y cómo funcionan, poniendo varios ejemplos.

Conclusión personal

Debido al uso y gran desarrollo que está teniendo actualmente la IA, más concretamente los algoritmos de Machine Learning, creo que es muy importante que esta área se desarrolle todavía más. En muchos casos, es importante entender por qué un modelo toma esas decisiones en determinadas situaciones, tanto para entenderlas como para asegurarnos de que no se ha producido un error. 

Ojo: esto no implica que todos los modelos deban hacerlo. Hay veces que no necesitamos interpretabilidad. A nosotros, personalmente, nos fascina cómo se podrían llegar a utilizar estas técnicas para aprender de la Inteligencia Artificial. Ella aprende gracias a nosotros y nosotros aprendemos de ella. Esperamos que os haya gustado.

Saludos, 

Autores:

Alberto Rivera Martínez (@ariveram2111), Ingeniero Informático y desarrollador e investigador en el equipo de Aura-Prototypes de la unidad CDCO de Telefónica. Para cualquier duda, consulta o comentario puedes utilizar su buzón público.


Marcos Rivera Martínez (@marcos_98_rm), Ingeniero Informático e investigador de Inteligencia Artificial y Ciberseguridad en el equipo de Ideas Locas de la unidad CDCO de Telefónica.

No hay comentarios:

Publicar un comentario