Adversarial Attacks, el enemigo de la inteligencia artificial (II)

Franco Piergallini Guida    8 septiembre, 2020
Adversarial Attacks, el enemigo de la inteligencia artificial (II)

En el Machine y Deep Learning, al igual que en cualquier sistema, existen vulnerabilidades y técnicas que permiten manipular su comportamiento a merced de un atacante. Como hablamos en la primera parte de este artículo sobre Adversarial Attacks, una de estas técnicas son los adversarial examples: inputs generados cuidadosamente por un atacante para alterar el comportamiento de respuesta de un modelo. Veamos algunos ejemplos:

El más sencillo podemos encontrarlo en los comienzos de la detección de correos basura, clasificadores estándares como Naive Bayes tuvieron mucho éxito contra emails que contenían textos como: ¡Haga dinero rápido!, Refinancia tu hipoteca, Viagra… Como eran automáticamente detectados y clasificados como spam, los generadores de correos basura aprendieron a engañar a los clasificadores insertando puntuaciones, caracteres especiales o código HTML como comentarios o incluso tags falsos. Así comenzaron a usar “disfraces” como: v.ia.g.ra, ¡H4G4 D|nero r4p1do!, Inçrèmēntä la tęštõśtĘröná 250%….

Y fueron más allá, una vez solucionado este problema para los clasificadores, los atacantes inventaron un nuevo truco: para evadir a los clasificadores que se basaban en el análisis del texto, simplemente embebieron el mensaje en una imagen.

Figura 1: Adversarial examples Ebay
Figura 1: Adversarial examples Ebay

Varias contramedidas fueron rápidamente desarrolladas basándose en los hashes de imágenes conocidas como spam utilizando OCRs para extraer textos de imágenes. Para evadir estas defensas, los atacantes comenzaron a su vez a aplicar filtros y transformaciones a las imágenes con ruido aleatorio dificultando la tarea de reconocimiento de caracteres en las imágenes.

Figura 2: Imagen ruido aleatorio
Figura 2: Imagen ruido aleatorio

Como en criptografía, nos encontramos en un juego sin fin donde continuamente se van encontrando técnicas de defensas y técnicas de ataque. Detengámonos en este punto.

Clasificación de imágenes y Adversarial Attacks

En la clasificación de imágenes, los atacantes aprendieron a generar meticulosa y estratégicamente “ruido blanco”, utilizando algoritmos para maximizar el impacto en redes neuronales y pasar desapercibido por el ojo humano. O sea, logran una estimulación en las capas internas de la red que alteran completamente su respuesta e impiden que sean procesadas de manera inteligente.

Una de las razones por las que existen este tipo de ataques en las imágenes es debido a las dimensiones de éstas y las infinitas combinaciones posibles que puede llegar a tener como input una red neuronal. Si bien podemos aplicar técnicas como el data augmentation para incrementar tanto en tamaño como en variedad nuestros set de datos de entrenamiento, es imposible capturar la gran complejidad combinatoria que implica el espacio real de posibles imágenes.

Figura 3: https://arxiv.org/abs/1412.6572
Figura 3: https://arxiv.org/abs/1412.6572

Pero, ¿como se genera este ruido blanco? Primero, vamos a formular los adversarial examples matemáticamente, desde la perspectiva de la optimización. Nuestro objetivo fundamental en el aprendizaje supervisado es proporcionar un mapeo preciso de una entrada a una salida  mediante la optimización de algunos parámetros del modelo. Esto se puede formular como el siguiente problema de optimización:

〖min 〗_θ loss(θ,X_i 〖,Y〗_i )

Que es típicamente conocido como el entrenamiento de las redes neuronales. Para realizar esta optimización se utilizan algoritmos como stochastic gradient descent, entre otros.

Una aproximación muy similar se puede utilizar para lograr que un modelo clasifique erróneamente un input especifico. Para generar un ejemplo adversario, utilizamos los parámetros en los que la red convergió después del proceso de entrenamiento y optimizamos sobre el espacio posible del input. Esto quiere decir que vamos a buscar una perturbación que pueda ser agregada al input  y maximizar la función de loss del modelo:

〖max 〗_(δ∈∆) loss(θ,X_i+ δ〖,Y〗_i )

Ejemplo de juguete “Toy example”

Pensemos por un momento en un simple ejemplo donde tenemos una neurona de regresión lineal, con un input de 6 dimensiones:

Que, al pasar por el proceso de entrenamiento, convergió con los siguientes pesos: W=(0,-1,-2,0,3,1),b=0. Si le damos el input:

La neurona va a dar como output:

Entonces, ¿de que forma cambiamos x→x* con el fin de que yx* cambie radicalmente pero que x*≅x? Si tomamos la derivada de ∂y/∂x=WT, nos va a indicar como los pequeños cambios en x impactan en y. Para generar x* le agregamos una pequeña perturbación εWT,ε=0.5 al input x de la siguiente forma:

Y si hacemos forward propagation a nuestro nuevo input x*, si tenemos suerte, vamos a notar una diferencia con respecto al output que nos provee el modelo para x.

Efectivamente, para el input x* obtenemos 6.5 como output, cuando para x teníamos -1. Esta técnica (con algunas mínimas diferencias al toy example que acabamos de ver) se llama fast gradient sign method y fue introducida por Ian Goodfellow en el paper titulado Explaining and Harnessing Adversarial Examples en 2015.

Adversarial examples del futuro: coches autónomos

Los adversarial examples son una particularidad innata de todos los problemas de optimización, incluyendo el deep learning. Pero si nos remontamos unos 10 años atrás, el deep learning ni siquiera hacía un buen trabajo en datos normales y sin alteración. El hecho de que ahora estemos buscando e investigando formas de “hackear” o “romper” redes neuronales implica que se han vuelto increíblemente avanzadas.

Pero ¿pueden estos ataques tener un impacto en el mundo real como, por ejemplo, el sistema de autopiloto en un coche? Elon Musk dio su opinión en el podcast de Lex Fridman asegurando que este tipo de ataques pueden ser fácilmente controlados. En un entorno del tipo black-box, donde los atacantes no tienen acceso a los detalles internos de la red neuronal como la arquitectura o los parámetros, la probabilidad de éxito es relativamente baja, aproximadamente del 4% en promedio. Sin embargo, investigadores de Keen Labs han logrado generar adversarial examples alterando el sistema de autopiloto de los coches Tesla. Por otro lado, en entornos del tipo white-box se podrían generar adversarial examples con una tasa de éxito promedio del 98% (An Analysis of Adversarial Attacks and Defenses on Autonomous Driving Models). Esto implica una alta susceptibilidad en proyectos de self-driving open-source como comma.ai, donde se exponen por completo la arquitectura y parámetros de los modelos. Waymo, una empresa desarrolladora de vehículos autónomos pertenecientes al conglomerado Alphabet Inc expone una serie de datos de sensores de alta resolución recopilados por sus automóviles en una amplia variedad de condiciones, con el fin de ayudar a la comunidad investigadora a avanzar en esta tecnología. Estos datos podrían ser utilizados para entrenar una amplia variedad de modelos y generar adversarial attacks que en algunos casos podrían tener efecto en las redes utilizadas por Waymo debido a la transferabilidad, una propiedad de las redes neuronales en las cuales indica que dos modelos se van a basar en las mismas características para cumplir con un mismo objetivo.

Hemos de mencionar que existe una gran brecha entre engañar un modelo y engañar un sistema que contiene un modelo. Muchas veces, las redes neuronales son un componente más en un ecosistema en los que interactúan distintos tipos de análisis en la toma de decisiones. Siguiendo con el caso de los coches autónomos, la decisión de reducir la velocidad por la detección de un posible objeto próximo, detectado en el análisis de la cámara frontal, podría no concordar con los datos obtenidos de otro componente como un LIDAR en el caso de un adversarial attack. Pero en otro tipo de tomas de decisiones, como por ejemplo analizar las señales de tránsito, podría intervenir únicamente el análisis de vídeo y tener un efecto realmente peligroso convirtiendo una señal de stop en una de, por ejemplo, límite de 50 kilómetros hora.

Figura 4: Señal de Stop

Sin lugar a dudas, esta técnica supone una amenaza latente para el mundo del deep learning. Pero eso no es todo, porque existen otros tipos de ataques para cada una de las etapas en el pipeline del machine learning en los cuales un atacante puede tomar ventaja, como pueden ser:

  • Etapa de entrenamiento: envenenamiento del set de datos.
  • Parámetros aprendidos: ataques de manipulación de parámetros.
  • Etapa inferencia: adversarial attacks.
  • Test outputs: robo de modelos.

¿Quieres saber más sobre Adversarial Attacks? Primera parte de este artículo disponible aquí:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *