sábado, octubre 10, 2020

Machine Learning: Protección de redes neuronales en algoritmos de Deep Learning frente a los ataques FGSM (Fast Gradient Signed Method) #MachineLearning #DeepLearning #FGSM

Hace unos días vimos en qué consisten y cómo se implementan los ataques FSGM (Fast Gradient Signed Method) contra redes neuronales. Recordad que en estos ataques modificábamos las imágenes de entrada para provocar predicciones incorrectas en la red neuronal. También intentábamos que estas modificaciones fuesen muy poco (o incluso nada) perceptibles por el ojo humano. 

Figura 1: Machine Learning: Protección de redes neuronales en algoritmos
de Deep Learning frente a los ataques FGSM (Fast Gradient Signed Method)

En la siguiente figura podéis ver un ejemplo donde las imágenes de arriba no se han modificado (y la red predice correctamente sus etiquetas), mientras que las de abajo sí se han modificado (y la red falla al etiquetarlas).

Figura 2: Ataques FSGM a imágenes de entrenamiento

Hoy nos centraremos en cómo defendernos de estos ataques, pero antes de comenzar me gustaría proporcionaros algunos datos. De esta forma veréis la tasa de fallo que podemos conseguir con estos ataques y, por tanto, las consecuencias de no protegernos o tenerlos en cuenta a la hora de construir y desplegar nuestros modelos de Deep Learning en todos los servicios y soluciones de Machine Learning en que los queramos construir, ya que pueden impactar en la seguridad de un sistema. Un modelo atacado de estas características podría tener fallos inducidos, por ejemplo, de reconocimiento facial en zonas de seguridad.


Según el trabajo de "Explaining and Harnessing Adversarial Examples" podemos llegar a provocar un 99.9 % de clasificaciones incorrectas si modificamos las imágenes con E=0.25 y utilizamos un modelo entrenado para el dataset MNIST. Estos investigadores también lo han probado con el dataset CIFAR-10 (que fue el que utilizamos para las pruebas de concepto) y aseguran que han obtenido una tasa de error del 87% para E=0.1Como veis son tasas de error muy altas, aunque también es verdad que estamos utilizando valores de E bastante más elevados (recordad que en nuestra demo utilizamos E=0.01). 


Figura 3: Demo de Ataques FSGM

Tened en cuenta que estas tasas de error también dependen del modelo de Deep Learning que hayamos utilizado. Si probamos con el modelo que entrenamos en el artículo anterior, utilizando el dataset CIFAR-10, obtenemos una tasa de error del 65% para E=0.01 y del 94% para E=0.1. ¡Os animo a que lo probéis vosotros mismos! 

Protección contra ataques FSGM

Para protegernos de los ataques FSGM tenemos que entrenar nuestra red neuronal con la función de coste que podéis ver en la Figura 5. Como podéis ver esta nueva función de coste se compone de dos partes. La primera, que hemos recuadrado en color rojo, es la función de coste inicial de nuestro modelo, es decir, calculamos el error que comete nuestra red cuando le pasamos una imagen sin modificar. 

Figura 4: Paper de Adversarial examples

La segunda parte, recuadrada en azul, es la función de coste dada la imagen modificada, es decir, calculamos cuánto se confunde nuestra red cuando le pasamos una imagen que ha sido modificada con un valor de E. Por tanto, con esta nueva función de coste estamos enseñando a nuestra red a detectar correctamente las imágenes, aunque hayan sido modificadas para un valor de E.

Figura 5: Nueva función de coste del modelo

También es necesario realizar ciertas modificaciones sobre la arquitectura de la red, para reducir la función de coste todavía más. Algunas de estas modificaciones son la profundidad de la red, el número de neuronas por capa, parámetros de regularización de la red, etc. Estos cambios los tenemos que introducir de forma empírica, es decir, tenemos que ir probando con diferentes valores hasta encontrar el óptimo. Con estos cambios comentados podemos reducir las tasas de error al 15% aproximadamente. Como podéis ver no está nada mal, la hemos reducido de un 90% a un 15%.

Adicionalmente, si consultáis el artículo de la Figura 4 podéis ver que esta defensa no solo hace que la red se comporte mejor contra los ataques FSGM sino que también evita el overfitting y, por tanto, obtenemos mejores resultados cuando pasamos imágenes sin modificar a nuestro modelo. Esto es gracias a que estamos entrenando implícitamente la red con un conjunto de entrenamiento más grande, ya que estamos utilizando las imágenes iniciales y las imágenes modificadas. Por tanto, hemos conseguido un doble objetivo: mejorar la red y defendernos contra los ataques FSGM. Ahora explicaremos los aspectos más importantes para llevarlo a la práctica, ¡vamos a ello! 

Implementación de la defensa contra ataques FSGM

Lo primero que tenemos que hacer es reutilizar la red neuronal que entrenamos en el anterior artículo y preprocesar los datos de entrada tal y como hicimos. Recordad que en este modelo utilizamos una función de coste, denominada Categorical Crossentropy. Aquí utilizaremos una variación, tal y como hemos explicado en la parte teórica que se veía en la Figura 5

Si echáis un vistazo a la imagen siguiente, primero estamos calculando la pérdida de la imagen inicial (sin modificar) y después estamos calculando la pérdida de la imagen modificada. La función que estamos usando por debajo para calcularlas es la Categorical Crossentropy. Como veis también le hemos dado un peso a cada una de las pérdidas (en nuestro caso hemos utilizado Alpha = 0.5).

Figura 6: Implementación de la nueva función de coste 

Con la función de coste implementada ya tenemos todo lo necesario para poder defendernos de este tipo de ataques, aunque también podéis probar a modificar hiper-parámetros de la red para conseguir mejores resultados. 

Saludos,

Autor: 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:

Entrada destacada

Desde HOY es BlackFriday en 0xWord.com Cupón 10% descuento: BLACKFRIDAY2024 y descuentos con Tempos de MyPublicInbox @0xWord @mypublicinbox

Pues este año tenemos el  BlackFriday  durante  7 días , y poco más que decir en el artículo que lo que he puesto en el título del artículo....

Entradas populares