Está en la página 1de 11

Explicación lineal de ejemplos adversarios:

Considera el producto punto entre un vector de pesos 𝑤, y un ejemplo adversario 𝑥̌

𝑤 𝑥̌ = 𝑤 𝑥 + 𝑤 𝑛

La perturbación adversaria causa el crecimiento de la activación 𝑤 𝑛 podemos maximizar este


incremento sometiendo a la máxima norma restringida en 𝜂 asignando 𝜂 = 𝑠𝑖𝑔𝑛(𝑤), si 𝑤 tiene n
dimensiones y la magnitud promedio de un elemento del vector de pesos es m, luego la activación
crecerá a 𝜖mn.. ya que ||𝜂||∞ no crece con la dimensión del problema pero los cambios en la activación
causados por la perturbación por 𝜂 pueden crecer linealmente con n, luego para problemas de altas
dimensiones, podemos hacer muchos cambios infinitesimales a la entrada que agrega un gran cambio
a la salida, se puede pensar en esto como un ordenamiento de “ esteganografía accidental” , donde
un modelo lineal es forzado a atender exclusivamente a la señal que se alinea más estrechamente con
sus pesos, incluso si hay múltiples señales presentes y otras señales tienen mucha mayor amplitud.
La explicación muestra que un simple modelo lineal puede tener ejemplos adversarios si estas
entradas tienen suficiente dimensionalidad. Explicaciones anteriores de ejemplos adversarios invocan
propiedades hipotéticas de redes neuronales con su naturaleza altamente no lineal. Nuestra hipótesis
de naturaleza no lineal es simple, y puede también explicar porque la regresión softmax es vulnerable
a ejemplos adversarios
Perturbaciones lineales a modelos no lineales:
Nuestras hipótesis de ataques adversarios es que pueden atacar a redes neuronales debido a que su
naturaleza es lineal. Redes con ReLU están diseñadas para comportarse de alguna manera lineal, para
que sean más fácil de optimizar, más modelos no lineales como las redes sigmoideas están
cuidadosamente ajustados para pasar la mayoría del tiempo en la no saturación.
Utilizando el FGSM se usaron valores de 𝜖 como 0.25 causo que el clasificador softmax superficial
tenga una taza de error de 99.99% con el conjunto de prueba MNIST.
Usando un 𝜖 de 0.1 se obtuvo una taza de error de 87.15%

Función de activación
Figura. Función de activación sigmoidea

Podemos ver que 𝝈(𝒛)𝜎(𝑧) actúa como una especie de función


“aplastadora”, comprimiendo nuestra salida a un rango de 0 a 1. En el centro,
donde z=0z=0, σ(0)=1/(1+e0)=1/2σ(0)=1/(1+e0)=1/2. Para valores
negativos grandes de zz, el término e−ze−z en el denominador crece
exponencialmente, y σ(z)σ(z) se aproxima a 0. Al contrario, valores
positivos grandes de zz reducen e−ze−z hacia 0, y σ(z)σ(z) se aproxima a
1. Las funciones sigmoides fueron la base de la mayoría de las redes
neuronales por muchas décadas, aunque en años recientes han perdido
popularidad. En su lugar, la mayoría de las redes neuronales actuales usan
otro tipo de función de activación llamada rectified linear unit o ReLU. A
pesar del nombre complicado, se define simplemente como R(z)=max(0,z)
Figura. Función de activación ReLU
En otras palabras, las ReLUs permiten el paso de todos los valores positivos sin cambiarlos, pero
asigna todos los valores negativos a 0. Aunque existen funciones de activación aún más recientes, la
mayoría de las redes neuronales de hoy utilizan ReLU o una de sus variantes.

METODOLOGÍA DE PRUEBA A ROBUSTEZ DE MODELOS A ATAQUE ADVERSARIO


Según [met FGSM] las principales causas de engañar modelos mediantes ataques adversarios tienen
que ver con la linealidad y el sobreajuste.
Se dice que la principal causa de la vulnerabilidad de redes neuronales ante ataques adversarios es su
naturaleza lineal.
La causa de estos ejemplos adversarios fue un misterio, y explicaciones especulativas han sugerido
que esto es debido a la extrema no linealidad de redes neuronales, quizás combinada con modelos
insuficientes en regularización en modelos supervisados.
En esta sección se mostrará un método rápido de generación de ejemplos adversarios para un
entrenamiento con un conjunto de datos adversarios.
Con el objetivo de analizar la robustez ante imágenes adversarias de los modelos presentados
anteriormente como los son el modelo entrenado desde cero y los dos modelos de transferencia de
aprendizaje, se describe el procedimiento mediante 4 pasos resumidos de la siguiente forma:
Paso 1: división aleatoria de datos de entrenamiento y prueba
En el primer paso se realiza una división de datos en dos subconjuntos como lo son el conjunto de
datos de entrenamiento y el conjunto de datos de prueba, desapareciendo así el conjunto de datos de
validación el cual se utilizaba para discriminar la existencia de sobreajuste. Para esta sección
solamente se usarán estos dos subconjuntos en donde se reserva un 90% a los datos de entrenamiento
y un 10% para los datos de prueba. Esta acción de división de datos se realiza aleatoriamente con el
fin de realizar varias repeticiones de entrenamientos y pruebas que permitan mostrar la media y
desviación estándar final.
Paso 2: Entrenamiento de la red y generación de imágenes adversarias con el método de signo
de gradiente rápido (FGSM)
Una vez entrenada la red se realiza la generación de imágenes adversarias con el método de signo de
gradiente rápido. Este método causa de manera confiable que una amplia variedad de modelos
clasifique erróneamente su entrada.
La esencia de FGSM es agregar el ruido (no aleatorio) cuya dirección es la misma que el gradiente
de la función de costo con respecto a los datos. El ruido es escalado por épsilon, que generalmente
está limitado a ser un número pequeño. La magnitud del gradiente no importa en esta fórmula, sino
la dirección (+/-).
Épsilon es un número pequeño que controla el tamaño del ataque de confrontación, que debe elegirse
para ser efectivo pero no demasiado obvio.
La siguiente ecuación denota el método de signo de gradiente, con el cual se puede generar ejemplos
adversarios. Cabe notar que el gradiente requerido puede ser calculado eficientemente usando la
propagación hacia atrás.

𝜂 = 𝜖𝑠𝑖𝑔𝑛(𝛻𝑥 𝐽(𝜃, 𝑥, 𝑦) ()

𝑋𝐴𝐷𝑉𝐸𝑅𝑆𝐴𝑅𝐼𝐴𝐿 = 𝑋 + 𝜖𝑠𝑖𝑔𝑛(𝛻𝑥 𝐽(𝜃, 𝑥, 𝑦) ()

𝜃 son los parámetros del modelo


𝑥 La entrada del modelo
𝑦 las etiquetas asociadas con 𝑥
𝐽(𝜃, 𝑥 , 𝑦) Sería el costo usado para entrenar la red neuronal.
[met FGSM]
[met FGSM] Ian J. Goodfellow, Jonathon Shlens & Christian Szegedy. 2015. EXPLAINING AND
HARNESSING ADVERSARIAL EXAMPLES.

Paso 3: Observación del porcentaje de precisión


Finalizado el proceso de generación de ataques adversarios con el conjunto de prueba, se procede a
observar los respectivos porcentajes de precisión del modelo. En este caso se realiza una comparación
de precisión de los modelos atacados y no atacados, de igual forma se muestran los efectos que tiene
la variación del valor de épsilon sobre el ruido agregado a las imágenes de entrada y el porcentaje de
error estimado.
Paso 4: Comparación de robustez en los tres modelos de aprendizaje profundo
Todo el proceso de entrenamiento y prueba tanto en redes atacadas y no atacadas, se realiza en los
tres modelos de aprendizaje profundo, realizando 10 repeticiones de entrenamiento por cada modelo
para observar la variación de cada uno de estos. Finalmente con estos resultados se podrá visualizar
en que porcentaje estas redes pueden ser vulnerables ante la generación de imágenes adversarias
mediante el uso de FGSM el cual es un método rápido pero poderoso para atacar redes neuronales
artificiales.
A continuación se muestra un diagrama en donde se resumen los pasos anteriormente descritos
Figura. Diagrama de metodología de verificación de robustez ante ataques adversarios a los tres
modelos de aprendizaje profundo
Fuente: Autor

RED DESDE CERO

Precisión de Precisión de Pérdidas de Precisión de Pérdidas de


Pérdidas de
entrenamiento validación validación prueba (%) prueba
entrenamiento
(%) (%)
91.590±0.335 0.290±0.031 92.640±1.392 0.280±0.043 91.720±1.200 0.290±0.040

RED INCEPTION V3

Precisión de Precisión de Pérdidas de Precisión de Pérdidas de


Pérdidas de
entrenamiento validación validación prueba (%) prueba
entrenamiento
(%) (%)
97.530±0.878 0.140±0.015 91.910±2.485 0.330±0.084 92.070±2.975 0.330±0.338

RED INCEPTIONRESNET V2

Precisión de Precisión de
Pérdidas de Pérdidas de Precisión de Pérdidas de
entrenamiento validación
entrenamiento validación prueba (%) prueba
(%) (%)
89.685±0.317 0.290±0.004 87.876±1.763 0.343±0.042 87.701±1.407 0.358±0.030
Entreno Pérdidas Validación Pérdidas Prueba Pérdidas
Modelo
(%) Entreno (%) Validación (%) Prueba
Red desde cero 91.590±0.335 0.290±0.031 92.640±1.392 0.280±0.043 91.720±1.200 0.290±0.040
Red Inception
97.530±0.878 0.140±0.015 91.910±2.485 0.330±0.084 92.070±2.975 0.330±0.338
v3
Red
InceptionResNet 89.685±0.317 0.290±0.004 87.876±1.763 0.343±0.042 87.701±1.407 0.358±0.030
v2

FAST GRADIENT SIGN METHOD


Una propiedad intrigante aquí es el hecho de que los gradientes se toman con
respecto a la imagen de entrada. Esto se hace porque el objetivo es crear una imagen
que maximice la pérdida. Un método para lograr esto es encontrar cuán

to contribuye cada píxel en la imagen al valor de pérdida y agregar una


perturbación en consecuencia. Esto funciona bastante rápido porque es fácil encontrar
cómo cada píxel de entrada contribuye a la pérdida, utilizando la regla de la cadena y
encontrando los gradientes requeridos. Por lo tanto, los gradientes se utilizan con
respecto a la imagen. Además, dado que el modelo ya no se está entrenando (por lo
tanto, el gradiente no se toma con respecto a las variables entrenables, es decir, los
parámetros del modelo), por lo que los parámetros del modelo permanecen constantes. El
único objetivo es engañar a un modelo ya entrenado.

Cuando estamos entrenando una red neuronal para clasificar imágenes, la


función de pérdida suele ser una entropía cruzada categórica, los
parámetros del modelo son los pesos de la red y las entradas son los
valores de píxeles de la imagen.

Sea x la imagen original, y la clase de x , θ los pesos de la red y L (θ, x, y) la


función de pérdida utilizada para entrenar la red.
Primero, calculamos el gradiente de la función de pérdida de acuerdo con
los píxeles de entrada. El operador ∇ es solo una forma matemática
concisa de tomar las derivadas de una función de acuerdo con muchos de
sus parámetros. Puede pensar como una matriz de forma [ancho, alto,
canales] que contiene las pendientes de las tangentes .

Como antes, solo nos interesa el signo de las pendientes para


saber si queremos aumentar o disminuir los valores de
píxeles. Multiplicamos estos signos por un valor muy pequeño ε para
asegurar que no vamos demasiado lejos en la superficie de la función de
pérdida y que la perturbación sea imperceptible. Esta será
nuestra perturbación .

Nuestra imagen final es solo nuestra imagen original a la que le agregamos


la perturbación η.
La familia de ataques donde puede usar gradientes de cómputo utilizando
el modelo de destino se denominan ataques de caja blanca .
Estrategias de confrontación de ataques adversarios

La primera idea que viene a la mente al tratar de defender ejemplos


adversos es generar muchos de ellos y ejecutar más pases de
entrenamiento en la red con estas imágenes y la clase correcta como
objetivos. Esta estrategia se llama entrenamiento de confrontación .

Si bien esta estrategia mejora la robustez de los ataques FGSM , tiene


múltiples desventajas:

 No ayuda contra ataques de caja blanca más sofisticados como RAND


+ FGSM , que, como se explica en el artículo, no podemos usar para
entrenar de manera adversa una red.

 Tampoco ayuda contra los ataques de caja negra.

Christian Szegedy , Wojciech Zaremba , Ilya Sutskever , Joan Bruna , Dumitru


Erhan , Ian Goodfellow , Rob Fergus

En el paper denominado: PROPIEDADES INTRIGANTES DE REDES NEURONALES


Descubrieron que los modelos de aprendizaje automático
pueden clasificar erróneamente los datos que son solo
ligeramente diferentes de los datos que el modelo ha visto
(para introducción a ataques adversarios en presentación)

Explicacion en ESPAÑOL

Paper: explicando y aprovechando ejemplos adversos

Algunas de las explicaciones especulativas para la causa de estos ejemplos adversos son
 No linealidad de las redes neuronales.
 Regularización insuficiente
 Promedio de modelo insuficiente
Algunas de las conclusiones importantes de este documento
son que no necesitamos considerar la no linealidad de las
redes neuronales. Se pueden crear ejemplos adversarios
explotando el comportamiento lineal en espacios de alta
dimensión. El documento presenta un método más rápido
para generar ejemplos adversos, llamado Método de signo de
gradiente rápido. El documento también muestra que el
entrenamiento contradictorio se puede utilizar como una
técnica de regularización.
MODELOS LINEALES Y EJEMPLOS ADVERSOS
Señalan que las redes LSTM, ReLU y Maxout están diseñadas
intencionalmente para comportarse de forma lineal para que la
optimización sea más fácil. Incluso las redes sigmoidales están
sintonizadas para pasar la mayor parte del tiempo en el área
lineal. Por lo tanto, estas redes no pueden resistir ejemplos
adversos lineales.
CONSULTAR RELU COMO CAUSANTE DE ATAQUES
ADVERSARIOS POPO
APRENDIZAJE PROFUNDO
Aprendizaje profundo (en inglés, deep learning) es un conjunto
de algoritmos de aprendizaje automático (en inglés, machine learning) que intenta modelar
abstracciones de alto nivel en datos usando arquitecturas computacionales que admiten
transformaciones no lineales múltiples e iterativas de datos expresados en forma matricial o
tensorial. 1
El aprendizaje profundo es parte de un conjunto más amplio de métodos de aprendizaje
automático basados en asimilar representaciones de datos. Una observación (por ejemplo,
una imagen) puede ser representada en muchas formas (por ejemplo, un vector de píxeles),
pero algunas representaciones hacen más fácil aprender tareas de interés (por ejemplo, "¿es
esta imagen una cara humana?") sobre la base de ejemplos, y la investigación en esta área
intenta definir qué representaciones son mejores y cómo crear modelos para reconocer estas
representaciones.
Varias arquitecturas de aprendizaje profundo, como redes neuronales profundas, redes
neuronales profundas convolucionales, y redes de creencia profundas, han sido aplicadas a
campos como visión por computador, reconocimiento automático del habla, y reconocimiento
de señales de audio y música, y han mostrado producir resultados de vanguardia en varias
tareas.
No existe una única definición de aprendizaje profundo. En general se trata de una clase de
algoritmos ideados para el aprendizaje automático. A partir de este punto común, diferentes
publicaciones se centran en distintas características, por ejemplo:

 Usar una cascada de capas con unidades de procesamiento no lineal para extraer y
transformar variables. Cada capa usa la salida de la capa anterior como entrada. Los
algoritmos pueden utilizar aprendizaje supervisado o aprendizaje no supervisado, y las
aplicaciones incluyen modelización de datos y reconocimiento de patrones.
 Estar basados en el aprendizaje de múltiples niveles de características o representaciones
de datos. Las características de más alto nivel se derivan de las características de nivel
inferior para formar una representación jerárquica.
 Aprender múltiples niveles de representación que corresponden con diferentes niveles de
abstracción. Estos niveles forman una jerarquía de conceptos.
Todas estas maneras de definir el aprendizaje profundo tienen en común: múltiples capas de
procesamiento no lineal; y el aprendizaje supervisado o no supervisado de representaciones
de características en cada capa. Las capas forman una jerarquía de características desde un
nivel de abstracción más bajo a uno más alto.
Los algoritmos de aprendizaje profundo contrastan con los algoritmos de aprendizaje poco
profundo por el número de transformaciones aplicadas a la señal mientras se propaga desde
la capa de entrada a la capa de salida. Cada una de estas transformaciones incluye
parámetros que se pueden entrenar como pesos y umbrales2(p6). No existe un estándar de
facto para el número de transformaciones (o capas) que convierte a un algoritmo en profundo,
pero la mayoría de investigadores en el campo considera que aprendizaje profundo implica
más de dos transformaciones intermedias
PARAMETROS ENTRENADOS PARA CADA RED
RED ENTRENADA DESDE CERO
Precisión
Sin ataque: 87,623
Con ataque: 9,948
Perdidas:
Sin ataques: 0,264
Con ataques: 4,502

2’862.530
2’862.530

INCEPTION V3:
22’085.762
13’906.658

INCEPTIONRESNET:

54’554.178
4’919.618

También podría gustarte