60
PROYECTO INTEGRADOR DE LA CARRERA INGENIER ´ IA MEC ´ ANICA ROBUSTEZ DE LAS REDES NEURONALES PROFUNDAS PARA CLASIFICAR IM ´ AGENES M ´ EDICAS Mat´ ıas Alejandro Kloster Alumno Dr. Mato Germ´ an Director Dr. Curiale Ariel Hern´ an Co-director Miembros del Jurado Dr. Colavecchia Flavio Dar´ ıo (CNEA) Ing. Rovere Luis (Fundaci´ on Intecnus) 10 de Junio de 2019 Gerencia de F´ ısica - Centro At´ omico Bariloche Instituto Balseiro Universidad Nacional de Cuyo Comisi´ on Nacional de Energ´ ıa At´ omica Argentina

PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

PROYECTO INTEGRADOR DE LA CARRERA

INGENIERIA MECANICA

ROBUSTEZ DE LAS REDES NEURONALESPROFUNDAS PARA CLASIFICAR IMAGENES

MEDICAS

Matıas Alejandro KlosterAlumno

Dr. Mato GermanDirector

Dr. Curiale Ariel HernanCo-director

Miembros del JuradoDr. Colavecchia Flavio Darıo (CNEA)Ing. Rovere Luis (Fundacion Intecnus)

10 de Junio de 2019

Gerencia de Fısica - Centro Atomico Bariloche

Instituto BalseiroUniversidad Nacional de Cuyo

Comision Nacional de Energıa AtomicaArgentina

Page 2: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 3: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

A mi familia

A mis amigos

Y a todas esas personas que me hacen feliz

Page 4: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 5: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Indice de contenidos

Indice de contenidos v

Resumen vii

Abstract ix

1. Introduccion 1

2. Marco teorico 5

3. Generacion y deteccion de ejemplos adversariales 15

4. Resultados 21

4.1. Ataque y defensa en imagenes de MNIST y CIFAR-10 . . . . . . . . . . 21

4.2. Ataque y defensa en imagenes de retinopatıa diabetica . . . . . . . . . 28

4.3. Robustez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5. Conclusiones 35

A. Proyecto y diseno 37

B. Ataque y defensa en imagenes de retinopatıa diabetica 39

Agradecimientos 45

Bibliografıa 47

v

Page 6: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 7: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Resumen

En esta tesis se aborda el problema de clasificacion automatica de imagenes utilizan-

do tecnicas de redes neuronales profundas. Estas tecnicas permiten lograr resultados

comparables con los del sistema visual humano, pero presentan limitaciones tales como

ser vulnerables a ejemplos adecuadamente elegidos. Estos ejemplos, son llamados ejem-

plos adversariales y se pueden construir de diversas maneras a partir de una imagen

natural. Los ejemplos adversariales son clasificados erroneamente por la red, pero son

visualmente indistinguibles de las imagenes naturales

Luego de un estudio exhaustivo de dicha problematica, se realiza la generacion de

ejemplos adversariales sobre dos bases de datos ampliamente conocidas. Luego, dada

una imagen se implementa un algoritmo que detecta si la misma es natural o adversarial,

tomando nota de la precision del metodo.

Por ultimo, se realizaron las mismas pruebas sobre una base de datos de imagenes

de una patologıa denominada retinopatıa diabetica, en donde la red neuronal utilizada

categoriza la imagen segun la gravedad de la enfermedad o la ausencia de la misma. La

deteccion de las imagenes adversariales de retinopatıa diabetica utilizando el metodo

propuesto en este estudio presenta un error de 3.8 %.

vii

Page 8: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 9: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Abstract

This thesis approaches the problem of automatic image classification using deep

neural network techniques. These techniques achieve results comparable with those

of the human visual system, but they present limitations such as being vulnerable

to properly chosen examples. These examples, are called adversarial examples and

can be constructed in various ways from a natural image. Adversarial examples are

erroneously classified by the network, but are visually indistinguishable from natural

images.

After an exhaustive study of this problem, adversarial examples are generated on

the basis of two widely known databases. Then, given an image, an algorithm is

implemented that detects if it is natural or adversarial, taking note of the precision of

the method.

Finally, the same tests were performed on a database of images of a pathology called

diabetic retinopathy, where the neuronal network categorizes the image according to the

severity of the disease or its absence. The detection of diabetic retinopathy adversarial

images using the method proposed in this study presents an error of 3.8%.

ix

Page 10: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 11: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Capıtulo 1

Introduccion

Inteligencia artificial (IA) es un termino muy utilizado hoy en dıa, sin embargo,

la comunidad cientıfica no logra llegar a un consenso en su definicion. No obstante,

podrıa decirse que la mayorıa de los investigadores coinciden en la esencia del concepto.

Algunos de los ejemplos con los que se podrıa definir la IA son:

“La ciencia e ingenio de hacer maquinas inteligentes, especialmente programas

de computo inteligentes” - John McCarthy 1956

“La interesante tarea de lograr que las computadoras piensen” - John Haugeland

1985

“El arte de crear maquinas con capacidad de realizar funciones que realizadas

por personas requieren inteligencia” - Raymond Kurzweil 1990

Alan Turing, considerado el padre de la inteligencia artificial (IA), fue el primero

en proporcionar una definicion operacional y satisfactoria de la misma en su trabajo

titulado “Computing Machinery and Intelligence” en 1950. En lugar de proponer una

lista larga y quiza controvertida de cualidades necesarias para obtener inteligencia

artificialmente, el sugirio una prueba basada en la incapacidad de diferenciar entre

entidades inteligentes indiscutibles y seres humanos. El computador supera la prueba

si un evaluador humano no es capaz de distinguir si las respuestas, a una serie de

preguntas planteadas, son de una persona o no [1] (pag 3). A dicha prueba se la conoce

como el test de Turing y demostro ser de gran importancia en la filosofıa de la IA.

Es cada vez mas difıcil ignorar el papel que juega la IA en nuestras vidas cotidia-

nas. Por ejemplo, dicha tecnologıa esta presente en los asistentes personales, vehıculos

autonomos, deteccion de fraudes, publicidad personalizada, diagnostico de imagenes

medicas, toma de decisiones, biometricas y automatizacion de procesos roboticos, en-

tre otras aplicaciones.

En los ultimos anos se han propuesto diferentes enfoques basados en IA para resolver

tareas especıficas. Los mismos han demostrado obtener una precision sorprendente,

1

Page 12: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

2 Introduccion

logrando resultados comparables con el ser humano en algunas tareas. Por ejemplo

en el area de reconocimiento, localizacion y deteccion de objetos [2], diagnostico de

enfermedades medicas tales como cancer de mama [3], cancer de piel [4], retinopatıa

diabetica (RD) [5] y demas. Dichos enfoques se basan en su mayorıa en tecnicas de

Machine Learning (ML) y redes neuronales o Deep Learning (DL).

Al utilizar las herramientas mencionadas para el caso particular de imagenes medi-

cas, se puede brindar un soporte cuantitativo en un diagnostico medico. Esto se realiza

con el fin de asistir al profesional, ofrecer una mejor calidad en los resultados y contri-

buir con los avances tecnologicos aplicados al campo de la medicina.

A pesar de la enorme cantidad de aplicaciones que tiene la IA, y en especial las

tecnicas de Deep Learning hoy en dıa, Szegedy et al. [6] realizan un descubrimiento

intrigante: varios modelos de ML, entre ellos las redes neuronales de ultima generacion,

son vulnerables a confundirse en la resolucion de su tarea. En el caso particular de

reconocimiento de imagenes, las redes neuronales pueden clasificar de manera erronea

una imagen que sea ligeramente diferente a una extraıda de la distribucion de datos.

En este sentido, se puede definir ejemplo o imagen adversarial a aquellas que presenten

esta caracterıstica, y por otro lado, se denomina imagen natural a las que son extraıdas

del conjunto de datos original.

Las imagenes naturales y adversariales pueden ser muy similares e incluso casi

indistinguibles para el ser humano. Para tener una mejor idea de esto, en la Figura 1.1

se observa una imagen de un panda, su perturbacion y por ultimo la imagen adversarial

correspondiente la cual es categorizada como un gibon (un tipo de mono).

(a) Imagen natural clasificadacomo “panda”.

(b) Perturbacion con un fac-tor de 0.007 para una mejor vi-sualizacion.

(c) Imagen adversarial cla-sificada erroneamente como“gibon” (un tipo de mono).

Figura 1.1: Generacion de un ejemplo adversarial a partir de la imagen de un panda (a)clasificada de forma correcta. Al sumar dicha imagen con una perturbacion inteligentementeelegida (b) se obtiene una imagen adversarial (c) la cual es clasificada erroneamente. Dichoejemplo fue extraıdo de Goodfellow et al. [7] y Szegedy et al. [6] aplicado a la red GoogleNetutilizando la base de datos ImageNet.

Este punto debil podrıa ser utilizado por terceros con fines maliciosos tales como

ocultamiento/robo de identidad. De hecho, redes sociales actuales como Facebook, apli-

Page 13: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

3

caciones como Google Fotos y muchos sistemas de vigilancia, utilizan modelos de ML.

En el ambito clınico, es cada vez mas frecuente que los sistemas de diagnostico asistido

por computador utilicen este tipo de tecnologıa, existiendo la posibilidad de obtener

un diagnostico o analisis erroneo frente a pequenas perturbaciones. Por ejemplo, di-

cha perturbacion puede ocurrir por causas de ruido o efecto de un artefacto. Dichas

consideraciones hacen pensar que el estudio de los ejemplos adversariales merece in-

vestigacion adicional. Mas aun, serıa de gran interes poder desarrollar metodos para

poder discriminar los ejemplos adversariales de las imagenes naturales.

En este estudio se realiza particular enfasis en imagenes de la enfermedad retino-

patıa diabetica. La misma, afecta alrededor de 93 millones de personas y es la principal

causa de ceguera en la poblacion en edad de trabajar del mundo desarrollado [8].

Objetivo y metodologıa propuesta

Dada la importancia que tiene estudiar y comprender los ejemplos adversariales

en el area de la medicina, el principal objetivo de este trabajo consiste en estudiar el

impacto que tienen los mismos sobre la clasificacion de imagenes medicas referidas a

la enfermedad retinopatıa diabetica.

Ademas, se busca la discriminacion entre imagenes de tipo adversarial y natural, a

traves de una metodologıa que sea robusta.

Para lograr los objetivos propuestos en este trabajo se propone la siguiente meto-

dologıa:

Estudio del estado del arte. Como primer paso, se busca establecer el marco

teorico concerniente al trabajo a realizar.

• Se realiza un estudio exhaustivo sobre diferentes tecnicas de IA [1], ML [9]

[10] y redes neuronales. Poniendo foco en las nuevas tecnicas de DL para el

reconocimiento de patrones [11].

• Estudio de los conceptos basicos en torno de los ejemplos adversariales [6]

[7], su generacion [12] y deteccion [13] en diversos contextos.

Herramientas computacionales. Con el fin de lograr los objetivos propuestos,

resulta fundamental establecer un marco de trabajo en el cual se pueden integrar

facilmente los distintos desarrollos que se presentan a lo largo de este texto. Para

esto es necesario el estudio y aprendizaje de diferentes bibliotecas y entornos

de programacion. A continuacion, se da informacion sobre las herramientas a

utilizar:

• Se utiliza Conda [14] como sistema de gestion de paquetes y ademas todos

los algoritmos utilizados se encuentran escritos en Python.

Page 14: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4 Introduccion

• Se utiliza NVIDIA CUDA (cuDNN) [15] como librerıa de redes neuronales

profundas aceleradas en la GPU.

• Se emplea Keras [16] como API de redes neuronales funcionando sobre Ten-

sorFlow [17] y ejecutandose en la GPU.

Desarrollo de los metodos propuestos

• Se realiza el desarrollo, entrenamiento y validacion de redes neuronales para

la clasificacion de imagenes de distintas bases de datos.

• Desarrollo e implementacion de un prototipo capaz de generar ejemplos

adversariales en base a imagenes extraıdas del conjunto de datos original.

Estas ultimas son denominadas imagenes naturales.

• Desarrollo e implementacion de un metodo capaz de detectar si una imagen

dada es un natural o adversarial, realizando las pruebas correspondientes y

tomando nota de la precision del metodo utilizado.

• Validacion de los metodos propuestos

Page 15: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Capıtulo 2

Marco teorico

En este capıtulo se busca establecer el marco teorico correspondiente con el fin de

poder comprender la naturaleza de los ejemplos adversariales, para esto se introducen

con mas detalle algunos conceptos importantes de la IA.

Machine Learning (ML)

Machine learning, tambien llamado aprendizaje automatico o aprendizaje de maqui-

nas es un area de la inteligencia artificial. Se podrıa definir a las tecnicas de ML como

aquellas que son capaces de aprender a partir de la experiencia, es decir, de los datos

suministrados para luego poder mejorar, describir y predecir resultados. A medida que

el algoritmo toma datos de entrenamiento, es posible producir modelos mas precisos

basados en esos datos. Algunos ejemplos de ML son regresion lineal o logıstica, sin em-

bargo, la principal dificultad que estos presentan es que dependen de la representacion

de las caracterısticas de los datos de entrada, como elegirlas adecuadamente no es un

problema trivial. En este punto es donde adquieren ventaja las redes neuronales, las

cuales infieren las caracterısticas relevantes directamente de los datos en crudo. Las

redes neuronales seran explicadas luego.

Enfoques para abordar ML

Dependiendo de la naturaleza del problema, como puede ser el tipo y volumen de

datos a tratar, existen diferentes enfoques de ML tales como aprendizaje supervisado y

no supervisado [10] (pag 14). En ambos casos, es importante que el modelo resultante

sea capaz de generalizar el comportamiento que sirva para un conjunto mas amplio, en

principio, infinito.

Aprendizaje supervisado. En este tipo de aprendizaje se requiere de un conjunto

de datos de los cuales ya se conoce la respuesta esperada que tendrıa que entregar el

5

Page 16: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

6 Marco teorico

algoritmo de ML. Por ejemplo, si se desea detectar perros y gatos de imagenes utilizan-

do tecnicas de ML basadas en aprendizaje supervisado, se debe contar con una base

de datos de imagenes de perros y gatos, y que cada imagen tenga su respuesta corres-

pondiente. Cuando la etiqueta o “respuesta” del sistema es continua, el problema es de

regresion, por otro lado, cuando la etiqueta posee un numero finito de posibilidades, el

problema es de clasificacion [10] (pag 15) tal como el ejemplo de deteccion de perros y

gatos. Este tipo de aprendizaje es el utilizado a lo largo de este estudio.

Aprendizaje no supervisado. A diferencia del anterior, este enfoque se utiliza

cuando se posee un conjunto de datos que no esta etiquetado. Muchas veces, esta

imposibilidad por tener el valor esperado se presenta por razones de tiempo, costo y/o

desconocimiento, y es aquı donde el aprendizaje no supervisado es fundamental. El

algoritmo de ML, debera ser capaz, segun los patrones que encuentre en los datos, de

entender el significado que poseen los mismos para resolver una tarea en particular

[10] (pags 15-16).

Tipos de tecnicas de ML

La comprension de diferentes clases de algoritmos de aprendizaje automatico es

esencial para elegir correctamente el metodo adecuado.

Algunas de las tecnicas mas utilizadas en la bibliografıa para resolver diversas tareas

son arbol de decisiones, algoritmos geneticos, reduccion de la dimensionalidad, regresion

lineal y redes neuronales artificiales entre otras. Estas ultimas, gracias a los avances

tecnologicos de las GPU, mostraron una precision comparable e incluso mejor a la del

ser humano en algunas tareas tales como reconocimiento de imagenes [18]. Por estas

razones nos centraremos en describir de forma detallada las redes neuronales.

Redes neuronales artificiales

El cerebro humano es superior a una computadora digital en muchas tareas. Ademas

tiene diversas caracterısticas que serıan deseables en los sistemas artificiales [11] (pag 1):

Robusto y tolerante a fallos. Las celulas nerviosas en el cerebro mueren todos los

dıas sin afectar su desempeno significativamente.

Robusto frente a informacion incompleta, ruidosa o inconsistente.

Puede tratar con informacion borrosa, probabilıstica, ruidosa o inconsistente.

Altamente paralelo.

Pequeno, compacto y disipa muy poca energıa.

Solo en las tareas basadas principalmente en la aritmetica simple el ordenador

Page 17: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

7

supera al cerebro, esta es la motivacion real de la comunidad cientıfica para el estudio

de las redes neuronales [11] (pag 1).

Las redes neuronales artificiales son sistemas que tuvieron su inspiracion inicial en

el funcionamiento de su homologo biologico. La unidad basica de las mismas es la neu-

rona artificial tambien basada en una neurona biologica, la cual recibe un conjunto de

estımulos cuyo nivel depende del peso sinaptico entre la neurona que emite el estımulo

y la que lo recibe. Es decir, en el modelo simplificado la neurona recibe un conjunto

de entradas x ponderadas por un vector de pesos interno e inherente a cada neurona

w. Finalmente el resultado de esta operacion es el argumento de una funcion llamada

funcion de activacion, y, si el valor es superior a algun umbral (tıpicamente 0), los

neurona es disparada y toma el valor de activacion (tıpicamente 1); de forma contraria,

toma el valor de desactivacion (tıpicamente -1) dando ası la salida de la neurona.

En la Figura 2.1 se puede observar un diagrama basico de una neurona biologica y

de una neurona artificial.

(a) Neurona biologica, en la cual se basala neurona artificial y se observa la clarasimilitud de las mismas. Imagen extraıday modificada de [11] (pag 2).

(b) Neurona artificial o perceptron deunidad unica, en donde se aprecia las en-tradas xi, los pesos de la neurona wi, sufuncion de activacion y la salida y.

Figura 2.1: Esquemas basicos de una neurona biologica y artificial.

Cabe mencionar que si bien la funcion de activacion se describio utilizando un

valor de umbral, la forma general de la misma es cualquier funcion analıtica, algunas

de las mas utilizadas son: softmax, relu, tanh, lineal y sigmoide entre otras [16]. En

particular, la funcion de activacion softmax posee la caracterıstica que todas sus salidas

son positivas y la suma de las mismas es igual a uno. Por tanto, en un problema de

clasificacion, al utilizar softmax como funcion de activacion en la ultima capa de una

red neuronal, cada valor de salida corresponde a la probabilidad de que la entrada

corresponda a esta clase.

Por otro lado, se puede pensar que una red neuronal, la cual no es mas que una cierta

cantidad de neuronas interconectadas entre sı, puede aprender parametros de las senales

de entrada para producir una salida deseada. A continuacion, se nombran algunos de

los tipos de redes neuronales artificiales existentes, comenzando por el perceptron, la

mas sencilla de las redes neuronales.

Page 18: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

8 Marco teorico

Perceptron. La definicion de perceptron fue presentada por Rosenblatt [19] en

donde explica entre otras cosas su funcionamiento basico y como se realiza la actua-

lizacion de los pesos internos del mismo. El mismo consta de una sola capa de nodos

de salida (Figura 2.2a) en donde cada uno de estos nodos o neuronas sigue el modelo

simplificado descripto anteriormente (Figura 2.1b). Algunos autores usan el termino

perceptron para referirse a las redes que constan de solamente una de estas unidades.

La limitacion que presenta un perceptron de unidad unica es que los elementos que se

desea categorizar deben poder separarse mediante un hiperplano, de hecho, en el ano

1969 en la monografıa titulada “Perceptrons” [20], Marvin Minsky y Seymour Papert

demostraron que un perceptron de unidad unica es incapaz de aprender una funcion

XOR, o mas generalmente, cualquier funcion que no sea linealmente separable.

Las limitaciones de un perceptron simple sirvieron de motivacion para la evolucion

de dicho concepto. Al introducir capas de neuronas ocultas, es decir capas que no son

la entrada ni la salida de la red neuronal, se consigue la representacion de funciones

linealmente separables. Basandose en esta idea se obtiene el denominado perceptron

multicapa, el cual sera explicado a continuacion.

Perceptron multicapa. Es una clase de redes que, como su nombre lo indica,

consta de multiples perceptrones organizados por capas, siendo estas: la capa de en-

trada, la de salida y un cierto numero de capas ocultas. Cada neurona en una capa

tiene su salida dirigida solamente a las neuronas de la capa siguiente (Figura 2.2b),

de hecho las redes que poseen esta caracterıstica son llamadas de tipo feed forward y

el perceptron multicapa es un caso particular de ellas. Ademas, si se cumple que cada

neurona de una capa esta conectada a todas las neuronas de la siguiente capa, se dice

que la capa es de tipo densa. Por otro lado, existe el teorema de aproximacion universal

que establece que cada funcion continua que mapea un intervalo de numeros reales a un

intervalo de salida puede ser aproximada tanto como se desee utilizando un perceptron

multicapa con solo una capa oculta [21]. Esta caracterıstica es la que permite superar

la limitacion del perceptron simple previamente mencionada.

(a) Perceptron. (b) Perceptron multicapa.

Figura 2.2: Ejemplos de un perceptron y un perceptron multicapa. Imagenes extraıdas de[11] (pag 90).

Las redes neuronales precisan de un metodo para aprender correctamente sus pesos

Page 19: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

9

con el fin de aproximar una funcion deseada, esto se logro gracias a la tecnica de

backpropagation la cual sera explicada a continuacion.

Backpropagation. Dicho algoritmo es esencial para el proceso de aprendizaje o

actualizacion de pesos internos en las redes neuronales actuales. Fue inventado varias

veces de forma independiente por Bryson y Ho (1969) [22], Werbos (1974) [23], Par-

ker (1985) [24] y Rumelhart, Hinton y Williams (1986) [25]. Por otro lado, Le Cun

(1985) [26] propuso un enfoque que guardaba una estrecha relacion con los demas

[11] (pag 115). El metodo backpropagation da una receta para cambiar los pesos inter-

nos de una red neuronal de tipo feed forward, con el fin de aprender la correcta funcion

o clasificacion para cierto conjunto de pares entrada-salida.

Se define una funcion de costo o perdida, la cual se desea minimizar. Dicha funcion

es una medida de la diferencia entre la salida obtenida y la salida deseada para un

cierto conjunto de pares entrada-salida.

Un metodo algo “ingenuo” para minimizar la funcion de costo, es variar de a un

parametro de la red por vez, y en cada variacion, tomar nota del comportamiento de la

funcion error. Este metodo implica recalcular la funcion de costo cada vez que se realice

una variacion de un parametro de la red. Dado que las redes neuronales pueden contener

decenas de millones de parametros, la minimizacion de la funcion error utilizando este

metodo tomarıa mucho tiempo

La clave del metodo backpropagation es utilizar gradiente descendiente para minimi-

zar la funcion de costo utilizando la regla de la cadena. La funcion que implementa una

red neuronal es una composicion de funciones. La derivada respecto a cada parametro

de una de estas funciones puede ser evaluada como un producto de derivadas de las

funciones que aparecen entre la funcion a derivar y la salida de la red. Este producto

puede ser realizado de manera natural por un procedimiento iterativo. Las derivadas

de las funciones de una dada capa pueden ser calculadas en termino de las deriva-

das de las funciones de las capas posteriores. Este procedimiento permite calcular el

gradiente de la funcion de costo utilizando una sola presentacion de los patrones de

entrada. Ademas este procedimiento tiene la ventaja de ser altamente paralelizable. Se

recomienda al lector consultar en Hertz [11, sec. 6.1] para mayor informacion.

Red neuronal convolucional. La historia de las mismas comienza con la inven-

cion del neocognitron [27], basado en los descubrimientos realizados por Hubel y Wiesel

[28] [29] los cuales llevaron a un mejor entendimiento sobre el funcionamiento de las

neuronas de la corteza visual de algunos seres vivos.

Dichas neuronas responden segun el estımulo de cierta region del campo de vision,

a diferencia de las capas densas las cuales tienen en cuenta toda la capa anterior

para computar su salida. Por ultimo, LeCun et al. [30] fueron los primeros en utilizar

backpropagation para aprender correctamente los coeficientes de una red convolucional.

La misma tenia como finalidad la deteccion de numeros manuscritos.

Page 20: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

10 Marco teorico

La esencia de las redes neuronales convolucionales, como su nombre lo indica, reside

en las capas de tipo convolucional. Cada capa completa comparte los pesos y funcion

de activacion, el conjunto de los pesos de una capa se denomina kernel. El mismo se

trata de una matriz mas pequena que la matriz de entrada y ademas cada kernel es util

identificar caracterısticas relevantes al problema. En la Figura 2.3 se observa a modo

esquematico como se extraen rasgos cada vez mas abstractos de una imagen.

Salida(ej. identidad del objeto)PersonaAuto Animal

partes del objeto

contornos y esquinas

bordes

Inf. de entrada(ej. pixels)

Figura 2.3: Se muestran los diferentes rasgos ex-traıdos de una imagen para ciertas capas de una redneuronal convolucional. Imagen extraıda de [31] (pag 6)

Como primer paso para obtener la salida de una capa de tipo convolucional, se

realiza la multiplicacion de cada elemento del kernel con su correspondiente elemento

de la matriz de entrada. Una vez obtenidos todos los productos se realiza la suma de los

mismos obteniendo ası la salida de la capa convolucional, ver Figura 2.4, o en caso de

que exista una funcion de activacion, se obtiene el argumento de la misma. Los valores

del kernel son los parametros a aprender por la red, utilizando una modificacion del

metodo de backpropagation [32].

Figura 2.4: Ejemplo esquematico de una operacion de con-volucion con sus correspondientes dimensiones.

En la Figura 2.4 se resalta que la profundidad de la matriz de entrada y del kernel

deben ser iguales. Ademas, en el ejemplo mostrado se cuenta con un solo kernel, por

Page 21: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

11

lo que la profundidad de la salida es de uno. En caso de poseer un cierto numero de

kernels, la profundidad de la salida sera dicho numero, en donde cada kernel detectara

cierta caracterıstica de la imagen o dato de entrada.

Se suele decir que los kernels representan una caracterıstica o feature relevante para

resolver el problema. Por lo tanto, la salida de una capa convolucional es la respuesta

de las neuronas a una caracterıstica dada cuando se presenta una imagen o dato de

entrada. En la Figura 2.5 se muestra un esquema de una red neuronal convolucional.

Figura 2.5: Ejemplo de una red convolucional extraıdo de [32]

Otros tipos de redes neuronales. Existe una gran variedad de tipos de redes

neuronales como por ejemplo las redes neuronales recurrentes (RNN) y long/short term

memory (Figura 2.6). Si bien estas redes tambien se utilizan para el reconocimiento de

patrones en imagenes, el estudio de las mismas queda fuera del alcance de este trabajo.

Para mayor informacion sobre las mismas y otros tipos de redes neuronales artificiales,

consultar en [11].

Figura 2.6: Algunos ejemplos de tipos de redes neuronales, a la de-recha se muestra una red neuronal recurrente y a la izquierda una redneuronal de tipo LSTM. Imagenes extraıdas de [33].

Deep learning (DL)

Si bien existen diversas definiciones de este concepto, se trata una red neuronal con

mas de una capa, en donde se puede pensar que cada capa le corresponde a un nivel

de abstraccion cada vez mas profundo.

Con las tecnicas mencionadas hasta ahora, puede realizarse una red neuronal arti-

ficial, que tenga como fin la correcta categorizacion de un cierto conjunto de imagenes

Page 22: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

12 Marco teorico

como puede observarse en la Figura 2.7. En lo que resta de este capıtulo se prosigue

al estudio de los ejemplos adversariales previamente mencionados, para luego, realizar

las pruebas correspondientes.

Figura 2.7: Modelo de caja negra de un algoritmo deDeep Learning, el cual categoriza imagenes pertenecien-tes a la base de datos CIFAR-10.

Ejemplos adversariales

Como ya se menciono previamente, algunos modelos de Machine Learning, inclu-

yendo las redes neuronales artificiales mostraron clasificar de manera erronea y con alta

confianza, algunos ejemplos a los cuales se agrego una perturbacion pequena pero inte-

ligentemente elegida para que esto ocurra. Es decir, estos modelos tienden a clasificar

de forma erronea ejemplos que son levemente diferentes a otros que clasifican de forma

correcta. En la Figura 2.8 se muestra una imagen natural categorizada como “ballena”

que al sumarle una cierta perturbacion se obtiene una imagen adversarial categorizada

como “tortuga”, dichas imagenes fueron extraıdas de [12].

(a) Imagen natural clasificadacomo “ballena”.

(b) Perturbacion. (c) Imagen adversarial clasifi-cada como “tortuga”.

Figura 2.8: Generacion de un ejemplo adversarial a partir de la imagen de una ballena (a)clasificada de forma correcta. Al sumar dicha imagen con una perturbacion inteligentementeelegida (b) se obtiene una imagen adversarial (c) la cual es clasificada erroneamente. Dichoejemplo fue extraıdo de Moosavi et al. [12].

Page 23: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

13

El descubrimiento de estos ejemplos se le atribuye a Szegedy et al. [6]. Por algun

tiempo la existencia de los mismos fue un misterio y algunas explicaciones sugerıan que

la causa era la no linealidad de las redes neuronales profundas. Sin embargo, Goodfe-

llow et al. [7] propone en cambio que la vulnerabilidad a los ejemplos adversariales es

una consecuencia de la naturaleza lineal de las redes neuronales. Ademas, sugiere que

la alta dimensionalidad de la entrada permite realizar pequenos cambios en algunas

dimensiones, de tal forma que la red neuronal lo clasifique de forma erronea, pero la

imagen sea casi indistinguible de la original por el ojo humano.

Actualmente, en la bibliografıa se han propuesto diversos metodos para generar

ejemplos adversariales. Por ejemplo, Su et al. [34] propone una forma de generar ejem-

plos adversariales modificando solamente un pixel de la imagen. Por otro lado, Moosavi

et al. [12] utiliza un metodo denominado DeepFool (Figura 2.8). Este ultimo es la base

para el ataque propuesto en este estudio, el cual sera explicado luego.

Page 24: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 25: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Capıtulo 3

Generacion y deteccion de ejemplos

adversariales

En este capıtulo se explican detalladamente los metodos propuestos para la gene-

racion de ejemplos adversariales (ataque) y la deteccion de los mismos (defensa).

Ataque a utilizar

El metodo propuesto para la generacion de los ejemplos adversariales (ataque) se

basa en la tecnica DeepFool propuesta en Moosavi et al. [12].

Sea x una imagen y f una funcion que representa a la red neuronal con n entradas y

c salidas o categorıas f : Rn → Rc. Por ultimo, k(x) = arg maxk(fk(x)) se corresponde

con la clase mas probable, la salida de la red neuronal y ademas se cumple que k(x) ∈[0; c].

Para llevar a cabo el ataque se realiza la siguiente metodologıa. Partiendo de la

imagen x0 se calcula la clase mas probable k(x0) (la clase actual) y la segunda clase

mas probable l(x0) (la clase objetivo). Luego, al definir f ′(x) = fl(x) − fk(x0)(x) se

puede ver que las imagenes x que satisfagan f ′(x) = 0 se encuentran en la frontera de

decision de la red neuronal. Por tanto, el objetivo es encontrar un cero de esta funcion,

de forma grafica se busca algun punto sobre la lınea naranja de la Figura 3.1. Para

ello, se propone el metodo de Newton-Raphson multidimensional tal como se realiza

en Moosavi et al. [12].

En el Algoritmo 3.1 se muestran los pasos utilizados para generar un ejemplo ad-

versarial. En el mismo se comienza con una imagen inicial x0 y luego de cierto numero

de iteraciones se obtiene una perturbacion r tal que al ser sumada a x0 se consigue el

ejemplo adversarial buscado de forma tal que k(x0) 6= k(x0 + r).

Dado que se busca cruzar la frontera de decision, y no solo encontrar un cero de la

funcion f ′(x), se modifica el metodo de Newton-Raphson anadiendo un factor (1 + η)

15

Page 26: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

16 Generacion y deteccion de ejemplos adversariales

con η > 0 tal como se muestra en el Algoritmo 3.1. Se recomienda al lector consultar en

Moosavi et al. [12] para obtener mayor informacion sobre este proceso. Se debe tener

en cuenta que el algoritmo explicado previamente presenta algunas diferencias con el

mismo.

Algoritmo 3.1: Utilizado para generar un ejemplo adversarial.

Entrada: imagen x , c l a s i f i c a d o r f

Salida: pe r tu rbac i on r

x0 = x

i = 0

η = 0.01

l = arg maxl 6=k(x0)(fl(x))

while: k(xi) = k(x0) do:

ω′(xi) = ∆fl(xi)−∆fk(x0)(xi)

f ′(xi) = fl(xi)− fk(x0)(xi)

ri(xi) =|f ′|

‖ω′‖22

ω′

xi+1 = xi + ri(1 + η)

i = i+ 1

end while

return r =∑

i ri

Figura 3.1: Grafica en donde se observa Rn en un plano. Esto implica que cada puntodel mismo representa una imagen (x). Por otro lado se observa una superficie que simbolizaa la funcion f ′(x). La curva F muestra los puntos x que cumplen que f ′(x) = 0. Ademas,el hiperplano en color verde es la linealizacion de f ′(x) alrededor de algun punto, y la lıneanaranja representa los puntos en lo que este hiperplano toma valor nulo. Por este motivo,si dos puntos o imagenes xA y xB se encuentran en zonas diferentes delimitadas por lafrontera indicada con linea naranja, las imagenes pertenecen a categorıas distintas, es decirk(xA) 6= k(xB). Imagen extraıda de [12]

Por ultimo, se cuantifica la diferencia entre la imagen adversarial y la natural me-

diante el indicador ρadv de la siguiente forma:

Page 27: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

17

ρadv =1

NV

∑x∈V

∥∥r(x)∥∥2

‖x‖2(3.1)

donde NV representa el numero de imagenes del conjunto de validacion V, y x una ima-

gen en particular, siendo r(x) la mınima perturbacion necesaria para que clasificacion

de x sea diferente de (x+ r(x)).

Defensa a utilizar

Por otro lado, se denomina defensa al metodo utilizado para detectar si un ejemplo

dado es adversarial o natural. Carlini y Wagner, muestran en su trabajo [13] la dificultad

de realizar esta deteccion. En dicho trabajo, analizan diez estrategias diferentes para

identificar cual de ellas obtiene mejores resultados en cuanto a detecciones. La estrategia

que mejor resultado obtuvo es la que llaman “Dropout randomization”, en el cual

Feinman et al. [35] proponen medir la incertidumbre de una red frente a una cierta

entrada. Para ello, se agrega aleatoriedad a la red, esperando que las imagenes naturales

o normales sean categorizadas de igual forma pese a dicho factor aleatorio. Por otro

lado, se espera que la prediccion de las imagenes adversariales no siempre sea la misma.

La estrategia de defensa propuesta en este trabajo sigue una idea similar, aunque

presenta algunas diferencias tales como el metodo utilizado para agregar aleatoriedad

a la red (Feinman el al. [35] utilizan Dropout). En particular la estrategia de defensa

propuesta por este estudio, se puede resumir de la siguiente forma:

1. Se define una red a la cual llamaremos “red original” que funcione correctamente

para una tarea dada, sea clasificacion o regresion. Se asume que la red clasifica

de forma adecuada las entradas x, es decir a su correspondiente clase k(x).

2. Se realiza una copia de la red anterior, pero a esta se agrega ruido en algunos de

los argumentos de las funciones de activacion de las neuronas de la red, a dicha

red la llamaremos “red con ruido”. Se asume que las entradas x son clasificadas

a su correspondiente clase k∗(x).

3. Se toma una imagen natural xnat que sea correctamente clasificada por la “red

original”, por tanto dicha clase es k(xnat)

4. Se genera una imagen adversarial xadv partiendo de la imagen natural anterior

(es decir xadv = xnat + r(xnat)). Luego se coloca dicha imagen adversarial como

entrada a la “red original”, por tanto dicha clase es k(xadv)

5. Se toma nuevamente la imagen natural pero esta vez se la coloca en la entrada

de la “red con ruido” denotando a la clase predicha por la red como k∗(xnat).

Notar que este proceso puede repetirse y que la clase k∗(xnat) dada por la red no

Page 28: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

18 Generacion y deteccion de ejemplos adversariales

sea la misma, aprovechando esta caracterıstica, se repite el proceso M veces y se

calcula un parametro p asociado a la imagen natural:

p(xnat) =M∑i=1

k∗(xnat) == k(xnat)

M(3.2)

6. Se repite el paso anterior pero esta vez con la imagen adversarial xadv, es decir

que si ahora denotamos a la salida entregada por la “red con ruido” para la

imagen adversarial k∗(xadv) se obtiene que el parametro p asociado a la imagen

adversarial es:

p(xadv) =M∑i=1

k∗(xadv) == k(xadv)

M(3.3)

7. Al repetir los pasos 5 y 6 para una gran cantidad de imagenes se puede formar un

histograma distinguiendo entre las imagenes naturales y adversariales, esperando

obtener algo parecido a la siguiente imagen.

0.0 0.2 0.4 0.6 0.8 1.0p(x)

Núm

ero

de im

ágen

es

Umbr

alNaturalAdversarial

Figura 3.2: Histograma a modo de ejemplo donde se observa el nume-ro de imagenes en funcion del parametro p de las mismas, luego de haberrealizado los pasos 5 y 6 una gran cantidad de veces.

En esta instancia se puede establecer un valor crıtico o umbral para el cual

una imagen que presente un parametro menor al umbral sea considerada imagen

adversarial, mientras que si da mayor se la considera una imagen natural. Por

tanto, una vez definido un valor de umbral se obtiene la variable error, la cual

es el porcentaje de veces que la defensa fallara al detectar si una imagen dada es

natural o adversarial.

error =fp+ fn

Nimgs

(3.4)

donde fp y fn son la cantidad de falsos positivos y falsos negativos respecti-

vamente, y Nimgs es la cantidad de imagenes totales utilizadas para realizar el

Page 29: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

19

histograma mostrado en la Figura 3.2.

Ademas existe un valor de umbral optimo (umbralopt), el cual minimice la varia-

ble error, definida como minError. Notar que dados dos histogramas (uno natural

y uno adversarial) pueden obtenerse facilmente los valores de (umbralopt y minE-

rror).

8. En este estudio se colocan dos magnitudes de ruido diferentes, el primer tipo

de ruido se encuentra en la ultima capa convolucional de la red, mientras que

el segundo tipo se encuentra en la ante ultima capa densa (no se coloca en la

ultima debido a que esta es la salida de la red). Estos dos tipos de ruido son

gaussianos, se encuentran en los argumentos de las funciones de activacion de

las capas correspondientes y poseen una desviacion estandar de magnitud ruidoC

para la capa convolucional y ruidoD para la capa densa. Notese que para cada

par de valores elegidos (ruidoC,ruidoD) se obtiene un umbralopt y un minError

por lo que se puede probar con una gran cantidad de valores (ruidoC,ruidoD) y

seleccionar el mejor de los umbralopt denominado umbraloptOpt y el mınimo de los

minError denominado minMinError. Ambos obtenidos con los ruidos ruidoCopt

y ruidoDopt.

Page 30: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 31: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Capıtulo 4

Resultados

En la primer parte de este capıtulo (Seccion 4.1) se realizan como primer paso,

pruebas del ataque y defensa propuestas previamente sobre dos bases de datos muy es-

tudiadas hoy en dıa, las cuales son MNIST y CIFAR10. Ambas son grandes colecciones

de imagenes ampliamente utilizadas para las tareas de entrenamiento, comprobacion y

validacion en DL.

Luego, en la segunda parte del capıtulo (Seccion 4.2) se repite la misma metodologıa

para la base de datos de imagenes de RD.

4.1. Ataque y defensa en imagenes de MNIST y

CIFAR-10

A continuacion, se comentan algunas de las caracterısticas principales de las de las

bases de datos a utilizar.

MNIST. La base de datos MNIST, cuyo significado es “Modified National Institute

of Standards and Technology”, es una coleccion de imagenes con una dimension de

28×28 de dıgitos manuscritos (del 0 al 9). Dicha base de datos contiene 60000 imagenes

para entrenamiento y 10000 para validacion. En la Figura 4.1a puede verse una muestra

de la misma.

CIFAR-10. La base de datos CIFAR-10, cuyo significado es “Canadian Institute

For Advanced Research”, es una coleccion de imagenes a color con una dimension de

32×32 correspondientes a 10 categorıas las cuales son: avion, auto, pajaro, gato, ciervo,

perro, rana, caballo, barco y camion. Existen 6000 imagenes por clase. En la Figura

4.1b puede verse una muestra de la misma.

Previo a la clasificacion de las imagenes, se define la precision, tambien llamada

“accuracy” en ingles. La misma, indica la probabilidad de que la red clasifique de ma-

nera correcta una imagen dada. Se la define como el numero de imagenes correctamente

clasificadas sobre el numero total de imagenes.

21

Page 32: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

22 Resultados

Con el fin de obtener una red neuronal que clasifique correctamente las imagenes

deseadas para cada base de datos mencionada, se procede a definir el modelo a utilizar

para mas tarde poder entrenar a dicha red. En la Figura 4.2 se muestran las arqui-

tecturas de red utilizadas y luego, en la Figura 4.3 se introduce la precision de las

mismas.

Es necesario mencionar que modificando los parametros de la red y/o la arquitectura

de la misma, la precision del conjunto de datos de entrenamiento y validacion puede

ser mejorada. Debido a que el enfoque de este proyecto es la generacion y en caso de

que sea posible, la discriminacion entre los ejemplos adversariales y los naturales, se

decidio no dedicar gran cantidad de tiempo en la modificacion de las redes tratadas

para mejorar la precision de las mismas. Es decir, basta con que las redes neuronales

clasifiquen medianamente bien, esto es, que clasifiquen con una precision similar a las

opciones encontradas en la literatura.

Clase0

Clase1

Clase2

Clase3

Clase4

Clase5

Clase6

Clase7

Clase8

Clase9

(a) MNIST.

Claseavión

Claseauto

Clasepájaro

Clasegato

Claseciervo

Claseperro

Claserana

Clasecaballo

Clasebarco

Clasecamión

(b) CIFAR-10.

Figura 4.1: Muestra de las imagenes de la bases de datos MNIST y CIFAR-10, en donde serealiza una discriminacion segun la categorıa a la cual pertenecen.

Page 33: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4.1 Ataque y defensa en imagenes de MNIST y CIFAR-10 23

InputLayerinput:

output:

(None, 28, 28, 1)

(None, 28, 28, 1)

Conv2Dinput:

output:

(None, 28, 28, 1)

(None, 26, 26, 32)

Conv2Dinput:

output:

(None, 26, 26, 32)

(None, 24, 24, 32)

MaxPooling2Dinput:

output:

(None, 24, 24, 32)

(None, 8, 8, 32)

Conv2Dinput:

output:

(None, 8, 8, 32)

(None, 6, 6, 16)

Flatteninput:

output:

(None, 6, 6, 16)

(None, 576)

Denseinput:

output:

(None, 576)

(None, 576)

Denseinput:

output:

(None, 576)

(None, 10)

(a) MNIST.

InputLayerinput:

output:

(None, 32, 32, 3)

(None, 32, 32, 3)

Conv2Dinput:

output:

(None, 32, 32, 3)

(None, 32, 32, 32)

Conv2Dinput:

output:

(None, 32, 32, 32)

(None, 30, 30, 32)

MaxPooling2Dinput:

output:

(None, 30, 30, 32)

(None, 15, 15, 32)

Conv2Dinput:

output:

(None, 15, 15, 32)

(None, 15, 15, 64)

Conv2Dinput:

output:

(None, 15, 15, 64)

(None, 13, 13, 64)

MaxPooling2Dinput:

output:

(None, 13, 13, 64)

(None, 6, 6, 64)

Conv2Dinput:

output:

(None, 6, 6, 64)

(None, 6, 6, 16)

Flatteninput:

output:

(None, 6, 6, 16)

(None, 576)

Denseinput:

output:

(None, 576)

(None, 576)

Denseinput:

output:

(None, 576)

(None, 10)

(b) CIFAR10.

Figura 4.2: Modelos de redes neuronales artificiales utilizados para la clasificacion de lasimagenes de las bases de datos MNIST y CIFAR-10. En cada capa se especifica el tipo de lamisma, el tamano de entrada (input) y el tamano de salida (output). “None” hace referencia alnumero de imagenes a utilizar. Despues de cada capa se utiliza relu como funcion de activacion,excepto en la salida en donde se utiliza softmax para ası obtener las probabilidades de que unaimagen pertenezca a las diversas categorıas.

0 2 4 6 8 10 12 14Época

0.94

0.95

0.96

0.97

0.98

0.99

1.00

Prec

isión

MNI

ST

Precisión obtenida (val) = 0.993

EntrenamientoValidación

(a) Base de datos MNIST - Se obtuvo 0.993de precision sobre el conjunto de validacion.

0 10 20 30 40 50Época

0.4

0.5

0.6

0.7

0.8

Prec

isión

CIF

AR10

Precisión obtenida (val) = 0.795

EntrenamientoValidación

(b) Base de datos CIFAR10 - Se obtuvo 0.795de precision sobre el conjunto de validacion.

Figura 4.3: Precision obtenida del conjunto de datos de entrenamiento y validacion en funciondel numero de epocas para cada base de datos.

Page 34: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

24 Resultados

Ademas de la precision, existe otro indicador denominado “matriz de confusion”

que nos brinda mas informacion sobre el comportamiento de la red neuronal, cada

columna de la matriz representa el numero de predicciones de cada clase, mientras que

cada fila representa a las instancias en la clase real. En el caso ideal, la misma deberıa

ser una matriz nula excepto en los elementos de la diagonal principal.

En los casos en que la base de datos no esta balanceada, es decir que una clase tiene

mayor cantidad de ejemplos que otra, el clasificador puede tener facilmente un sesgo

hacia la clase mayoritaria. Siguiendo con este ejemplo, puede darse el caso de que la

precision de la red sea alta, pero solo sea una consecuencia del sesgo del clasificador

hacia una categorıa mayoritaria, por lo que en este caso la matriz de confusion es de

gran utilidad para advertirnos de este problema de sesgo. En este caso, ambas bases

de datos, MNIST y CIFAR-10, se encuentran balanceadas. Esto puede verse en que la

cantidad de imagenes por fila es constante para cada matriz de confusion (Tabla 4.1).

(a) Base de datos MNIST (b) Base de datos CIFAR10

Tabla 4.1: Matriz de confusion calculada sobre el conjunto de validacion para cada base dedatos.

De las matrices de confusion se observa en ambos casos que para cada fila (clase

real) el mayor elemento con una diferencia notable, es el perteneciente a la diagonal,

indicador de que las redes clasifican correctamente.

Ataque (generacion de ejemplos adversariales)

Al tomar una imagen natural xnat perteneciente al conjunto de datos y categorizada

como k(xnat), se puede generar una imagen adversarial xadv a partir de la misma

utilizando el metodo explicado en la Seccion 3. De esta forma, la red categoriza a

esta imagen como k(xadv) 6= k(xnat). En la Figura 4.4 se muestran algunos ejemplos

adversariales junto con la imagen natural de la cual fueron obtenidos para ambas bases

de datos.

Page 35: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4.1 Ataque y defensa en imagenes de MNIST y CIFAR-10 25

Imagennatural

Perturbación(x50)

Imagenadversarial

"7" "3"

"2" "1"

"1" "7"

"0" "6"

"4" "9"

(a) Base de datos MNIST.

Imagennatural

Perturbación(x50)

Imagenadversarial

"barco" "auto"

"gato" "rana"

"barco" "rana"

"ciervo" "avión"

"rana" "pájaro"

(b) Base de datos CIFAR10.

Figura 4.4: Para cada base de datos se muestra: a la izquierda la imagen original, en el centrola perturbacion multiplicada por 50 para permitir una mejor observacion y a la derecha la imagenadversarial, es decir la suma de las dos anteriores. Ademas, en la parte superior de cada imagense muestra la categorıa arrojada por la red.

Se puede observar que algunos de los ejemplos adversariales del MNIST, podrıan

incluso ser confundidos por un ser humano, como es el caso del “0” clasificado como un

“6” en la Figura 4.4a. Sin embargo, esto no ocurre en lo absoluto para el CIFAR-10.

Estas observaciones, sugieren que la causa de estas diferencias entre las bases de datos,

sea que el MNIST es una base de datos mas simple, permitiendo a la red neuronal

aprender a realizar una mejor categorizacion. Esto implica que para “enganar” a dicha

red, se necesita alcanzar magnitudes de perturbacion que sean mas apreciables. En

algunos casos, la magnitud de la perturbacion puede incluso molestar a la clasificacion

realizada por un humano.

Por otro lado y para obtener mas informacion acerca de la generacion de los ejemplos

adversariales, se define el concepto de matriz de distribucion de ejemplos adversariales,

en la cual cada fila representa el numero de imagenes con su clase natural o real,

mientras que cada columna representa el numero de imagenes con su clase adversarial.

En la Tabla 4.2 se muestran dos matrices de distribucion de ejemplos, una para cada

base de datos. En ellas se puede observar que al generar ejemplos adversariales de un

grupo de imagenes pertenecientes a una misma clase, la distribucion de las clases de los

Page 36: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

26 Resultados

ejemplos adversariales sera mayoritariamente a una o dos clases, o lo que es equivalente,

en la mayorıa de las filas se observa que uno o dos valores son considerablemente

mayores al resto. Un ejemplo de esto, es que al tomar una imagen natural del MNIST

correspondiente al dıgito “1” y generar su correspondiente imagen adversarial, es muy

probable que esta sea clasificada como un dıgito “4”. Algo sorprendente a observar

es que el “4” no es precisamente el dıgito mas similar al “1”, pero sin embargo el

hiperplano que separa dichas clases parece ser el que mas cerca esta. Es decir, no

necesariamente existe una correspondencia directa con la forma de los bordes, sino que

hay otras caracterısticas que la red aprende en las cuales pueden ser similares.

(a) Base de datos MNIST. (b) Base de datos CIFAR10.

Tabla 4.2: Para cada base de datos se muestra la matriz de distribucion de ejemplos adversaria-les, cada una esta hecha en base a los resultados arrojados por la red solo teniendo en cuenta lasimagenes clasificadas correctamente. El total de imagenes (clasificadas correctas + clasificadasincorrectas) para cada base de datos es de 1000.

Defensa (distincion entre ejemplo natural y adversarial)

Esta seccion tiene como objetivo implementar la defensa explicada en la Seccion 3.

Por tanto, se desea obtener las magnitudes de ruido optimas (ruidoCopt y ruidoDopt)

para ası poder utilizar un valor de umbral (umbraloptOpt) para distinguir entre una

imagen natural y adversarial con un error mınimo (minMinError).

Debido a que las magnitudes de ruido optimas son desconocidas, se realiza un primer

intento de defensa con ruidoC = 0.02 y ruidoD = 0.2, los cuales fueron definidos de

forma aleatoria. Los histogramas obtenidos se muestran en la Figura 4.5. En los mismos,

puede verse un comportamiento similar con el esperado, mostrado en la Figura 3.2.

El proximo paso, consiste en determinar las magnitudes optimas de los ruidos

(ruidoCopt y ruidoDopt). Para esto, se prueban diversos pares de valores ruidoC y

ruidoD de forma sistematica y en cada uno de ellos se toma nota del minError ob-

tenido. En la Figura 4.6 se muestran los valores de minError donde su magnitud esta

representada en color.

Page 37: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4.1 Ataque y defensa en imagenes de MNIST y CIFAR-10 27

0.0 0.2 0.4 0.6 0.8 1.0p(x)

Núm

ero

de im

ágen

es MNISTminError = 0.047

ruidoC = 0.02 ; ruidoD = 0.2

NaturalAdversarial

(a) Base de datos MNIST.

0.0 0.2 0.4 0.6 0.8 1.0p(x)

Núm

ero

de im

ágen

es CIFAR10minError = 0.029

ruidoC = 0.02 ; ruidoD = 0.2

NaturalAdversarial

(b) Base de datos CIFAR10.

Figura 4.5: Histogramas obtenidos con el fin de realizar el primer intento de defensa, es decirque se eligieron las magnitudes de ruido (ruidoC, ruidoD) de forma aleatoria, en este caso sedecidio elegir: ruidoC = 0.02 ; ruidoD = 0.2.

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 1 minMinError = 0.003

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD

0.0

0.4

0.8

1.2

1.6

2.0

2.4ru

idoC

1e 1 minMinError = 0.015

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD 1e 1

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 2 minMinError = 0.044

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD 1e 1

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 2 minMinError = 0.008

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD 1e 2

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 3 minMinError = 0.094

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD 1e 2

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 3 minMinError = 0.008

10 3

10 2

10 1

Figura 4.6: En cada grafico se muestra el minError en funcion de la magnitud de los ruidosconvolucional y denso (ruidoC,ruidoD) introducidos en la red neuronal. Ademas para cada graficose muestra el mınimo de los minError, es decir minMinError. Esto se realiza para las bases dedatos MNIST (columna izquierda) y CIFAR-10 (columna derecha), por otro lado en cada filase muestran los resultados para diferentes rangos de ruido. La magnitud minError carece desentido cuando ruidoC=ruidoD=0, por lo que la magnitud mostrada en dicho punto es falsa y lecorresponde al minMinError de ese grafico.

Page 38: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

28 Resultados

De los graficos mostrados se obtiene el valor minMinError con su correspondiente

par de valores (ruidoCopt, ruidoDopt) para cada base de datos mostrados en la Tabla 4.3.

Base de datos minMinError ruidoCopt ruidoDopt

MNIST 0.003 0.0 1.2

CIFAR-10 0.008 0.4× 10−2 0.2× 10−1

Tabla 4.3: Mınimo valor de minError obtenido con su correspon-diente par de valores ruidoC y ruidoD para las bases de datos MNISTy CIFAR-10.

Podemos concluir que la defensa distingue si una imagen dada es natural o ad-

versarial con error del 0.3 % y 0.8 % para las bases de datos MNIST y CIFAR10 res-

pectivamente. Para realizar una validacion de la defensa, puede verse que al colocar

las magnitudes de ruidos optimas ruidoCopt y ruidoDopt se obtienen los histogramas

mostrados en la Figura 4.7. En los mismos, se observa para ambas bases de datos, una

clara diferencia en la distribucion del parametro p(x) entre las imagenes naturales y

adversariales.

0.0 0.2 0.4 0.6 0.8 1.0p(x)

0

50

100

150

200

250

300

Núm

ero

de im

ágen

es MNISTminError = 0.003

ruidoC = 0 ; ruidoD = 1.2

NaturalAdversarial

(a) Base de datos MNIST.

0.0 0.2 0.4 0.6 0.8 1.0p(x)

0

50

100

150

200

250

Núm

ero

de im

ágen

es CIFAR10minError = 0.008

ruidoC = 0.0002 ; ruidoD = 0.018

NaturalAdversarial

(b) Base de datos CIFAR10.

Figura 4.7: Histogramas obtenidos luego de elegir las magnitudes de ruido optimas las cualesminimizan la variable minError.

4.2. Ataque y defensa en imagenes de retinopatıa

diabetica

Como ya se menciono anteriormente, una vez obtenida la metodologıa que permite

discriminar entre un ejemplo natural y uno adversarial para las bases de datos MNIST

y CIFAR-10, se procede a repetir los mismos pasos para la base de datos de imagenes

retinopatıa diabetica esperando obtener resultados similares.

En la Figura 4.8, puede verse una pequena muestra de la base de datos a utilizar, la

misma fue descargada de Kaggle.com [8]. A diferencia de las dos bases de datos tratadas

anteriormente, esta no esta balanceada, lo que significa que las clases no contienen la

Page 39: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4.2 Ataque y defensa en imagenes de retinopatıa diabetica 29

misma cantidad de imagenes. En la Figura 4.9, se observa el considerable desbalance en

la distribucion de las clases, debido a esto se procede a trabajar solo con 708 ejemplos

de cada clase y luego en la etapa de entrenamiento realizar data augmentation [16] con

el fin de compensar el reducido numero de imagenes para entrenar la red neuronal.

Clase 0Sin RD

Clase 1RD leve

Clase 2RD moderada

Clase 3RD severa

Clase 4RD proliferativa

Figura 4.8: Muestra de las imagenes de la basede datos de imagenes de RD, en donde se realizauna discriminacion segun la categorıa a la cualpertenecen.

0 1 2 3 4Clase

Núm

ero

de im

ágen

es

25810

24435292

873 708

Figura 4.9: Histograma en donde se muestrala distribucion de las clases de la base de datosde RD.

Red utilizada y desempeno obtenido

En la Figura 4.10 se muestra el modelo utilizado y luego en la Figura 4.11 se muestra

el valor de la precision obtenida en funcion del numero de epocas.

Como puede verse en la Figura 4.11 se obtiene un valor para el conjunto de datos

de validacion que parece ser relativamente bajo de precision aun teniendo en cuenta

que existen 5 clases. Ademas, en la matriz de confusion de la Tabla 4.4 se observa que

los elementos de la diagonal principal son los mayores en su fila, salvo la clase “0”.

Por otro lado, en la competencia propuesta por Kaggle [8] el puntaje se mide uti-

lizando el indicador “kappa quadratic weighting”. Nuestro valor de kappa calculado

utilizando la matriz de confusion de la Tabla 4.4 a traves de [36] es de κ = 0.62. Al

comparar este valor con los valores de “kappa quadratic weighting” de la tabla de cla-

sificaciones de la competencia de Kaggle [8] se obtiene que en la situacion hipotetica

de haber competido y logrado dicho puntaje, se hubiese obtenido el puesto 50 de 662.

Debido a que el objetivo de este trabajo es hacer enfasis en la deteccion de una imagen

adversarial, se decide continuar con el estudio de la defensa explicada en la Seccion 3.

Page 40: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

30 Resultados

InputLayerinput:

output:

(None, 200, 300, 3)

(None, 200, 300, 3)

Conv2Dinput:

output:

(None, 200, 300, 3)

(None, 200, 300, 32)

MaxPooling2Dinput:

output:

(None, 200, 300, 32)

(None, 100, 150, 32)

Conv2Dinput:

output:

(None, 100, 150, 32)

(None, 98, 148, 64)

MaxPooling2Dinput:

output:

(None, 98, 148, 64)

(None, 49, 74, 64)

Conv2Dinput:

output:

(None, 49, 74, 64)

(None, 47, 72, 128)

MaxPooling2Dinput:

output:

(None, 47, 72, 128)

(None, 23, 36, 128)

Conv2Dinput:

output:

(None, 23, 36, 128)

(None, 21, 34, 256)

MaxPooling2Dinput:

output:

(None, 21, 34, 256)

(None, 10, 17, 256)

Conv2Dinput:

output:

(None, 10, 17, 256)

(None, 8, 15, 512)

MaxPooling2Dinput:

output:

(None, 8, 15, 512)

(None, 4, 7, 512)

Conv2Dinput:

output:

(None, 4, 7, 512)

(None, 2, 5, 512)

MaxPooling2Dinput:

output:

(None, 2, 5, 512)

(None, 1, 2, 512)

Flatteninput:

output:

(None, 1, 2, 512)

(None, 1024)

Denseinput:

output:

(None, 1024)

(None, 1024)

Denseinput:

output:

(None, 1024)

(None, 1024)

Denseinput:

output:

(None, 1024)

(None, 5)

Figura 4.10: Modelo de red neuronal artificialutilizada para la clasificacion de las imagenes de labase de datos de imagenes de RD. En cada capa seespecifica el tipo de la misma, el tamano de entra-da (input) y el tamano de salida (output). “None”hace referencia al numero de imagenes a utilizar.Despues de cada capa convolucional o densa se uti-liza relu como funcion de activacion excepto a lasalida de la red, en donde se utiliza la funcion soft-max. Ademas, entre cada capa convolucional y unMaxPool existe un BatchNormalization.

0 50 100 150 200 250 300Época

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Prec

isión

RD

Precisión obtenida (val) = 0.452

EntrenamientoValidación

Figura 4.11: Precision obtenida del conjunto dedatos de entrenamiento y validacion en funcion delnumero de epocas. Se obtuvo 0.475 de precisionsobre el conjunto de validacion.

Tabla 4.4: Matriz de confusion calculada sobreel conjunto de validacion.

Page 41: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4.2 Ataque y defensa en imagenes de retinopatıa diabetica 31

Ataque (generacion de ejemplos adversariales)

En la Figura 4.12 se muestran algunos ejemplos adversariales junto con la imagen

natural de RD de la cual fueron obtenidos.

Por otro lado, en la Tabla 4.5 se muestra la matriz de distribucion de ejemplos

adversariales. De dicha matriz, se puede realizar una conclusion importante, y es que

al tomar una imagen de una cierta clase k(xnat) y generar su imagen adversarial con

clase k(xadv) se ve que el valor mas probable de k(xadv) es k(xnat) − 1 o k(xnat) + 1.

Esto puede verse facilmente en la matriz de distribucion mencionada, debido a que los

mayores valores de la misma le corresponden a los que se encuentran proximos a la

diagonal principal. La consecuencia practica de esto es que, si la defensa no detecta un

ejemplo adversarial generado por el ataque propuesto en este estudio, el grado de la

enfermedad sera confundido con un grado de magnitud similar.

Imagennatural

Perturbación(x1000)

Imagenadversarial

"Sin RD" "RD proliferativa"

"RD leve" "RD moderada"

"RD moderada" "RD proliferativa"

"RD severa" "RD moderada"

"RD proliferativa" "RD leve"

Figura 4.12: Para la base de datos de image-nes de RD se muestra: a la izquierda la imagenoriginal, en el centro la perturbacion multiplica-da por 1000 para permitir una mejor observaciony a la derecha la imagen adversarial, es decir lasuma de las dos anteriores. Ademas, en la partesuperior de cada imagen se muestra la categorıaarrojada por la red.

Tabla 4.5: Para la base de datos de imagenes deRD se muestra la matriz de distribucion de ejem-plos adversariales, la cual esta hecha en base a losresultados arrojados por la red solo teniendo encuenta las imagenes clasificadas correctamente. Eltotal de imagenes (clasificadas correctas + clasifi-cadas incorrectas) para cada base de datos es de1000.

Defensa (distincion entre ejemplo natural y adversarial)

Tal como en el caso de las bases de datos MNIST y CIFAR-10, se desea obtener

las magnitudes de ruido optimas (ruidoCopt y ruidoDopt) y ası poder utilizar un valor

de umbral (umbraloptOpt) para distinguir entre una imagen natural y adversarial con el

mınimo error (minMinError).

Page 42: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

32 Resultados

Nuevamente, se realiza un primer intento de defensa con ruidoC = 0.02 y rui-

doD = 0.2, elegidos de forma aleatoria. Los histogramas obtenidos se muestran en la

Figura 4.13, en donde se observa un comportamiento similar con el esperado, tal como

se mostro en la Figura 3.2.

0.0 0.2 0.4 0.6 0.8 1.0p(x)

Núm

ero

de im

ágen

es RDminError = 0.062

ruidoC = 0.02 ; ruidoD = 0.2

NaturalAdversarial

Figura 4.13: Histograma obtenido con el fin de realizar el primerintento de defensa, es decir que se eligieron las magnitudes de ruido(ruidoC y ruidoD) de forma aleatoria, en este caso se decidio elegir:ruidoC = 0.02 ; ruidoD = 0.2.

Nuevamente, para establecer las magnitudes optimas ruidoCopt y ruidoDopt se prue-

ban diversos pares de valores ruidoC y ruidoD de forma sistematica y para cada uno

de ellos se toma nota del minError obtenido, en la Figura 4.14 se muestran los valores

de minError en donde su magnitud esta representada en color.

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 1 minMinError = 0.038

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD 1e 1

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 2 minMinError = 0.05

10 3

10 2

10 1

0.0 0.4 0.8 1.2 1.6 2.0 2.4ruidoD 1e 2

0.0

0.4

0.8

1.2

1.6

2.0

2.4

ruid

oC

1e 3 minMinError = 0.111

10 3

10 2

10 1

Figura 4.14: En cada grafico se muestra el minError en funcion de la magnitud de los ruidosconvolucional y denso (ruidoC,ruidoD) introducidos en la red neuronal, ademas para cada graficose muestra el mınimo de los minError, es decir minMinError. En cada fila se muestran losresultados para diferentes rangos de ruido.

Page 43: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

4.3 Robustez 33

De los graficos mostrados se obtiene el valor minMinError con su correspondiente

par de valores (ruidoCopt, ruidoDopt) mostrados en la Tabla 4.6.

Base de datos minMinError ruidoCopt ruidoDopt

RD 0.038 0.0 0.4

Tabla 4.6: Mınimo valor de minError obtenido con su co-rrespondiente par de valores ruidoC y ruidoD para la base dedatos RD.

Podemos concluir que la defensa distingue si una imagen dada es natural o adversa-

rial con un error del 3.8 %. Ademas puede verse que al colocar las magnitudes de ruidos

optimas ruidoCopt y ruidoDopt se obtiene el histograma mostrado en la Figura 4.15. En

el mismo, se observa una clara diferencia en la distribucion del parametro p(x) entre

las imagenes naturales y adversariales.

0.0 0.2 0.4 0.6 0.8 1.0p(x)

0

20

40

60

80

100

120

Núm

ero

de im

ágen

es RDminError = 0.038

ruidoC = 0 ; ruidoD = 0.4

NaturalAdversarial

Figura 4.15: Histograma obtenido luego de elegir las magnitudes de ruidooptimas las cuales minimizan la variable minError.

4.3. Robustez

Hasta el momento, se obtuvo el error de clasificacion que se obtendrıa con la defensa

propuesta sobre las bases de datos MNIST, CIFAR-10 y RD. Con estos datos, se podrıa

concluir sobre cual de ellas se obtiene un mejor rendimiento en la defensa, sin embargo,

al realizar dicha comparacion no se tiene en cuenta sobre la similitud entre los ejemplos

adversariales y sus correspondientes ejemplos naturales de los cuales proceden. Ya que,

cuanto mas similares sean los ejemplos adversariales a los ejemplos naturales mejor es

el ataque, y es de esperar que sea mas difıcil detectar uno de otro, por lo que la defensa

en principio tendrıa mas error (un mayor minError).

Page 44: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

34 Resultados

Dicho esto, se calcula el indicador ρadv definido en 3.1 para cada base de datos

mostrando los resultados en la Tabla 4.7 junto con algunos resultados obtenidos de

Moosavi et al. [12] con el fin de mostrar que las magnitudes ρadv obtenidas en este

estudio son similares a las del paper mencionado.

Base de datos Clasificador Error validacion ρadv minMinError

MNIST

LeNet* 1 % 2.0× 10−1 -

FC500* 1.7 % 1.1× 10−1 -

Propio 0.7 % 1.9× 10−1 0.003

CIFAR-10

NIN* 11.5 % 2.3× 10−2 -

LeNet* 22.6 % 3.0× 10−2 -

Propio 20.0 % 1.0× 10−2 0.008

RD Propio 54.8 % 3.3× 10−4 0.038

Tabla 4.7: En la tabla se muestra el error en categorizacion sobre el conjunto de validacion,el indicador ρadv con el fin de cuantificar la robustez de la cada red y minMinError solo para elcaso de las redes explicadas a lo largo de este estudio.*: los datos de las filas correspondientes fueron extraıdos de Moosavi et al. [12]

Page 45: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Capıtulo 5

Conclusiones

Se resolvio el problema de categorizacion de imagenes sobre tres bases de datos

diferentes, las cuales son MNIST, CIFAR-10 y RD. Las tres redes neuronales utiliza-

das (una para cada base de datos) son de tipo feed forward con las primeras capas

convolucionales y luego capas densas.

Con una simple observacion puede notarse que existe una diferencia en la compleji-

dad entre las bases de datos mencionadas. MNIST es la base de datos mas simple de las

tres, le sigue CIFAR-10 y por ultimo, las imagenes de RD requieren de un profesional

para su correcta clasificacion y presentan una complejidad alta, a tal punto que existen

diferentes competencias avocadas a encontrar soluciones a esta problematica. Esta di-

ferencia de dificultades se ve reflejada en la precision obtenida por las redes neuronales

para clasificar dichas imagenes. Las precisiones obtenidas fueron: 0.993 (MNIST), 0.795

(CIFAR-10) y 0.452 (RD).

Generacion de ejemplos adversariales. Sobre las tres bases de datos recien men-

cionadas se generaron satisfactoriamente ejemplos adversariales basados en el metodo

DeepFool.

La similitud entre las imagenes adversariales y naturales de un conjunto de datos

es representada por un parametro denominado ρadv. Cuanto menor sea el mismo, mas

similitud existe entre las imagenes. Al comparar el parametro ρadv obtenido en este

estudio con los que se obtienen en la bibliografıa, se observaron resultados similares al

mejor de los ataques (DeepFool), es decir, el que menor ρadv presento.

Deteccion de ejemplos adversariales. En este estudio se propuso y se desarrollo

un metodo con el fin de distinguir entre una imagen natural y una adversarial, es

decir, una defensa. Al realizar la implementacion de la misma para la base de datos de

imagenes de retinopatıa diabetica se encuentra que el error obtenido al realizar dicha

tarea es de 3.8 %, el cual es mayor que el obtenido para las bases de datos MNIST

(0.3 %) y CIFAR-10 (0.8 %). En otras palabras, la defensa propuesta en este estudio

35

Page 46: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

36 Conclusiones

implementada sobre imagenes de RD, discrimina imagenes naturales de adversariales

de forma satisfactoria el 96.2 % de los casos.

Dependencia del error de la defensa con ρadv. El parametro ρadv es menor para

la base de datos de RD comparado con las bases de datos MNIST y CIFAR-10. Esto

significa que la similitud entre una imagen de RD natural y su correspondiente imagen

adversarial es mayor que para el caso MNIST y CIFAR-10, por lo que es de esperar que

la discriminacion que sea mas difıcil de realizar, sea entre una imagen natural de RD

y su imagen adversarial. En efecto, de los datos generados en este estudio, se observa

que cuanto menor es la magnitud ρadv, mayor sera la probabilidad de error al detectar

un ejemplo natural de uno adversarial. Dicho de otra forma, cuanto mas similares sean

las imagenes adversariales de las naturales, mas difıcil sera distinguir una de otra.

Comportamiento de la defensa al modificar el ruido. Para realizar la imple-

mentacion de la defensa propuesta y desarrollada en este estudio, es necesario introducir

ruido en la red neuronal. De hecho, se necesita de un ruido en una capa tipo convo-

lucional y/o un ruido en una capa tipo densa. Al variar ambas magnitudes de ruido

de forma sistematica, para tres redes neuronales distintas y tomar nota del error de

deteccion de la defensa para cada par de ruidos elegidos, no se observa un patron de

comportamiento. Debido a esto, se necesita realizar las mismas pruebas para cada red

neuronal en la que se desee implementar la defensa propuesta.

Trabajo a futuro Con el objetivo de tener mas informacion sobre la defensa expli-

cada en este estudio, se propone realizar un contraataque a la misma, es decir, que el

atacante tenga informacion de la defensa implementada e intente enganarla.

Page 47: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Apendice A

Proyecto y diseno

Para la realizacion de este proyecto, el alumno dedico mas de doscientas horas a

“Practicas Profesionales Supervisadas” en el Departamento de Fısica Medica del Centro

Atomico Bariloche, bajo la supervision del Dr. German Mato y el Dr. Ariel Hernan

Curiale. Se adjunta la planilla de horarios correspondiente.

Por otro lado, el alumno dedico mas de doscientas horas a actividades de “Proyecto

y Diseno”, en las cuales se realizo el desarrollo del software con el que se llevo a cabo el

entrenamiento, el ataque y la defensa de las redes neuronales detalladas en este trabajo.

Parte de este software se muestra en el Apendice B.

37

Page 48: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 49: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Apendice B

Ataque y defensa en imagenes de

retinopatıa diabetica

En el Algoritmo B.1 se muestra la implementacion del ataque y defensa sobre la

red neuronal que clasifica imagenes de retinopatıa diabetica. Previo a la ejecucion de

dicho codigo, la red neuronal ya debe estar entrenada. Ademas, se hace referencia a la

funcion min error, la cual se muestra en el Algoritmo B.2.

Algoritmo B.1: Ataque y defensa para las imagenes de retinopatıa diabetica.

1 from f u t u r e import p r i n t f un c t i o n

2 from keras . models import Sequent i a l

3 from keras . l a y e r s import Dense , Act ivat ion , F latten

4 from keras . l a y e r s import Convolution2D , MaxPooling2D

5 from keras . u t i l s import np u t i l s

6 from keras import backend as K

7 from keras . models import load model

8 from keras . l a y e r s . normal i za t ion import BatchNormalization

9 from keras . op t im i z e r s import Adam

10 import numpy as np

11 import sys , os

12 import pandas as pd

13 from PIL import Image

14 import t en so r f l ow as t f

15 s e s s = t f . I n t e r a c t i v e S e s s i o n ( )

16 from matp lo t l ib . t i c k e r import MaxNLocator

17 from min error import min error

18

19 seed = 100

20 thisFi leName = os . path . basename ( sys . argv [ 0 ] ) . s p l i t ( ” . ” ) [ 0 ]

21

22 Nimages by c lass = 708

23

24 ba t ch s i z e = 32

25 nb c l a s s e s = 5

26 nb epoch = 300

27 l r = 1e−328 data augmentation = True

29

30 porcTrain = .8

31

32 da t a f o l d e r=os . path . abspath ( os . cu rd i r )+’ /data/ t r a i n sma l l 2 0 0 300 ’

33 l a b e l s d i r =os . path . abspath ( os . cu rd i r )+’ /data/ t r a i nLabe l s . csv ’

34

35 pa t i en t s = pd . r ead csv ( l a b e l s d i r )

36

37 pa t i e n t s 0 = pa t i en t s [ pa t i en t s [ ’ l e v e l ’ ]==0][ ’ image ’ ] . va lues

38 pa t i e n t s 1 = pa t i en t s [ pa t i en t s [ ’ l e v e l ’ ]==1][ ’ image ’ ] . va lues

39 pa t i e n t s 2 = pa t i en t s [ pa t i en t s [ ’ l e v e l ’ ]==2][ ’ image ’ ] . va lues

40 pa t i e n t s 3 = pa t i en t s [ pa t i en t s [ ’ l e v e l ’ ]==3][ ’ image ’ ] . va lues

41 pa t i e n t s 4 = pa t i en t s [ pa t i en t s [ ’ l e v e l ’ ]==4][ ’ image ’ ] . va lues

39

Page 50: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

40 Ataque y defensa en imagenes de retinopatıa diabetica

42

43 seed +=1

44 np . random . seed ( seed )

45 np . random . s h u f f l e ( p a t i e n t s 0 )

46

47 seed +=1

48 np . random . seed ( seed )

49 np . random . s h u f f l e ( p a t i e n t s 1 )

50

51 seed +=1

52 np . random . seed ( seed )

53 np . random . s h u f f l e ( p a t i e n t s 2 )

54

55 seed +=1

56 np . random . seed ( seed )

57 np . random . s h u f f l e ( p a t i e n t s 3 )

58

59 seed +=1

60 np . random . seed ( seed )

61 np . random . s h u f f l e ( p a t i e n t s 4 )

62

63 pa t i e n t s 0 = pa t i e n t s 0 [ : Nimages by c lass ]

64 pa t i e n t s 1 = pa t i e n t s 1 [ : Nimages by c lass ]

65 pa t i e n t s 2 = pa t i e n t s 2 [ : Nimages by c lass ]

66 pa t i e n t s 3 = pa t i e n t s 3 [ : Nimages by c lass ]

67 pa t i e n t s 4 = pa t i e n t s 4 [ : Nimages by c lass ]

68

69 l a b e l 0 = np . z e ro s ( pa t i e n t s 0 . s i z e , dtype=np . u int8 )

70 l a b e l 1 = np . ones ( pa t i e n t s 1 . s i z e , dtype=np . u int8 )

71 l a b e l 2 = 2 ∗ np . ones ( pa t i e n t s 2 . s i z e , dtype=np . u int8 )

72 l a b e l 3 = 3 ∗ np . ones ( pa t i e n t s 3 . s i z e , dtype=np . u int8 )

73 l a b e l 4 = 4 ∗ np . ones ( pa t i e n t s 4 . s i z e , dtype=np . u int8 )

74

75 nt ra in = round( p a t i e n t s 0 . s i z e ∗ porcTrain )

76

77 names tra in = np . hstack ( [ p a t i e n t s 0 [ : n t ra in ] , p a t i e n t s 1 [ : n t ra in ] ,

78 pa t i e n t s 2 [ : n t ra in ] , p a t i e n t s 3 [ : n t ra in ] , p a t i e n t s 4 [ : n t ra in ] ] )

79

80 names test = np . hstack ( [ p a t i e n t s 0 [ n t ra in : ] , p a t i e n t s 1 [ n t ra in : ] ,

81 pa t i e n t s 2 [ n t ra in : ] , p a t i e n t s 3 [ n t ra in : ] , p a t i e n t s 4 [ n t ra in : ] ] )

82

83 l a b e l t r a i n = np . hstack ( [ l a b e l 0 [ : n t ra in ] , l a b e l 1 [ : n t ra in ] ,

84 l a b e l 2 [ : n t ra in ] , l a b e l 3 [ : n t ra in ] , l a b e l 4 [ : n t ra in ] ] )

85

86 l a b e l t e s t = np . hstack ( [ l a b e l 0 [ n t ra in : ] , l a b e l 1 [ n t ra in : ] ,

87 l a b e l 2 [ n t ra in : ] , l a b e l 3 [ n t ra in : ] , l a b e l 4 [ n t ra in : ] ] )

88

89 i d t r a i n = np . arange ( names tra in . s i z e )

90 i d t e s t = np . arange ( names test . s i z e )

91

92 seed +=1

93 np . random . seed ( seed )

94 np . random . s h u f f l e ( i d t r a i n )

95

96 seed +=1

97 np . random . seed ( seed )

98 np . random . s h u f f l e ( i d t e s t )

99

100 names tra in = names tra in [ i d t r a i n ]

101 l a b e l t r a i n = l a b e l t r a i n [ i d t r a i n ]

102

103 names test = names test [ i d t e s t ]

104 l a b e l t e s t = l a b e l t e s t [ i d t e s t ]

105

106 X test = [ ]

107 for i in range ( names test . s i z e ) :

108 fname = os . path . j o i n ( da ta f o l d e r , names test [ i ]+ ’ . jpeg−smal l ’ )

109 I = np . array ( Image .open( fname ) )

110 I = I / 255

111 X test . append ( I )

112

113 X test = np . array ( X tes t ) . astype ( f loat )

114

115 img channels = I . shape [−1]

116 img rows , img co l s = I . shape [ : 2 ]

117

118 i f K. image dim order ing ( ) == ’ t f ’ :

119 input shape = ( img rows , img co l s , img channels )

120 else :

121 a s s e r t False , ”Must use Tensorf low backend”

Page 51: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

41

122

123 Y tra in = np u t i l s . t o c a t e g o r i c a l ( l a b e l t r a i n , nb c l a s s e s )

124 Y test = np u t i l s . t o c a t e g o r i c a l ( l a b e l t e s t , n b c l a s s e s )

125

126 i f os . path . i s f i l e ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−model . h5” ) and os .

path . i s f i l e ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−h i s t o r y . p i c k l e ” ) :

127 model=load model ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−model . h5” ,

compile=False )

128 f i l ename = open( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−h i s t o r y . p i c k l e ” ,

” rb” )

129 else :

130 a s s e r t False , ”Must generate model f i r s t ”

131

132 from DenseNoise import DenseNoise

133 from Convolut iona lNoise import Conv2DNoise

134

135 dxPlot , dyPlot = 0 .2 , 0 .02

136 yPlot , xPlot = np . mgrid [ s l i c e (−0.01 , 0 . 26 , dyPlot ) ,

137 s l i c e (−0.1 , 2 .6 , dxPlot ) ]

138 zPlot=np . z e ro s ( ( np . s i z e ( xPlot , 0 ) , np . s i z e ( xPlot , 1 ) ) )

139 my xTicks = xPlot [ 0 , : ]

140 my xTicks = my xTicks [0 : −1 ] + dxPlot /2

141 my yTicks = yPlot [ : , 0 ]

142 my yTicks = my yTicks [0 : −1 ] + dyPlot /2

143 tota lDots = (np . s i z e ( xPlot , 0 )−1) ∗ (np . s i z e ( xPlot , 1 )−1)

144 iDots = 0

145 ceroS imult = 0

146 minMinError = 2

147

148 for i xP l o t in range (0 , np . s i z e ( xPlot , 0 )−1) :

149 for i yP l o t in range (0 , np . s i z e ( xPlot , 1 )−1) :

150 iDots = iDots + 1

151 sigmanoiseP=0.1

152 sigmanoiseD = xPlot [ i xP lo t , i yP l o t ] + dxPlot /2

153 sigmanoiseC = yPlot [ i xP lo t , i yP l o t ] + dyPlot /2

154

155 i f sigmanoiseD==0 and sigmanoiseC==0:

156 ceroS imult = 1

157 ceroS imult xIndex = i xP l o t

158 ceroS imult yIndex = i yP l o t

159 continue

160

161 model1 = Sequent i a l ( )

162

163 model1 . add ( Convolution2D (32 , (3 , 3) , padding=’ same ’ ,

164 input shape=input shape ) )

165 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

166 model1 . add ( BatchNormalization ( ) )

167 model1 . add (MaxPooling2D ( p o o l s i z e =(2 , 2) ) )

168

169 model1 . add ( Convolution2D (64 , (3 , 3) ) )

170 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

171 model1 . add ( BatchNormalization ( ) )

172 model1 . add (MaxPooling2D ( p o o l s i z e =(2 , 2) ) )

173

174 model1 . add ( Convolution2D (128 , (3 , 3) ) )

175 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

176 model1 . add ( BatchNormalization ( ) )

177 model1 . add (MaxPooling2D ( p o o l s i z e =(2 , 2) ) )

178

179 model1 . add ( Convolution2D (256 , (3 , 3) ) )

180 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

181 model1 . add ( BatchNormalization ( ) )

182 model1 . add (MaxPooling2D ( p o o l s i z e =(2 , 2) ) )

183

184 model1 . add ( Convolution2D (512 , (3 , 3) ) )

185 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

186 model1 . add ( BatchNormalization ( ) )

187 model1 . add (MaxPooling2D ( p o o l s i z e =(2 , 2) ) )

188

189 model1 . add (Conv2DNoise (512 , (3 , 3 ) , s igmanoise=sigmanoiseC ) )

190 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

191 model1 . add ( BatchNormalization ( ) )

192 model1 . add (MaxPooling2D ( p o o l s i z e =(2 , 2) ) )

193

194 model1 . add ( Flatten ( ) )

195 model1 . add (Dense (1024) )

196 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

197

198 model1 . add ( DenseNoise (1024 , s igmanoise=sigmanoiseD ) )

Page 52: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

42 Ataque y defensa en imagenes de retinopatıa diabetica

199 model1 . add ( Act ivat ion ( ’ r e l u ’ ) )

200

201 model1 . add (Dense ( nb c l a s s e s ) )

202 model1 . add ( Act ivat ion ( ’ softmax ’ ) )

203

204 opt = Adam( l r=l r , decay = 2 ∗ l r / nb epoch )

205 model1 . compile ( l o s s=’ c a t e g o r i c a l c r o s s e n t r o py ’ ,

206 opt imize r=opt ,

207 metr i c s =[ ’ accuracy ’ ] )

208

209 weights = model . g e t we ight s ( )

210 model1 . s e t we i gh t s ( weights )

211

212 from t en so r f l ow . python . ops . p a r a l l e l f o r import j acob ian as t f j a c o b i a n

213 from t en so r f l ow . python . ops . p a r a l l e l f o r import batch jacob ian as t f b a t ch j a c ob i an

214

215 jacob ian = t f j a c o b i a n (model . l a y e r s [ −1 ] . input , model . l a y e r s [ 0 ] . input , u s e p f o r=

False )

216 batch jacob ian = t f b a t ch j a c ob i an (model . l a y e r s [ −1 ] . input , model . l a y e r s [ 0 ] . input ,

u s e p f o r=False )

217

218 c l a s e =[”No DR” , ”Mild DR” , ”Moderate DR” , ”Severe DR” , ” Pro l i f e r a t i v e DR ” ]

219

220 i s u c c=0

221 nidx=300

222 eta =0.01

223 maxiter=100

224 n i t e r =300

225 n i dx r e a l=0

226

227 igood 10=np . z e ro s ( shape=(nidx ) )

228 igood 11=np . z e ro s ( shape=(nidx ) )

229 robust = np . z e ro s ( shape=(nidx ) )

230 robust adver= np . z e ro s ( shape=(nidx ) )

231 robust 0 = np . z e ro s ( shape=(nidx ) )

232 robus t adver 0= np . z e ro s ( shape=(nidx ) )

233 l 2=np . z e ro s ( shape=(nidx ) )

234

235 for idx in range ( nidx ) :

236 img0 = np . squeeze ( X tes t [ idx ] )

237 img = img0 . reshape ( (1 , img rows , img co l s , img channels ) )

238

239 laye r output = s e s s . run (model . l a y e r s [ −1 ] . input , f e e d d i c t={model . input : img})240

241 iout=np . a r g s o r t ( l aye r output [ 0 ] ) [ nb c l a s s e s −1]

242 i ob j=np . a r g s o r t ( l aye r output [ 0 ] ) [ nb c l a s s e s −2]

243

244 i f np . argmax ( Y test [ idx ] ) != iout :

245 continue

246

247 i ter=0

248 iadv=−1249 while iadv != i ob j and iter<maxiter :

250 l aye r output = s e s s . run (model . l a y e r s [ −1 ] . input , f e e d d i c t={model . input :

img})251 iout=np . a r g s o r t ( l aye r output [ 0 ] ) [ nb c l a s s e s −1]

252 grad = s e s s . run ( batch jacob ian , f e e d d i c t={model . input : img})253 dgrad=grad [ : , iout , . . . ] − grad [ : , i ob j , . . . ]

254 norm2=np . dot ( dgrad . f l a t t e n ( ) , dgrad . f l a t t e n ( ) )

255 de l ta output=laye r output [ 0 ] [ i ou t ]− l aye r output [ 0 ] [ i o b j ]

256 X adver = img − (1+eta )∗ de l ta output ∗dgrad/norm2

257 laye r output = s e s s . run (model . l a y e r s [ −1 ] . input , f e e d d i c t={model . input :

X adver })258 iadv=np . a r g s o r t ( l aye r output [ 0 ] ) [ nb c l a s s e s −1]

259 img=X adver

260 i ter += 1

261 i f i o b j == iadv :

262 i s u c c=i su c c+1

263 aa=np .sum( ( X tes t [ idx : idx+1]−X adver ) ∗∗2)264 bb=np .sum( X tes t [ idx : idx +1]∗∗2)265 l 2 [ n i d x r e a l ]=np . sq r t ( aa/bb)

266 for i in range ( n i t e r ) :

267 img0 = np . squeeze ( X tes t [ idx ] )

268 img = img0 . reshape ( (1 , img rows , img co l s , img channels ) )

269 laye r output1 = s e s s . run (model1 . l a y e r s [ −1 ] . input , f e e d d i c t={model1 .

input : img})270 iout1=np . a r g s o r t ( l aye r output1 [ 0 ] ) [ nb c l a s s e s −1]

271 igood 10 [ n i dx r e a l ]+=np . eye ( nb c l a s s e s , nb c l a s s e s ) [ i ou t ] [ i out1 ]

272

273 img0 = np . squeeze ( X adver )

Page 53: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

43

274 img adver = img0 . reshape ( (1 , img rows , img co l s , img channels ) )

275 laye r output1 = s e s s . run (model1 . l a y e r s [ −1 ] . input , f e e d d i c t={model1 .

input : img adver })276 iout1=np . a r g s o r t ( l aye r output1 [ 0 ] ) [ nb c l a s s e s −1]

277 igood 11 [ n i dx r e a l ]+=np . eye ( nb c l a s s e s , nb c l a s s e s ) [ iadv ] [ i out1 ]

278

279 robust [ n i d x r e a l ]= igood 10 [ n i dx r e a l ] / n i t e r

280 robust adver [ n i d x r e a l ]= igood 11 [ n i dx r e a l ] / n i t e r

281

282 n i dx r e a l += 1

283

284 l 2 = l2 [ 0 : n i d x r e a l ]

285 robust = robust [ 0 : n i d x r e a l ]

286 robust adver = robust adver [ 0 : n i d x r e a l ]

287

288 minError = min er ror ( robust , robust adver )

289

290 i f (minError<minMinError ) :

291 robus t be s t = np . copy ( robust )

292 robus t adve r be s t = np . copy ( robust adver )

293 minMinError = minError

294

295 zPlot [ i xP lo t , i yP l o t ] = minError

296

297 i f ceroS imult == 1 :

298 zPlot [ ceroSimult xIndex , ceroS imult yIndex ] = np . amax( zPlot )

299

300 zPlot = zPlot [ :−1 , :−1]

301 l e v e l s = MaxNLocator ( nbins=100) . t i c k v a l u e s ( zPlot .min( ) , zPlot .max( ) )

302 #xPlot , yP l o t and zP l o t are used to c r e a t e t h e co lorGraph

303 np . savetxt ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−co lorGraph xPlot . csv ” ,

xPlot , d e l im i t e r=” , ” , fmt=” %10.5 f ” )

304 np . savetxt ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−co lorGraph yPlot . csv ” ,

yPlot , d e l im i t e r=” , ” , fmt=” %10.5 f ” )

305 np . savetxt ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−co lorGraph zPlot . csv ” ,

zPlot , d e l im i t e r=” , ” , fmt=” %10.5 f ” )

306 #r o b u s t b e s t and r o b u s t a d v e r b e s t are used to c r e a t e t h e h i s togram

307 np . savetxt ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−r obus t be s t . csv ” ,

robust bes t , d e l im i t e r=” , ” , fmt=” %10.5 f ” )

308 np . savetxt ( os . path . abspath ( os . cu rd i r )+”/genData/”+thisFi leName+”−r obus t adve r be s t . csv ” ,

robus t adver bes t , d e l im i t e r=” , ” , fmt=” %10.5 f ” )

Algoritmo B.2: Funcion min error.

1 def min error ( robust , robust adver ) :

2 import numpy as np

3 from s c ipy import s t a t s

4 nb = robust . shape [ 0 ]

5 r e s = s t a t s . cumfreq ( robust , numbins=nb , d e f a u l t r e a l l i m i t s =(0 , 1) )

6 r e s adve r = s t a t s . cumfreq ( robust adver , numbins=nb , d e f a u l t r e a l l i m i t s =(0 , 1) )

7 f a l s e c l a s i f=nb−r e s adve r [0 ]+ r e s [ 0 ]

8 i=np . a r g s o r t ( f a l s e c l a s i f ) [ 0 ]

9 return f a l s e c l a s i f [ i ] / (2∗nb)

Page 54: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA
Page 55: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Agradecimientos

El fin de esta tesis y la culminacion de mi carrera de grado, cierra un perıodo

importante en mi vida. Voy a intentar nombrar y agradecer a todas las personas e

instituciones que me ayudaron a que esto sea posible.

A la universidad Nacional del Comahue, por brindarme de muchas herramientas

en mis primeros dos anos de ingenierıa. Muchısimas gracias al Instituto Balseiro, por

darme la posibilidad de formarme como profesional en un lugar como el Centro Atomico

Bariloche, rodeado de personas apasionadas en lo que hacen.

A German y Ariel, por darme la oportunidad de hacer este proyecto, por acompanar-

me hasta el final y por la inmensa paciencia, dedicacion y buena onda que tuvieron en

todo momento.

A mis profesores y ayudantes. Serıa una lista muy larga, pero les agradezco a cada

uno de los que, por mas pequeno que haya sido el detalle, dieron su tiempo para

responderme una duda con mucha pasion y dedicacion.

A Graciela, por el gran apoyo academico y amabilidad dentro del IB, principalmente

en un momento muy difıcil en mi vida debido a una tragedia familiar.

A los mecanicos IB16, un curso al que voy a extranar muchısimo. Gracias por las

risas, las charlas, las comidas juntos, los viajes, las juntadas a estudiar y porque aun

habiendo ciertos momentos de desesperacion pre-parciales, pre-finales y otros, siempre

voy a recordar a mi etapa del IB con una sonrisa. A mucha otra gente del CAB, princi-

palmente a Mati Lorenz por ser una increıble persona, un gran amigo y mi companero

de cuarto, y a Dana que pasamos de ser personas que se saludaban en la cafeterıa, a

ser super amigos, aun teniendo en cuenta que no te gustan Los Simpsons ni Messi :p

A mi familia en general, por haberme hecho sentir muy feliz y querido desde siempre.

Gracias por apoyarme y darme animos en todas las ideas y proyectos que tuve (y que

seguire teniendo, ası que preparense, jaja). Espero hacerles sentir todo lo lindo, o por

lo menos una parte, de lo que ustedes me hacen sentir a mi todos los dıas.

A mi papa, por ser tan buen consejero y companero, por incentivar mi curiosidad

desde que tengo memoria, por explicar todo con tanta paciencia y por mostrarme la

inmensa voluntad y fuerza que puede tener alguien en momentos difıciles.

A vos viejita, sos por lejos la persona mas generosa y amable que conozco, no hablo

de la virtud sino de la facilidad con la que se puede amarte. Seguı siempre con tus

45

Page 56: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

46 Agradecimientos

cantos inadvertidos, con tus comentarios “raros” sobre futbol, con tus notitas, y con

todos esos detalles que te hacen ser como sos.

A mis super hermanos Ber, Eri, Lu y Fer (aunque ya no estes), por cuidarme

y haberme dado tanto amor desde chiquito, por ensenarme infinidad de cosas, por

escucharme, por darme consejos de hermanos y por saber que con un llamado o juntada,

puedo contar para lo que sea con ustedes. Los tenga cerca o lejos, siempre me siento

muy acompanado.

A Julio, por los muchos momentos compartidos, los cuales siempre recuerdo con

una sonrisa.

A Nahue, Andi y Fede, mis enormes (y chiquitines) amigos de la secundaria, gracias

por hacerme tener tan lindos recuerdos de todas las juntadas, desde los tiempos del

CTS hasta hoy, y espero que muchas mas.

Me conozco desde hace mucho tiempo, y se que me tengo que haber olvidado de

alguien, a esa gente, perdon.

Por ultimo y sin ser egocentrico, un recordatorio/consejo para mi yo del futuro:

espero seguir poniendole ganas a todo lo que hago, espero seguir enfrentando nuevos

proyectos para lograr metas (pequenas o grandes), espero aprender mucho de los errores

y disfrutar del camino que decida seguir.

Page 57: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Bibliografıa

[1] Russell, S. J., Norvig, P. Inteligencia Artificial: un enfoque moderno. 2 edicion.

Prentice Hall, 2008. 1, 3

[2] Sermanet, P., Eigen, D., Zhang, X., Mathieu, M., Fergus, R., LeCun, Y. Overfeat:

Integrated recognition, localization and detection using convolutional networks.

arXiv preprint arXiv:1312.6229, 2013. 2

[3] Wu, Y., Giger, M. L., Doi, K., Vyborny, C. J., Schmidt, R. A., Metz, C. E. Artificial

neural networks in mammography: application to decision making in the diagnosis

of breast cancer. Radiology, 187 (1), 81–87, 1993. 2

[4] Esteva, A., Kuprel, B., Novoa, R. A., Ko, J., Swetter, S. M., Blau, H. M., et al.

Dermatologist-level classification of skin cancer with deep neural networks. Nature,

542 (7639), 115, 2017. 2

[5] Pratt, H., Coenen, F., Broadbent, D. M., Harding, S. P., Zheng, Y. Convolutional

neural networks for diabetic retinopathy. Procedia Computer Science, 90, 200–205,

2016. 2

[6] Szegedy, C., Zaremba, W., Sutskever, I., Bruna, J., Erhan, D., Goodfellow, I.,

et al. Intriguing properties of neural networks. arXiv preprint arXiv:1312.6199,

2013. 2, 3, 13

[7] Goodfellow, I. J., Shlens, J., Szegedy, C. Explaining and harnessing adversarial

examples. arXiv preprint arXiv:1412.6572, 2014. 2, 3, 13

[8] Diabetic retinopathy detection - kaggle. URL

https://www.kaggle.com/c/diabetic-retinopathy-detection. Accedido 25-05-

2019. 3, 28, 29

[9] James, G., Witten, D., Hastie, T., Tibshirani, R. An introduction to statistical

learning, tomo 112. Springer, 2013. 3

[10] Hurwitz, J., Kirsch, D. Machine learning for dummies - IBM limited edition. John

Wiley & Sons, Inc, 2018. 3, 5, 6

47

Page 58: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

48 Bibliografıa

[11] Hertz, J. A. Introduction to the theory of neural computation. CRC Press, 2018.

3, 6, 7, 8, 9, 11

[12] Moosavi-Dezfooli, S.-M., Fawzi, A., Frossard, P. Deepfool: a simple and accurate

method to fool deep neural networks. En: Proceedings of the IEEE conference on

computer vision and pattern recognition, pags. 2574–2582. 2016. 3, 12, 13, 15, 16,

34

[13] Carlini, N., Wagner, D. Adversarial examples are not easily detected: Bypassing

ten detection methods. En: Proceedings of the 10th ACM Workshop on Artificial

Intelligence and Security, pags. 3–14. ACM, 2017. 3, 17

[14] Conda documentation. URL https://docs.conda.io/projects/conda/en/latest. Ac-

cedido 23-05-2019. 3

[15] NVIDIA. Nvida cudnn — nvidia developer. URL

https://developer.nvidia.com/cudnn. Accedido 23-05-2019. 4

[16] Keras. URL https://keras.io/. Accedido 23-05-2019. 4, 7, 29

[17] Google. Tensorflow. URL https://www.tensorflow.org. Accedido 23-05-2019. 4

[18] He, K., Zhang, X., Ren, S., Sun, J. Delving deep into rectifiers: Surpassing human-

level performance on imagenet classification. En: Proceedings of the IEEE inter-

national conference on computer vision, pags. 1026–1034. 2015. 6

[19] Rosenblatt, F. The perceptron: a probabilistic model for information storage and

organization in the brain. Psychological review, 1958. 8

[20] Minsky, M., Papert, S. Perceptron: an introduction to computational geometry.

The MIT Press, Cambridge, expanded edition, 19 (88), 2, 1969. 8

[21] Cybenko, G. Approximation by superpositions of a sigmoidal function. Mathe-

matics of control, signals and systems, 2 (4), 303–314, 1989. 8

[22] Bryson, A. E., Ho, Y. C. Applied Optimal Control. New York: Blaisdell, 1969. 9

[23] Werbos, P., J. (Paul John, P. Beyond regression : new tools for prediction and

analysis in the behavioral sciences. Ph.D. Thesis, Harvard University, 1974. 9

[24] Parker, D. Technical report tr-47 , center for computational research in economics

and management science, massachusetts institute of technology, cambridge. MA,

1985. 9

Page 59: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA

Bibliografıa 49

[25] Rumelhart, D. E., Hinton, G. E., Williams, R. J. Learning internal representa-

tions by error propagation. Inf. tec., California Univ San Diego La Jolla Inst for

Cognitive Science, 1985. 9

[26] LeCun, Y. Une procedure d’apprentissage ponr reseau a seuil asymetrique. Pro-

ceedings of Cognitiva 85, pags. 599–604, 1985. 9

[27] Fukushima, K. Neocognitron: A self-organizing neural network model for a mecha-

nism of pattern recognition unaffected by shift in position. Biological cybernetics,

36 (4), 193–202, 1980. 9

[28] Hubel, D. H., Wiesel, T. N. Receptive fields of single neurones in the cat’s striate

cortex. The Journal of physiology, 148 (3), 574–591, 1959. 9

[29] Hubel, D. H., Wiesel, T. N. Receptive fields and functional architecture of monkey

striate cortex. The Journal of physiology, 195 (1), 215–243, 1968. 9

[30] LeCun, Y., Boser, B., Denker, J. S., Henderson, D., Howard, R. E., Hubbard,

W., et al. Backpropagation applied to handwritten zip code recognition. Neural

computation, 1 (4), 541–551, 1989. 9

[31] Goodfellow, I., Bengio, Y., Courville, A. Deep Learning. MIT Press, 2016. http:

//www.deeplearningbook.org. 10

[32] LeCun, Y., Bottou, L., Bengio, Y., Haffner, P., et al. Gradient-based learning

applied to document recognition. Proceedings of the IEEE, 86 (11), 2278–2324,

1998. 10, 11

[33] The mostly complete chart of neural networks. URL

https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-

explained-3fb6f2367464. Accedido 05-06-2019. 11

[34] Su, J., Vargas, D. V., Sakurai, K. One pixel attack for fooling deep neural networks.

IEEE Transactions on Evolutionary Computation, 2019. 13

[35] Feinman, R., Curtin, R. R., Shintre, S., Gardner, A. B. Detecting adversarial

samples from artifacts. arXiv preprint arXiv:1703.00410, 2017. 17

[36] Kappa. URL http://vassarstats.net/kappa.html. Accedido 27-05-2019. 29

Page 60: PROYECTO INTEGRADOR DE LA CARRERA INGENIER IA MECANICA