Aprendizaje automático antagónico: cómo atacar y defender modelos de aprendizaje automático
Publicado: 2022-03-11Hoy en día, los modelos de aprendizaje automático en visión por computadora se utilizan en muchas aplicaciones del mundo real, como automóviles autónomos, reconocimiento facial, diagnóstico de cáncer o incluso en tiendas de próxima generación para rastrear qué productos los clientes sacan del estante para su crédito. la tarjeta se puede cargar al salir.
La precisión cada vez mayor de estos sistemas de aprendizaje automático es bastante impresionante, por lo que naturalmente condujo a una verdadera avalancha de aplicaciones que los utilizan. Aunque los fundamentos matemáticos detrás de ellos ya se estudiaron hace algunas décadas, el advenimiento relativamente reciente de las poderosas GPU les dio a los investigadores el poder de cómputo necesario para experimentar y construir sistemas complejos de aprendizaje automático. Hoy en día, los modelos de última generación para la visión por computadora se basan en redes neuronales profundas con hasta varios millones de parámetros, y se basan en hardware que no estaba disponible hace solo una década.
En 2012, Alex Krizhevsky et altri se convirtió en el primero en mostrar cómo implementar una red convolucional profunda, que en ese momento se convirtió en el modelo de vanguardia en la clasificación de objetos. Desde entonces, se han publicado muchas mejoras a su modelo original, cada una de las cuales brinda una mejora en la precisión (VGG, ResNet, Inception, etc.). Últimamente, los modelos de aprendizaje automático han logrado lograr una precisión humana e incluso superior a la humana en muchas tareas de visión artificial.
Hace algunos años, obtener predicciones incorrectas de un modelo de aprendizaje automático solía ser la norma. Hoy en día, esto se ha convertido en la excepción y esperamos que funcionen sin problemas, especialmente cuando se implementan en aplicaciones del mundo real.
Hasta hace poco, los modelos de aprendizaje automático generalmente se entrenaban y probaban en un entorno de laboratorio , como competencias de aprendizaje automático y trabajos académicos. Hoy en día, a medida que se implementan en escenarios del mundo real, las vulnerabilidades de seguridad que provienen de los errores del modelo se han convertido en una preocupación real.
La idea de este artículo es explicar y demostrar cómo las redes neuronales profundas de última generación utilizadas en el reconocimiento de imágenes pueden ser fácilmente engañadas por un actor malicioso y, por lo tanto, hacer que produzcan predicciones incorrectas. Una vez que nos familiaricemos con las estrategias de ataque habituales, discutiremos cómo defender nuestros modelos contra ellas.
Ejemplos de aprendizaje automático adversario
Comencemos con una pregunta básica: ¿Qué son los ejemplos de aprendizaje automático antagónicos?
Los ejemplos adversarios son entradas maliciosas diseñadas deliberadamente para engañar a un modelo de aprendizaje automático.
En este artículo, vamos a restringir nuestra atención a los modelos de aprendizaje automático que realizan la clasificación de imágenes. Por lo tanto, los ejemplos contradictorios serán imágenes de entrada creadas por un atacante que el modelo no puede clasificar correctamente.
Como ejemplo, tomemos una GoogLeNet entrenada en ImageNet para realizar la clasificación de imágenes como nuestro modelo de aprendizaje automático. A continuación tienes dos imágenes de un panda que son indistinguibles al ojo humano. La imagen de la izquierda es una de las imágenes limpias en el conjunto de datos de ImageNet, que se usa para entrenar el modelo de GoogLeNet. El de la derecha es una ligera modificación del primero, creado al agregar el vector de ruido en la imagen central. El modelo predice que la primera imagen será un panda, como se esperaba. El segundo, en cambio, se predice (con un nivel de confianza muy alto) como un gibón.
El ruido agregado a la primera imagen no es aleatorio sino el resultado de una cuidadosa optimización por parte del atacante.
Como segundo ejemplo, podemos echar un vistazo a cómo sintetizar ejemplos adversarios en 3D utilizando una impresora 3D. La siguiente imagen muestra diferentes vistas de una tortuga 3D que los autores imprimieron y las clasificaciones erróneas del modelo Google Inception v3.
¿Cómo pueden los modelos de última generación, que tienen una precisión de clasificación superior a la humana, cometer errores tan aparentemente estúpidos?
Antes de profundizar en las debilidades que suelen tener los modelos de redes neuronales, recordemos que los humanos tenemos nuestro propio conjunto de ejemplos contradictorios. Hecha un vistazo a la imagen de abajo. ¿Que ves? ¿Una espiral o una serie de círculos concéntricos?
Lo que estos diferentes ejemplos también revelan es que los modelos de aprendizaje automático y la visión humana deben usar representaciones internas bastante diferentes al comprender qué hay en una imagen.
En la siguiente sección, vamos a explorar estrategias para generar ejemplos contradictorios.
Cómo generar ejemplos adversarios
Comencemos con una pregunta simple: ¿Qué es un ejemplo contradictorio?
Los ejemplos adversarios se generan tomando una imagen limpia que el modelo clasifica correctamente y encontrando una pequeña perturbación que hace que el modelo ML clasifique incorrectamente la nueva imagen.
Supongamos que un atacante tiene información completa sobre el modelo que quiere atacar. Básicamente, esto significa que el atacante puede calcular la función de pérdida del modelo $J(\theta, X, y)$ donde $X$ es la imagen de entrada, $y$ es la clase de salida y $\theta$ son las imágenes internas. parámetros del modelo. Esta función de pérdida suele ser la probabilidad de pérdida negativa para los métodos de clasificación.
Bajo este escenario de caja blanca, hay varias estrategias de ataque, cada una de las cuales representa diferentes compensaciones entre el costo computacional para producirlas y su tasa de éxito. Todos estos métodos esencialmente intentan maximizar el cambio en la función de pérdida del modelo mientras mantienen pequeña la perturbación de la imagen de entrada. Cuanto mayor sea la dimensión del espacio de la imagen de entrada, más fácil será generar ejemplos contradictorios que el ojo humano no pueda distinguir de las imágenes limpias.
Método L-BFGS
Encontramos el ${x}'$ del ejemplo contradictorio al resolver el siguiente problema de optimización con restricciones de cuadro:
donde $c > 0$ es un parámetro que también debe resolverse. Intuitivamente, buscamos imágenes antagónicas ${x}'$ tales que la suma ponderada de la distorsión con respecto a la imagen limpia ( $\left | x - {x}' \right |$ ) y la pérdida con respecto a la clase incorrecta es el mínimo posible.
Para modelos complejos como redes neuronales profundas, el problema de optimización no tiene una solución de forma cerrada y, por lo tanto, se deben usar métodos numéricos iterativos. Debido a esto, este método L-BFGS es lento. Sin embargo, su tasa de éxito es alta.
Señal de gradiente rápido (FGS)
Con el método de signo de gradiente rápido (FGS), hacemos una aproximación lineal de la función de pérdida alrededor del punto inicial, dada por el vector de imagen limpia $X$ y la clase verdadera $y$ .
Bajo esta suposición, el gradiente de la función de pérdida indica la dirección en la que necesitamos cambiar el vector de entrada para producir un cambio máximo en la pérdida. Para mantener pequeño el tamaño de la perturbación, solo extraemos el signo del gradiente, no su norma real, y lo escalamos por un pequeño factor épsilon.
De esta forma nos aseguramos de que la diferencia de píxeles entre la imagen inicial y la modificada sea siempre menor que épsilon (esta diferencia es la norma L_infinity).
El gradiente se puede calcular de manera eficiente utilizando retropropagación. Este método es uno de los más rápidos y computacionalmente más baratos de implementar. Sin embargo, su tasa de éxito es menor que la de métodos más caros como L-BFGS.
Los autores de Adversarial Machine Learning at Scale dijeron que tiene una tasa de éxito de entre el 63 % y el 69 % en la predicción top 1 para el conjunto de datos de ImageNet, con épsilon entre 2 y 32. Para modelos lineales, como la regresión logística, el método de signo de gradiente rápido es exacto En este caso, los autores de otro trabajo de investigación sobre ejemplos contradictorios reportan una tasa de éxito del 99%.

Signo de gradiente rápido iterativo
Una extensión obvia del método anterior es aplicarlo varias veces con un alfa de tamaño de paso más pequeño y recortar la longitud total del paso para asegurarse de que la distorsión entre las imágenes limpias y contradictorias sea menor que épsilon.
Otras técnicas, como las propuestas en el artículo de Nicholas Carlini, son mejoras sobre el L-BFGS. También son costosos de calcular, pero tienen una alta tasa de éxito.
Sin embargo, en la mayoría de las situaciones del mundo real, el atacante no conoce la función de pérdida del modelo objetivo. En este caso, el atacante tiene que emplear una estrategia de caja negra.
Ataque de caja negra
Los investigadores han observado repetidamente que los ejemplos contradictorios se transfieren bastante bien entre modelos, lo que significa que pueden diseñarse para un modelo objetivo A, pero terminan siendo efectivos contra cualquier otro modelo entrenado en un conjunto de datos similar.
Esta es la llamada propiedad de transferibilidad de los ejemplos contradictorios, que los atacantes pueden usar en su beneficio cuando no tienen acceso a la información completa sobre el modelo. El atacante puede generar ejemplos contradictorios siguiendo estos pasos:
- Consulta el modelo de destino con entradas $X_i$ para $i=1…n$ y almacena las salidas $y_i$ .
- Con los datos de entrenamiento $(X_i, y_i)$ , construye otro modelo, llamado modelo sustituto.
- Utilice cualquiera de los algoritmos de caja blanca que se muestran arriba para generar ejemplos contradictorios para el modelo sustituto. Muchos de ellos se transferirán con éxito y también se convertirán en ejemplos adversarios para el modelo de destino.
En este documento de Computer Vision Foundation se presenta una aplicación exitosa de esta estrategia frente a un modelo comercial de aprendizaje automático.
Defensas contra ejemplos adversarios
El atacante elabora el ataque, explotando toda la información que tiene sobre el modelo. Obviamente, cuanta menos información genere el modelo en el momento de la predicción, más difícil será para un atacante diseñar un ataque exitoso.
Una primera medida sencilla para proteger su modelo de clasificación en un entorno de producción es evitar mostrar puntuaciones de confianza para cada clase predicha. En su lugar, el modelo solo debe proporcionar las $N$ principales (p. ej., 5) clases más probables. Cuando se proporcionan puntajes de confianza al usuario final, un atacante malicioso puede usarlos para estimar numéricamente el gradiente de la función de pérdida. De esta forma, los atacantes pueden crear ataques de caja blanca utilizando, por ejemplo, el método de signo de gradiente rápido. En el artículo de Computer Vision Foundation que citamos anteriormente, los autores muestran cómo hacer esto frente a un modelo comercial de aprendizaje automático.
Veamos dos defensas que se han propuesto en la literatura.
Destilación defensiva
Este método intenta generar un nuevo modelo cuyos gradientes son mucho más pequeños que el modelo original sin defensa. Si los gradientes son muy pequeños, técnicas como FGS o Iterative FGS ya no son útiles, ya que el atacante necesitaría grandes distorsiones de la imagen de entrada para lograr un cambio suficiente en la función de pérdida.
La destilación defensiva introduce un nuevo parámetro $T$ , llamado temperatura, en la última capa softmax de la red:
Tenga en cuenta que, para T = 1, tenemos la función softmax habitual. Cuanto mayor sea el valor de $T$ , menor será el gradiente de pérdida con respecto a las imágenes de entrada.
La destilación defensiva procede de la siguiente manera:
- Entrena una red, llamada red maestra, con una temperatura $T » 1$ .
- Utilice la red de profesores capacitados para generar etiquetas blandas para cada imagen en el conjunto de capacitación. Una etiqueta suave para una imagen es el conjunto de probabilidades que el modelo asigna a cada clase. Como ejemplo, si la imagen de salida es un loro, el modelo de maestro podría generar etiquetas flexibles como (90 % loro, 10 % papagayo).
- Entrene una segunda red, la red destilada , en las etiquetas blandas, usando nuevamente la temperatura $T$ . El entrenamiento con etiquetas blandas es una técnica que reduce el sobreajuste y mejora la precisión fuera de muestra de la red destilada.
- Finalmente, en el momento de la predicción, ejecute la red destilada con temperatura $T=1$ .
La destilación defensiva protege con éxito la red contra el conjunto de ataques intentados en Destilación como defensa contra las perturbaciones adversarias contra las redes neuronales profundas .
Desafortunadamente, un artículo posterior de investigadores de la Universidad de California, Berkeley, presentó un nuevo conjunto de métodos de ataque que derrotan la destilación defensiva. Estos ataques son mejoras sobre el método L-BFGS que prueban que la destilación defensiva no es una solución general contra ejemplos adversarios.
Entrenamiento adversario
Hoy en día, el entrenamiento adversario es la estrategia de defensa más eficaz. Los ejemplos adversarios se generan y utilizan al entrenar el modelo. Intuitivamente, si el modelo ve ejemplos contradictorios durante el entrenamiento, su rendimiento en el momento de la predicción será mejor para los ejemplos contradictorios generados de la misma manera.
Idealmente, nos gustaría emplear cualquier método de ataque conocido para generar ejemplos adversarios durante el entrenamiento. Sin embargo, para un gran conjunto de datos con alta dimensionalidad (como ImageNet), los métodos de ataque robustos como L-BFGS y las mejoras descritas en el artículo de Berkeley son demasiado costosos desde el punto de vista computacional. En la práctica, solo podemos permitirnos utilizar un método rápido como FGS o FGS iterativo.
El entrenamiento adversario utiliza una función de pérdida modificada que es una suma ponderada de la función de pérdida habitual en ejemplos limpios y una función de pérdida de ejemplos adversarios.
Durante el entrenamiento, por cada lote de $m$ imágenes limpias, generamos $k$ imágenes antagónicas utilizando el estado actual de la red. Reenviamos la propagación de la red tanto para ejemplos limpios como contradictorios y calculamos la pérdida con la fórmula anterior.
Una mejora de este algoritmo que se presenta en este documento de conferencia se llama entrenamiento contradictorio conjunto. En lugar de utilizar la red actual para generar ejemplos contradictorios, se utilizan varios modelos previamente entrenados para generar ejemplos contradictorios. En ImageNet, este método aumenta la solidez de la red frente a los ataques de caja negra. Esta defensa fue la ganadora de la 1ra ronda en la competencia NIPS 2017 sobre Defensas contra Ataques Adversariales .
Conclusiones y pasos adicionales
A día de hoy, atacar un modelo de aprendizaje automático es más fácil que defenderlo. Los modelos de última generación implementados en aplicaciones del mundo real son fácilmente engañados por ejemplos contradictorios si no se emplea una estrategia de defensa, lo que abre la puerta a problemas de seguridad potencialmente críticos. La estrategia de defensa más confiable es el entrenamiento contradictorio, donde se generan ejemplos contradictorios y se agregan a los ejemplos limpios en el momento del entrenamiento.
Si desea evaluar la solidez de sus modelos de clasificación de imágenes frente a diferentes ataques, le recomiendo que utilice la biblioteca de código abierto de Python, Cleverhans. Se pueden probar muchos métodos de ataque con su modelo, incluidos los mencionados en este artículo. También puede usar esta biblioteca para realizar entrenamiento contradictorio de su modelo y aumentar su robustez para ejemplos contradictorios.
Encontrar nuevos ataques y mejores estrategias de defensa es un área activa de investigación. Se requiere más trabajo teórico y empírico para hacer que los modelos de aprendizaje automático sean más sólidos y seguros en las aplicaciones del mundo real.
Animo al lector a experimentar con estas técnicas y publicar nuevos resultados interesantes. Además, cualquier comentario sobre el presente artículo es muy bienvenido por parte del autor.
- Lógica de sonido y modelos de IA monótona
- Las múltiples aplicaciones del descenso de gradiente en TensorFlow