viernes, junio 25, 2021

Explainable AI (XAI): Cómo detectar si los algoritmos de Inteligencia Artificial nos engañan

El otro día estaba curioseando por ArXiv cuando me encontré un paper interesante: Una revisión sistemática sobre métodos para explicar las redes neuronales, algo que se conoce como Explainable AI (XAI). Y hoy quiero dedicarle el artículo completo a este tema.

Figura 1: Explainable AI (XAI): Cómo detectar si los algoritmos
de Inteligencia Artificial nos engañan

Mi experiencia con redes neuronales profundas ha sido siempre positiva, pero no es así para gran parte de la comunidad científica. Una de las grandes tareas aún por resolver del Deep Learning es la interpretabilidad de los algoritmos, que muchas veces hace que éstos tengan sesgos asociados y no se puedan detectar. Para que veáis la complejidad del tema os adjunto un gráfico interesante:

Figura 2: Accuracy vs Explainability en distintos modelos de aprendizaje

Como veis, Deep Learning ha roto el estado del arte de multitud de tareas de Inteligencia Artificial, sobretodo en Computer Vision (donde las redes convolucionales y los actuales visual Transformers están dando mucho que hablar) o NLP (donde ya vimos con el Proyecto Maquet que BERT y los Transformers nos dan muchas opciones). Pero esta mejora ha implicado un gran problema de interpretabilidad de los algoritmos: si uno observa la estructura de un Decision Tree puede entender por qué, para cada entrada, hay una salida asociada, pero no es así para los algoritmos más complejos de redes neuronales profundas.


OpenAI publicó hace un par de meses Microscope, una herramienta online que te permitía investigar, para las redes neuronales más conocidas, cuál eran sus distintas activaciones. Con esto intentaban “emblanquecer” la black-box de las redes neuronales. Pongamos algún ejemplo:

Figura 4: Visualización de las capas de AlexNet

Si visualizamos las capas de AlexNet, una red neuronal publicada en 2012, posterior a LeNet (primera red convolucional diseñada por Yann Lecun) y con 5 bloques de capas convolucionales, obtenemos la imagen anterior. Como observamos, los distintos filtros de la primera capa convolucional corresponden a las low level features, esas características que nos dan poca información sobre el contenido de la imagen más allá de patrones específicos. Cambios de color de azul a amarillo, patrones en blanco… Cosas sencillas que con algoritmos de Machine Learning de procesamiento de imagen podríamos conseguir, con bancos de filtros.

En el apartado Technique, podemos encontrar para cada una de las neuronas las imágenes del dataset Imagenet que provocan una mayor activación. ¿Os suena alguna foto?

Figura 5: Unidad 4 de la primera convolución de AlexNet 
y las imágenes de Imagenet que más la activan

Pero la cosa se pone interesante cuando nos vamos a las últimas capas convolucionales. Si nos vamos a la unidad 5 de la conv_6:

Figura 6: Imagen generada para la activación máxima de la neurona 5
de la convolución 6 con un patrón repetitivo

Aquí me diréis: Bruno, te has vuelto loco, no se entiende nada. La Explainable AI no explica nada. Pero veamos qué imágenes de Imagenet hacen que se active al máximo esta neurona:

Figura 7: Imágenes que producen activación máxima de esa neurona

Exactamente, esa neurona es una especialista en detectar pájaros azules. Cuando tenemos activación máxima en esa neurona… lo más probable es que en la imagen aparezca ese animal. Esto es así ya que existen muchas imágenes de este tipo en Imagenet, por lo que la red neuronal ha aprendido que las características de este tipo de imágenes son tan importantes que deben tener una neurona exclusiva para ello. Y esto se hace de forma automática durante el backpropagation. [Si quieres profundizar en estos temas con ejemplos en ciberseguridad tienes el libro de Machine Learning aplicado a Ciberseguridad]

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

Hasta aquí todo bien, sabemos qué imágenes de nuestro dataset (en este caso Imagenet) tienen activación máxima en cada una de las neuronas, pero los ataques adversarios a redes neuronales también hace tiempo que se conocen. Aunque en el caso anterior fuera un tipo concreto de pájaro el que activaba esa neurona, hay otras imágenes que podrían activarla y, por tanto, engañar a nuestro clasificador.

Figura 9: Imágenes no reconocibles para los seres humanos, pero que
el clasificador del estado del arte los clasifica con una label en concreto.

Además, y si nos damos cuenta de que las low level features que hemos mostrado al inicio correspondían sobre todo a texturas, nos podemos imaginar que los algoritmos de IA se podrán fácilmente engañar si modificamos la textura de una imagen de entrada:

Figura 10: De izquierda a derecha, imagen clasificada como elefante,
imagen clasificada como gato e imagen clasificada como elefante

Para defendernos de este concepto de Black-Box, los investigadores en Explainable AI han hecho grandes avances, como por ejemplo Grad-CAM, un algoritmo (está en Keras, por cierto) que te permite visualizar el feature map de la imagen que es más importante para la clasificación de ésta. Por ejemplo, si tenemos una imagen de un perro y un gato juntos, te dirá por qué ha clasificado la imagen como una imagen “gato” o imagen “perro” señalando en la imagen el porqué de la decisión:

Figura 11: (De izquierda a derecha) Imagen original, explicación 
de clasificación “gato” y explicación de clasificación “perro”

GradCam es un paper muy bueno y alucinante de 2016… pero es que dos años más tarde un grupo de investigadores estudió la idea de que las explicaciones de la clasificación fueran por texto, lo que se conoce como Pointing and Justification Explanation (o como a mí me gusta llamarlo, un “Justifique su respuesta” de toda la vida). En el caso que veremos ahora, para una tarea de Visual Question and Answering (VQA-X), podemos, a partir de una imagen de entrada y una pregunta, que el algoritmo nos devuelva no sólo la respuesta, sino una justificación escrita y una señalización en la imagen.

Figura 12: VQA-X con justificación textual y señalización visual,
y ejemplo del dataset utilizado para entrenar el modelo

Alucinante. Y aquí es donde el Bruno más soñador piensa e imagina un futuro (como siempre me pasa con la tecnología, vaya). A todo humano, me incluyo, nos da respeto que decisiones del día a día las tomen las máquinas, pero eso es debido a que las estamos enseñando a decidir, no a explicarnos la decisión. Un caso muy claro es el de las empresas de telemedicina, os pongo un caso hipotético (totalmente hipotético). Una app del móvil para la detección de enfermedades de la piel (como Legit Health) se vincula con Siri, Aura o Alexa, y entonces ocurre la siguiente conversación:

- “Oye XXX, creo que el lunar de la espalda me ha crecido.” 
 
- “A ver, enséñame una foto.”
 
- “Hecho ¿Cómo lo ves, debería ir al médico?” 
 
- “Sí Bruno, debes ir al médico, por X, Y, Z. Te pido cita.” 
 
Igual será en 5, 10 o 15 años, pero esto pasará. Ipse dixit.

¡Saludos!

Autor: Bruno Ibáñez, Investigador de Ciberseguridad e IA en Ideas Locas

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares