deep learning para clasificaciÓn de imÁgenes · 3.4. funci on de p erdida de modelos...

60
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA GRADO EN INGENIERÍA DE COMPUTADORES Curso Académico 2018/2019 Trabajo Fin de Grado DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES Autor: Carlos García Hernán Director: Holger Billhardt

Upload: others

Post on 21-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA

GRADO EN INGENIERÍA DE COMPUTADORES

Curso Académico 2018/2019

Trabajo Fin de Grado

DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES

Autor: Carlos García Hernán

Director: Holger Billhardt

Page 2: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados
Page 3: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Indice general

1. Introduccion 31.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Inteligencia artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Redes neuronales artificiales . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4. Cancer de piel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Tecnologıas utilizadas 112.1. Redes neuronales convolucionales . . . . . . . . . . . . . . . . . . . . . . . . 112.2. ISIC melanoma project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3. Plataforma tecnologica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4. Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3. CNN para clasificacion de imagenes 193.1. Implementacion inicial de una CNN . . . . . . . . . . . . . . . . . . . . . . . 193.2. Regularizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3. Batch Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4. Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.5. Ruido gaussiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.6. Adicion de ruido de gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . 303.7. Modelo final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4. Ampliacion del dataset mediante redes tipo GAN 334.1. Redes generativas adversarias . . . . . . . . . . . . . . . . . . . . . . . . . . 334.2. Implementacion final de una GAN . . . . . . . . . . . . . . . . . . . . . . . . 374.3. Entrenamiento de CNN con dataset generado . . . . . . . . . . . . . . . . . 46

5. Conclusiones y trabajo futuro. 475.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Apendices 49

A. Introduccion al codigo y otros datos relevantes 49

Bibliografıa 51

i

Page 4: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

ii INDICE GENERAL

Page 5: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Indice de figuras

1.1. Neurona biologica con parametros del perceptron . . . . . . . . . . . . . . . 41.2. Modelos de regresion lineal implementado puertas AND y OR (Yearofthedra-

gon, 2010). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Modelos de regresion lineal implementado una puerta XOR (Yearofthedragon,

2010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4. Funcion de salida lineal y no lineal de un perceptron . . . . . . . . . . . . . 61.5. Representacion tridimensional de una funcion de error . . . . . . . . . . . . . 7

2.1. Representacion de la funcion de convolucion en imagenes . . . . . . . . . . . 122.2. Max-pooling con un filtro 2x2 (Aphex34, 2015). . . . . . . . . . . . . . . . . 142.3. Distribucion de las imagenes en funcion de la inocuidad de la lesion . . . . . 152.4. Distribucion de las imagenes en funcion de la edad del paciente . . . . . . . . 152.5. Diagrama que representa la metodologıa usada de izquierda a derecha. . . . 17

3.1. Arquitectura de la CNN inicial . . . . . . . . . . . . . . . . . . . . . . . . . 203.2. Promedio de las funciones loss de los modelos [001,010] . . . . . . . . . . . . 213.3. Ejemplos de sobreajuste (funcion azul) y una buena generalizacion (funcion

amarilla) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.4. Funcion de perdida de modelos implementados con regularizacion L1 . . . . 233.5. Funcion de perdida de modelos implementados con normalizacion por lotes. . 253.6. Funcion de perdida de modelos implementados con dropout en la ultima capa. 263.7. Funcion de perdida de modelos implementados con dropout en la ultima capa

combinado con regularizacion o restricciones en pesos. . . . . . . . . . . . . . 273.8. Funcion de perdida de modelos implementados con batch normalization y

dropout en la ultima capa combinado con regularizacion o restricciones enpesos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.9. Funcion de perdida de modelos implementados con gaussian noise y dropouten la ultima capa combinado con restricciones en pesos y el modelo original. 29

3.10. Funcion de perdida de modelos implementados con gaussian noise y dropouten la ultima capa combinado con restricciones en pesos. . . . . . . . . . . . . 29

3.11. Funcion de perdida de modelos implementados ruido en el gradiente con 100epochs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.12. Funcion de perdida de modelos implementados ruido en el gradiente con 100epochs con mejor rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.13. Arquitectura del modelo final . . . . . . . . . . . . . . . . . . . . . . . . . . 313.14. Funcion loss del modelo final . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

iii

Page 6: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

iv INDICE DE FIGURAS

4.1. Esquema a alto nivel de un modelo GAN . . . . . . . . . . . . . . . . . . . . 364.2. GAN sin colapso modal (arriba) y GAN con colapso modal (abajo). Autor [16] 364.3. Esquema de la arquitectura utilizada para el generador . . . . . . . . . . . . 394.4. Bloque de abstraccion de cinco capas. Denominado como CBL por las siglas

de las tres primeras capas que lo componen. . . . . . . . . . . . . . . . . . . 414.5. Esquema de la arquitectura utilizada por el discriminador . . . . . . . . . . . 414.6. Curva de aprendizaje de la GAN final. Donde la lınea naranja representa el

loss del discriminador y la gris la del generador. . . . . . . . . . . . . . . . . 424.7. Muestras de las imagenes generadas en el epoch 0. . . . . . . . . . . . . . . . 424.8. Muestras de las imagenes generadas en el epoch 100. . . . . . . . . . . . . . 434.9. Muestras de las imagenes generadas en el epoch 2.000. . . . . . . . . . . . . 434.10. Muestras de las imagenes generadas en el epoch 6.700. . . . . . . . . . . . . 434.11. Muestras de las imagenes generadas en el epoch 26.900. . . . . . . . . . . . . 444.12. Muestras de las imagenes generadas en el epoch 60.000. . . . . . . . . . . . . 444.13. Distribucion de la distancia mınima del dataset generado con las imagenes

originales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.14. Imagen real (izquierda) mas similar a la imagen generada (derecha) con menor

distancia en la distribucion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.15. Curvas loss del entrenamiento del modelo M231-M240 con el nuevo dataset

aumentado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Page 7: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Indice de cuadros

2.1. Imagenes del subconjunto HAM10000 del dataset ISIC usadas para entrenaren el capıtulo 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2. Imagenes del subconjunto HAM10000 del dataset ISIC usadas para entrenaren el capıtulo 5 a la GAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3. Imagenes del subconjunto HAM10000 del dataset ISIC usadas para entrenaren el capıtulo 5 a la CNN con el dataset generado. . . . . . . . . . . . . . . . 18

3.1. Tabla de entrenamiento del modelo inicial . . . . . . . . . . . . . . . . . . . 213.2. Tabla de entrenamiento de modelos con regularizacion L1 y L2 . . . . . . . . 233.3. Tabla de entrenamiento de modelos con BN y regularizacion . . . . . . . . . 253.4. Tabla de entrenamiento de modelos con dropout . . . . . . . . . . . . . . . . 263.5. Tabla de entrenamiento de modelos con dropout y regularizacion . . . . . . . 273.6. Tabla de entrenamiento de modelos con dropout, BN y regularizacion . . . . 283.7. Tabla de entrenamiento de modelos con ruido gaussiano . . . . . . . . . . . . 293.8. Tabla de entrenamiento de modelos con ruido de gradiente . . . . . . . . . . 30

v

Page 8: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

vi INDICE DE CUADROS

Page 9: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Resumen

En este trabajo fin de grado se van a tratar tecnicas de aprendizaje profundo, masconcretamente, redes neuronales convolucionales para la clasificacion de lesionespotencialmente cancerıgenas en la piel, en funcion de si son benignas o malig-nas. Para ello, se hara un recorrido a traves de varios mecanismos que puedanoptimizar el resultado de dicha clasificacion. Se producira un especial hincapieen el uso de las redes generativas adversarias para el aumento de los datos deentrenamiento y como pueden suponer una mejora en dicha clasificacion.

Palabras clave: Aprendizaje automatico, redes neuronales convolucionales, deteccion decancer de piel, redes generativas adversarias.

1

Page 10: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados
Page 11: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Capıtulo 1

Introduccion

En este capıtulo se van a abordar los conceptos basicos necesarios para poder comprenderel resto del proyecto. Entre dichos conceptos estaran: los objetivos, las bases teoricas de lastecnicas que se van a usar, los conceptos biologicos y metodos medicos pertinentes.

1.1. Objetivos

A continuacion se van a listar los objetivos que se desean alcanzar a lo largo de este proyecto:

Realizar un sistema que ayude a la temprana deteccion de cancer de piel mediante unclasificador de imagenes que catalogue lesiones en benignas o malignas.

Aprender a implementar un clasificador binario de redes neuronales convolucionalesası como algunas tecnicas que puedan optimizar dicho modelo.

Desarrollar redes de tipo generativas que permitan ampliar de forma artificial conjuntosde datos y por tanto, mejorar el clasificador.

1.2. Inteligencia artificial

Se define inteligencia artificial como: “Disciplina cientıfica que se ocupa de crear programasinformaticos que ejecutan operaciones comparables a las que realiza la mente humana, comoel aprendizaje o el razonamiento logico” (Real Academia Espanola, 2018).

Este proyecto se va a centrar en un subcampo que se puede ver reflejado en la definicionanterior, el aprendizaje automatico, tambien conocido como Machine Learning. Definiendoesta rama, como el conjunto de tecnicas que permiten dotar, en este caso, a un software, deconocimiento sobre un tema determinado a partir de ciertos datos. Entendiendo por conoci-miento, la capacidad de un modelo para poder, normalmente, clasificar o predecir sobre losdatos usados.

En cuanto al aprendizaje, se diferencian tres tipos en funcion de la forma en que se lefacilita la informacion al sistema:

3

Page 12: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4 CAPITULO 1. INTRODUCCION

Aprendizaje supervisado: Consiste en introducir datos previamente etiquetados con lasalida que el sistema deberıa responder, para que de esta forma, cuando procese laverdadera salida, pueda ser comparada con la salida ideal. De esta manera se puedaobtener de dichos fallos o aciertos un aprendizaje.

Aprendizaje no supervisado: En esta ocasion, los datos de entrada no estan etiquetadoscon lo que se espera que el sistema haga con ellos. Por lo que el modelo lo que hace esagrupar estos datos segun las caracterısticas similares que tengan y poder obtener unasalida correcta a partir de la clasificacion que realizo con anterioridad.

Aprendizaje por refuerzo: Consiste en introducir datos para que la inteligencia realiceuna accion en el mundo real, tras ejecutarla sera premiada o castigada en funcion desi ha realizado lo esperado o no.

1.3. Redes neuronales artificiales

En este trabajo se van a realizar tecnicas propias del aprendizaje supervisado. Mas concreta-mente, se utilizaran imagenes de lesiones en la piel que habran sido previamente etiquetadascomo benignas o malignas segun corresponda, para poder ensenar al sistema o modelo aclasificar correctamente.

Para disenarlo se van a usar redes neuronales artificiales. Una red neuronal artificial noes mas que un modelo de regresion materializado en conexiones sinapticas y capas neuro-nales. Para poder entender de forma sencilla esto, se va a comparar un perceptron (modeloneuronal) con una regresion lineal.

Figura 1.1: Neurona biologica con parametros del perceptron

Si se presenta una neurona que adopta el modelo de perceptron simple, con dos entradas ensus dendritas (X1,X2) y cada una de estas tiene un peso determinado que puede potenciaro inhibir las entradas (W1,W2). Dicha neurona recogera las senales de entrada a travesde una funcion base, que no es mas que la suma ponderada de cada entrada con su pesocorrespondiente.

Y =n∑

i=1

(Xi ·Wi) +W0 (1.1)

La variable W0 es denominada sesgo y se puede interpretar como el peso de una dendritacuya entrada siempre es 1. Representa el valor umbral para que la neurona se active.

Page 13: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

1.3. REDES NEURONALES ARTIFICIALES 5

Se puede observar que la ecuacion anterior, tiene la misma estructura que un modelo deregresion lineal. Siendo Y la variable dependiente, las Xi las variables independientes y lasWi los parametros respectivos de cada variable independiente, exceptuando W0 que es eltermino constante y que servira para poder mover la funcion de regresion verticalmente.

Para los que desconozcan la importancia del modelo de regresion en estadıstica, este permiteponderar las dependencias de unas variables sobre otra e incluso predecir el valor de esta se-gunda en funcion de las primeras. Para ello, se busca que el modelo de regresion (la ecuacionanterior) aproxime de forma correcta la nube de puntos que forman las variables indepen-dientes con la dependiente. Para encontrar dicha recta se debe ajustar la funcion en basea los parametros Wi. Por lo que se suele utilizar el metodo de los mınimos cuadrados, queconsiste en minimizar el sumatorio de los cuadrados de la diferencia entre la salida real y laesperada. Si se desea conocer en mas detalle el funcionamiento de la regresion se recomiendair a (Novales, 2010).

Volviendo al modelo de perceptron, creado por el psicologo Frank Rosenblatt. Es uno de losmodelos de neuronas mas sencillos y a su vez mas potentes. Como ya se ha dicho, es unmodelo de regresion encubierto en la biologıa de una neurona. Por lo que es capaz de poderrealizar tareas de clasificacion y prediccion a partir de las variables de entrada. Pero unasola neurona tiene limitaciones, un ejemplo claro de ello es si se usa un perceptron simplepara hacer puertas logicas.

Figura 1.2: Modelos de regresion lineal implementado puertas AND y OR (Yearofthedragon,2010).

En la figura 1.2 se encuentran dos perceptrones simples diferentes que han conseguido ajustarla funcion de regresion de forma que partan las variables X1 y X2 en dos zonas segun lasalida deba ser 0 o 1 en funcion de la puerta logica que representan. Pero si se trata dehacer lo mismo con una puerta XOR, es facil comprobar que es imposible. Ya que la nube depuntos de XOR no se puede separar en dos categorıas distintas, 0 y 1, solo con una funcionde regresion, o mejor dicho, un hiperplano. Por lo que se va a proceder a poner en unamisma capa dos neuronas para que generen dos hiperplanos distintos. Las salidas de estasdos neuronas las recibira otra neurona de la capa posterior, para que unifique la informacionprocesada por la neurona anterior en una sola salida. De esta forma, y como se ve en laFigura 1.3, el perceptron es capaz de emular una puerta XOR. Se acaba de introducir elperceptron multicapa.

Page 14: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

6 CAPITULO 1. INTRODUCCION

Figura 1.3: Modelos de regresion lineal implementado una puerta XOR (Yearofthedragon,2010)

Ahora se sabe que encadenar neuronas permite que cada una de estas se centre en carac-terısticas diferentes de los datos de entrada, para que en capas posteriores, las neuronasreciban la informacion procesada, la unifiquen y puedan procesar caracterısticas mas com-plejas.

Antes de continuar se debe explicar otra funcion que interviene en cada neurona a partede la suma ponderada ya conocida. Esta es la funcion de activacion, cuya entrada serıa lafuncion base. Esta funcion de activacion puede ser lineal (identidad, escalon,etc) o no lineal(ReLu,tangente hiperbolica, etc).Hay que tener en cuenta que si se va a implementar un perceptron, es conveniente usaruna funcion de activacion no lineal, puesto que es mucho mas potente, ya que otorga unaflexibilidad a la hora de ajustar la funcion con los ejemplos de entrada, que con un hiperplanono se podrıa. Una muestra grafica de ello es la Figura 1.4.

Figura 1.4: Funcion de salida lineal y no lineal de un perceptron

Entonces, en un modelo perceptron multicapa se tiene una capa de entrada (tantas comoentradas haya) que no procesan ningun dato de entrada, luego se pueden presentar variascapas ocultas, mas de dos no se recomienda por el gasto de conseguir ajustar un modelocon tantos pesos, que estaran completamente conectada con la capa de entrada y con lasiguiente. Y por ultimo se situa una capa de salida similar a la capa oculta. Se desconoceel numero de neuronas que debe haber en cada capa y el numero de capas optimo, por loque para encontrar el modelo ideal se debe hacer uso del ensayo y error. Lo que se suelemantener es un modelo piramidal de mas a menos en el numero de neuronas por capa.

Para el aprendizaje en el perceptron multicapa se calcula la media del error cuadratico.Para utilizar luego como metodo de optimizacion el algoritmo de retropropagacion, el cual

Page 15: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

1.3. REDES NEURONALES ARTIFICIALES 7

hace uso del descenso de gradiente. Para conocer mas en detalle el funcionamiento tanto dela retropropagacion como el metodo del descenso de gradiente consultar (De la Mata, 2013).A continuacion se va a abordar de forma superficial el algoritmo de retropropagacion desdeel punto de vista de una clasificacion binaria.

Pero antes de esto se van a recordar los conceptos mas relevantes. El perceptron consiguepartir una nube de puntos mediante la funcion de activacion. Esta funcion del perceptronactua como un hiperplano con tantas dimensiones como entradas tenga este. Si la funcion deactivacion es lineal, el separador tambien lo sera, lo que en ocasiones puede limitar la clasifi-cacion. Para poder superar dicha limitacion, se puede hacer uso del perceptron multicapa, elcual podrıa anadir varios hiperplanos que pudieran delimitar las nubes de puntos medianteformas convexas o incluso con otras mas complejas.

Ahora que se conoce esto, hay que plantear una forma eficaz de entrenar un perceptronmulticapa, pues establecer las dependencias entre variables en una red con diversas capas dela misma forma que en una red con una capa, es un proceso que puede durar mucho tiempo.Por ello se creo el algoritmo de retropropagacion, que hace uso del paralelismo innato quetiene para corregir los pesos de las neuronas.

Como se ha mencionado antes, la retropropagacion tambien hace uso del error cuadrati-co como metrica del aprendizaje. Pero como es posible que haya varias neuronas de salida,se usa el error medio cuadratico.

Error =1

n

n∑i

(salida deseadai − salida reali)2 (1.2)

La retropropagacion se divide en dos fases. La primera en la que las entradas del modelo seprocesan hacia delante, hasta obtener una salida con la que se calculara el error. Para luegopasar a la segunda fase que es procesar ese error hacia atras para que cada neurona corrijasus pesos en funcion de las entradas que tuvo, y su peso a la hora de procesar esa salida fi-nal, teniendo logicamente mayor peso las neuronas de capas finales que las de capas iniciales.

El algoritmo de retropropagacion se basa en la tecnica delta, tambien conocida como des-censo del gradiente. Para poder entender como funciona el descenso del gradiente se va avisualizar la funcion de error anteriormente mostrada como una superficie tridimensional enla Figura 1.5.

Figura 1.5: Representacion tridimensional de una funcion de error

Page 16: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

8 CAPITULO 1. INTRODUCCION

La finalidad del descenso del gradiente es la de encontrar el mınimo global en dicha funcion.Para ello se debe calcular las derivadas parciales de cada uno de los pesos para poder conellas formar un vector que indicara la direccion en que la funcion de error asciende. A estevector representado por 4f se le denomina gradiente.

4f = [δError

δW0

, ... ,δError

δWn

] (1.3)

Por lo que si se usa iterativamente −4 f en los pesos, el modelo ira reduciendo el error.

[W ] = [W ]− α · 4f ∗ entradaNeurona (1.4)

Siendo α la constante de aprendizaje, la cual marca el ritmo en que el gradiente desciende.Si se usa una constante de aprendizaje muy pequena, se necesitaran mas iteraciones paraconseguir llegar al mınimo y por el camino es mas probable que el gradiente converja en unmınimo local. En cambio, si se aplica una constante muy alta, puede que el gradiente seaincapaz de converger en un mınimo ya que el avance en la funcion de error en cada iteracionsera tan grande que exceda el punto mınimo constantemente.

Como ya se ha mencionado antes, dependiendo de en que capa este la neurona, el errores diferente, para que la correccion que se aplique a cada neurona sea proporcional al impac-to que tiene en la salida. Por lo que el error en una capa oculta anterior a la capa de salidaserıa la siguiente expresion.

Errorn =∑j

Wn 7−→j · Errorj (1.5)

1.4. Cancer de piel

En la seccion 1.2 y 1.3 se han establecido unas bases teoricas, muy superficiales, para enten-der los mecanismos que se usaran para solucionar el problema a tratar, clasificar lesiones dela piel en dos categorıas, benignos y malignos.

Un melanoma es como se designa a los tumores melanicos, es decir, como cualquier tu-mor, es la alteracion de los tejidos que provoque un aumento en el volumen, en este caso,de los tejidos formados por los melanocitos. Estos son celulas cuya principal funcion es lade generar melanina. El tipo de cancer mas comun no es el melanoma, sino el carcinoma.Pero el primero sı es el tipo de cancer de piel que mas mortandad genera. A diferencia dela creencia popular, un melanoma no es unicamente de origen cutaneo, puesto que se puedeoriginar en el intestino y en el ojo.

Los principales factores de riesgo de cancer de piel, que los expertos han catalogado son:Caracterısticas del cuerpo (piel clara, ojos verdes y azules, pelo rojo o rubio), exposicion ala luz solar de forma directa durante largos perıodos de tiempo, exposicion a determinadosfactores del entorno (radiacion,PCBs, etc) y geneticos, entre otros (National Cancer Institu-te, 2018).

Page 17: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

1.4. CANCER DE PIEL 9

Las formas de diagnosticar un melanoma es a traves de un examen superficial de la piel,como la dermotoscopia, o a traves de una biopsia. La dermotoscopia, tambien conocida co-mo epiluminiscencia, permite a traves de un metodo no invasivo observar lesiones debajo dela superficie cutanea. Para ello se usa el dermatoscopio, un microscopio manual que amplificala imagen, ademas de emitir luz. Con motivo de evitar la refraccion de la luz por parte de laepidermis, el dermatoscopio esta dotado de una capa lıquida, que puede ser de agua, alcoholo aceite, que permite ver estructuras de la epidermis que no podrıan verse de forma normal.

Un melanoma maligno atraviesa diferentes estados desde que se crea hasta que se producela metastasis:

Estado 0: A este estado se le conoce como ”melanoma in situ”. En este, algunos me-lanocitos anormales son encontrados en la epidermis.

Estado I: El cancer se ha formado. Se divide en dos subestados: estado IA, donde eltumor no es mayor a 1mm, y estado IB donde el tamano es entre 1 y 2 milımetros.

Estado II: Atraviesa varios subestados desde entre 1 y 2 milımetros con ulceracion oentre 2 y 4 milımetros sin ella, hasta mas de 4 milımetros con o sin ulceracion.

Estado III: Atraviesa varios subestados similares a los tamanos del estado dos, pero elcancer es encontrado.

Estado IV: Se puede encontrar el cancer no solo en el melanoma sino en otras partesdel cuerpo debido a la metastasis.

Hay diferentes tratamientos para curar un melanoma maligno:

Cirugıa: Una excision local para retirar el melanoma y parte que le rodea es la formamas eficaz de terminar con un melanoma siempre que no se haya producido metastasis.

Quimioterapia: Se usan quımicos para frenar el crecimiento de las celulas cancerosasya sea matando o parandolas.

Radiacion: Se usan los rayos-x u otras radiaciones para matar las celulas cancerıgenaso frenar su descontrolado crecimiento.

Inmunoterapia: Se usa el sistema inmunologico para combatir el cancer.

Terapia dirigida: Se usan sustancias para atacar directamente las celulas cancerıgenas.Es una terapia mucho menos abrasiva que otros tratamientos como quimioterapia oradiacion.

Segun (Noone et al., 2018), se estiman 91.270 nuevos casos de cancer, al ano, debido a me-lanomas malignos, de los cuales, 9320 resultaran en muerte. Tras estas estadısticas quedaclaro que la deteccion temprana de melanomas es un objetivo que se debe alcanzar, por ellocualquier tipo de tecnica que facilite su deteccion es digna de ser desarrollada.

Todos los hechos y conceptos explicados en este punto han sido detallados por (NationalCancer Institute, 2016)

Page 18: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

10 CAPITULO 1. INTRODUCCION

Page 19: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Capıtulo 2

Tecnologıas utilizadas

En el capıtulo anterior se han abordado las bases tanto del problema a tratar, el cancerde piel, como las tecnicas a utilizar, las redes neuronales artificiales. Este segundo capıtulose ha reservado para conocer en detalle los elementos introducidos en el primer capıtulo yque seran los que se utilicen en la parte de experimentacion. Explicando el tipo de redesconcretas que se implementaran, el conjunto de datos con los que se entrenara el modelo, lastecnologıas que haran posible esta implementacion y la metodologıa usada a partir de estecapıtulo para hacer evolucionar el proyecto hasta un resultado satisfactorio.

2.1. Redes neuronales convolucionales

Hasta ahora se ha visto como los perceptrones simples y multicapa procesan la informaciony rectifican sus pesos para conseguir llevar a cabo un aprendizaje. Tambien se conoce queun perceptron multicapa con varias capas y funciones de activacion no lineales es capaz declasificar problemas de gran complejidad. Y aunque esto es cierto, el perceptron multicapase encuentra muy limitado a la hora de tener como entrada datos de tipo imagen.

Si se situa una imagen en escala de grises con 100 numeros reales de alto y 100 de an-cho, es decir, una imagen con unas dimensiones de 100x100x1, ya que la escala de grises esun espacio de color de una sola dimension, a diferencia de por ejemplo, RGB que se repre-senta con tres dimensiones.

Ahora se quiere clasificar imagenes con estas caracterısticas, pues como capa de entradase necesitarıan 10.000 neuronas, una por pıxel. Seguido de, por ejemplo 5.000 neuronas enla capa oculta y 1 neurona en la capa de salida. Teniendo un modelo de este tamano secomprobarıa que se deberıa manejar 50 millones de pesos entre la capa de entrada y oculta,mas 5000 pesos entre la capa oculta y la capa de salida. Es decir, se necesitarıa un total de50.005.000 pesos para poder clasificar imagenes con una resolucion muy baja y en escala degrises. Por lo que para poder clasificar imagenes en alta definicion y a color se necesitarıauna capacidad de computo extremadamente grande.

Tras estos pequenos calculos, es logico pensar en buscar otra alternativa para poder lle-var a cabo la clasificacion de imagenes. Es aquı donde entran en juego las redes neuronales

11

Page 20: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

12 CAPITULO 2. TECNOLOGIAS UTILIZADAS

convolucionales (CNN). Este tipo de red es una variacion del perceptron multicapa, peroinspirado en las neuronas de la corteza visual primaria, la cual es una seccion del cerebroaltamente especializada en el reconocimiento de patrones en las imagenes. La idea principalde este modelo es el de dividir el procesamiento de imagenes en dos fases:

Fase de extraccion de caracterısticas: En esta etapa el objetivo es ir reduciendo lasdimensiones de las imagenes a lo largo de las capas dedicadas a esta fase. Mientrasse reducen las dimensiones se extraen patrones cada vez mas complejos y abstractos,empezando por bordes y colores en las capas iniciales para acabar detectando objetosen las capas finales. Al final de esta etapa el objetivo es tener un vector de n longituden el que sus valores representen la existencia de determinados patrones. Es decir, estaetapa coge un tipo de datos no estructurado como son las imagenes y las estructuraen un vector.

Clasificacion: En esta etapa se presentan capas de neuronas totalmente conectadas,es decir, el perceptron multicapa. Que una vez tiene a su disposicion un vector conlas caracterısticas existentes en la imagen, solo debe conseguir clasificar que posicionesde vector en determinados valores pertenece a una u otra categorıa. Por supuesto unperceptron que tenga que clasificar un vector n es mucho mas manejable que uno quetuviese que clasificar las imagenes originales.

Uno de los principales tipos de capas que se pueden encontrar en la fase de extraccion, esla capa de convolucion. La capa de convolucion es una operacion que tiene lugar entre dosparametros para resultar en un tercero. Estos parametros formarıan un pequeno fragmen-to de la imagen y un filtro del mismo tamano para obtener como resultado un solo valor.Dependiendo de los valores del filtro se resaltan ciertas caracterısticas de las imagenes u otras.

La forma de procesar la totalidad de la imagen con el filtro serıa coger esa submatriz depıxeles, hacer la convolucion y colocar el resultado en una nueva matriz que representauna nueva imagen. Tras esto, se seleccionara un nuevo fragmento desplazando la selecciondel fragmento en una posicion para repetir la accion. De esta forma, de izquierda a dere-cha y de arriba a abajo, obteniendo una imagen ligeramente menor (nueva dimension =antigua dimension+ 1− dimension filtro), donde se habra resaltado unos u otros valoresde la imagen. Un ejemplo de dicha operacion se encuentra en la Figura 2.1.

Figura 2.1: Representacion de la funcion de convolucion en imagenes

Page 21: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

2.1. REDES NEURONALES CONVOLUCIONALES 13

Esta capa ofrece nuevos hiperparametros cuyos valores repercutiran en el resultado final. Unoes el llamado ”stride”, el cual marca el numero de desplazamientos en la imagen en cadaoperacion de convolucion. Con un stride pequeno, la imagen resultante tras la convolucionsera mas exhaustiva y con una grande reducira en mayor medida el tamano de la imagen,pero perdera informacion entre pasos.

Otro hiperparametro es el zero-padding, consiste en incluir un borde de ceros a la ima-gen original de forma que la imagen resultante tenga las mismas dimensiones sin influir enel resultado de la convolucion.

Los filtros pueden estar pre-entrenados o entrenarse en tiempo de ejecucion para que re-salten las caracterısticas mas relevantes.

Normalmente en una capa de convolucion no se usa un solo filtro para generar una solaimagen resultante, sino que se utilizan n filtros para obtener n imagenes resultantes que seseguiran procesando paralelamente en las capas posteriores, por lo que, aunque las dimen-siones de las imagenes disminuye en anchura y altura, en profundidad esto no se cumple.Ademas, es usual que el numero de filtros usados vaya aumentando a medida que se vansucediendo las capas convolucionales, ya que es logico pensar, que cuantos mas filtros seutilicen, mas probabilidades de encontrar patrones relevantes habra.

Comparando esta operacion con el anterior modelo, el perceptron multicapa, se puede pensarsi esto ofrece verdaderamente mayor eficiencia en cuestion del numero de parametros. La res-puesta es, sı, puesto que la capa de convolucion dispone de una caracterıstica determinantepara esto, sus parametros, los filtros, son compartidos, es decir, se utiliza el mismo filtro a lolargo de la imagen, a diferencia del perceptron, donde cada pıxel tenıa un peso diferente. Sise retrocede a los calculos del principio del capıtulo, se tenıa que en una imagen de 100x100necesitaba 50 millones de pesos, mientras que aquı en una capa de convolucion que recibiesela imagen de dicho tamano y tuviese 8 filtros de 5x5, solo necesitarıa tratar 200 parametros,una cantidad varias magnitudes menor.

Una CNN podrıa componer su parte de extraccion de unicamente capas de convolucion.Pero para conseguir mayor eficiencia en dicha etapa, normalmente se suelen intercalar lascapas de convolucion con un nuevo tipo de capas, las capas pooling. La finalidad de estetipo de capas, es la de reducir las dimensiones de las imagenes notablemente sin perder lainformacion relevante. Por ello tras una capa convolucional, la capa pooling debe conseguirreducir las dimensiones manteniendo las caracterısticas que se hayan destacado. Este tipo decapas tambien estan dotadas de filtros, no entrenables, que en este caso son las que marcanla forma de mantener las caracterısticas relevantes.

Una de las capas de pooling que mas se usan son las denominadas ”max-pooling”, que cogenun fragmento de la imagen n ∗ m y se quedan con el pıxel de maximo valor. A pesar delo rudimentario que pueda parecer esta tecnica, consigue obtener unos buenos resultados.Ejemplo en la Figura 2.2.

Page 22: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

14 CAPITULO 2. TECNOLOGIAS UTILIZADAS

Figura 2.2: Max-pooling con un filtro 2x2 (Aphex34, 2015).

Estos dos tipos de capas son las que se pueden observar en la mayorıa de modelos CNN,obteniendo con la combinacion de ambos la extraccion de caracterısticas de la imagen y unrapido reescalado de esta a un vector. Normalmente es necesario utilizar una capa Flattenantes de pasar a la siguiente capa, que no es mas que coger las pequenas imagenes, peronumerosas en profundidad, fruto de ramificarse por los diferentes filtros convolucionales, yconvertirlo a un vector. Tras esto se tienen una o varias capas completamente conectadas,de la misma forma que un perceptron multicapa que clasificaran las imagenes en funcion delos valores de dicho vector.

A diferencia del perceptron multicapa, como neurona de salida no tiene una o varias neuronasque su salida (0 o 1), marque a que categorıa pertenece la imagen. En vez de eso, se sucedeque la ultima capa tiene como funcion de activacion la funcion softmax y como neuronas desalida tantas como categorıas distintas haya. Esta funcion lo que hace es ofrecer como salidala distribucion de probabilidad de que esa imagen pertenezca a cada categorıa. Por lo tanto,cada salida sera la probabilidad de que dicha imagen pertenezca a cierta categorıa.

2.2. ISIC melanoma project

El elemento mas importante a la hora de desarrollar un modelo de Machine Learning es elconjunto de datos, ya que es el que determinara el exito o fracaso del objetivo, ya que siesta muestra de datos no es una representacion veraz de la poblacion, el modelo no podrapredecir o clasificar mas alla de dicho conjunto inicial.

Para poder desarrollar una red neuronal capaz de clasificar melanomas segun sean benignoso malignos se va a hacer uso del ISIC melanoma project, desarrollado por el International So-ciety for Digital Imaging of the Skin (ISDIS). Cuyo principal objetivo es reducir las muertescausadas por melanoma. Para ello, ISIC, aparte de aportar uno de los mas grandes data-sets de imagenes resultantes de dermotoscopias (con sus respectivos datos clınicos), planteadesafıos anuales para incentivar el desarrollo en este area. Ademas de dar la oportunidad depoder aportar tanto al dataset como a su wiki.

Antes de empezar a trabajar con este dataset se va a formar una imagen general del con-junto, aclarar que para este proyecto solo se va a trabajar con un subconjunto del datasetdenominado HAM10000.

Page 23: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

2.2. ISIC MELANOMA PROJECT 15

Figura 2.3: Distribucion de las imagenes en funcion de la inocuidad de la lesion

Figura 2.4: Distribucion de las imagenes en funcion de la edad del paciente

Si se observan las Figuras 2.3 y 2.4 se puede ver que hay un gran desbalance de los datos. Enfuncion de las categorıas hay una gran diferencia entre benignos (6705) y malignos (1113).En edad hay una diferencia entre rangos notable, siendo el rango de edad mas numeroso elde entre 40 y 50 anos (2286) seguido por el de entre 50 y 60 anos (2198).

En principio, el desbalance de edad podrıa afectar en cuanto a poder realizar un diagnosticoequitativo en la poblacion. Pero en este trabajo se ha decidido obviar los problemas de sesgoque pueden aparecer en relacion a genero, etnia y edad. Ya que es un problema que vienedesde los datos disponibles y que es costoso de solucionar con los recursos actuales.

En cuanto al desbalance entre el numero de imagenes con diferentes categorıas plantea ungran problema. Un desequilibrio entre ejemplos de diferentes categorıas hace que sea muydifıcil obtener un modelo que clasifique correctamente, puesto que en vez de observar depen-dencias entre variables tendera a dar como resultado la categorıa mas numerosa. Por lo quese debe nivelar las categorıas utilizando como dataset 1113 imagenes de lesiones malignas y1113 de benignas.

Page 24: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

16 CAPITULO 2. TECNOLOGIAS UTILIZADAS

Esto hace que se desaproveche la gran mayorıa de imagenes, pero en el capıtulo 4 se veracomo corregir este problema.

2.3. Plataforma tecnologica

Ahora se va a ahondar en las tecnologıas que se han usado a lo largo de este trabajo. Principal-mente se ha usado Python puesto que es un lenguaje que contiene librerıas muy interesantespara la inteligencia artificial. Una de ellas y que se ha usado aquı es TensorFlow. TensorFlowes una librerıa desarrollada internamente por Google y que mas tarde fue liberada. Ahoraes una de las herramientas mas utilizadas tanto en el mundo academico como profesional.Esta librerıa se basa en la construccion de grafos de flujos de datos, donde los nodos sonoperaciones y las conexiones son tensores, que no son mas que matrices multidimensionales.

Esta forma de programar permite procesar el entrenamiento de redes neuronales de for-ma paralela, lo que agiliza en gran medida llevar a cabo dichas acciones. Ademas se hausado CUDA, un conjunto de herramientas de Nvidia, para poder ejecutar este paralelismoen GPUs. Dicho tipo de componentes, sin entrar en detalles, proporciona una capacidad deparalelismo enorme comparado con ejecutar dichos entrenamientos en CPUs.

Otra librerıa que se ha usado es Keras, la cual proporciona una capa de abstraccion sobreTensorFlow, convirtiendo la implementacion de redes neuronales en una experiencia muchomas comoda y agil. Es sobre esta donde se ha desarrollado el codigo.El equipo que se ha utilizado para realizar los procesos necesarios en este trabajo ha tenidolas siguientes caracterısticas:

CPU: AMD Ryzen 7 2700X 4.3GHz (16 hilos de ejecucion)

RAM: 32GB

GPU: GTX 1080Ti 11GB

Memoria secundaria: SSD 500GB

2.4. Metodologıa

A partir de este punto, el trabajo va a seguir unos pasos muy marcados para poder obtenerconclusiones de una forma rigurosa y clara. Esta forma de actuar puede situarse dentro dela metodologıa de trabajo de tipo iterativa. Es decir, no se va a abordar la implementaciondel trabajo como un unico desarrollo, sino que se va a basar en pequenos desarrollos conse-cutivos, en el que en cada implementacion va a suponer una mejora de la anterior.

En este proyecto cada iteracion se puede dividir en varias partes: Explicacion teorica quejustifique las tecnicas a implementar, arquitectura, condiciones en el entrenamiento, muestrade los datos en forma de una tabla con detalles y el porcentaje de aciertos de los diferentesmodelos implementados en cada iteracion y un grafico con diversas curvas de aprendizaje que

Page 25: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

2.4. METODOLOGIA 17

ofreceran otro tipo de informacion. Por ultimo algunas conclusiones de los datos expuestos,en funcion de estas se aborda en el siguiente punto unas u otras tecnicas y se compararancon las anteriores.

El cuarto capıtulo se puede considerar una iteracion mas, pero dado que la tecnica a utilizarconlleva una gran carga teorica y de desarrollo, se ha decidido abordarla en un capıtulodiferente.

La estructura y los modelos implementados en los proximos dos capıtulos es la mostradaen la figura 2.5. Donde la GAN ha sido marcada con diferente color debido a que ha tenidoun trato distinto. Y los cuadrados blancos representan los diferentes modelos implementadosen cada iteracion.

Figura 2.5: Diagrama que representa la metodologıa usada de izquierda a derecha.

Se puede ver en la Figura 2.5 que cada iteracion no ha implementado un solo modelo, sinoque se han implementado paralelamente varios modelos. Se ha tomado esta decision ya quecada tecnica conlleva la seleccion de diferentes parametros que condicionan los resultados.Por lo que ha sido necesario hacer un muestreo con diferentes variaciones para conocer laimplementacion mas eficiente en cada iteracion.

Otra caracterıstica relevante es que los modelos vienen dotados del formato MXXX-MXXX.Donde la primera MXXX representa el inicio del rango de entrenamientos que pertenecen aeste modelo, mientras que el segundo pertenece al final. Cada modelo se ha entrenado diezveces, como se puede comprobar. Esto es debido a que todos los entrenamientos realizadosen el Capıtulo 3 se han realizado bajo la tecnica de validacion cruzada.

Page 26: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

18 CAPITULO 2. TECNOLOGIAS UTILIZADAS

Esta tecnica consiste en dividir nuestro dataset en diez conjuntos de imagenes, aunque sepuede separar en otro numero de fragmentos. Uno de esos conjuntos se usara como conjuntode validacion, mientras que los otros nueve se usaran para el entrenamiento. Tras entrenary obtener los resultados pertinentes, se escogera otro conjunto para la validacion. Esto serepetira hasta haber completado todas las combinaciones posibles. Tras esto se hace la mediade todos los resultados.

Esta tecnica se realiza para que los resultados de los entrenamientos tengan una mayorindependencia frente a la distribucion de los datos. Ya que en funcion de los datos que seescojan para validar o entrenar, el modelo obtendra un mejor o peor rendimiento. Ya quelos datos de validacion pueden ser mas o menos afines a los de entrenamiento y por tanto elmodelo acertara mas o menos.

A la hora de validar el modelo implementado en la ultima iteracion, denominada aquı GAN,se ha escogido unicamente un conjunto para la validacion. Debido a que, por motivos desa-rrollados en el Capıtulo 4, generar un dataset con cada conjunto es muy costoso en tiempode computacion. Por lo que se ha debido sacrificar en este punto cierta independencia de losresultados frente a la distribucion de los datos.

Ahora se va a detallar las imagenes que se han escogido en los diferentes entrenamientospara poder asegurar la reproducibilidad de nuestros resultados.

Cuadro 2.1: Imagenes del subconjunto HAM10000 del dataset ISIC usadas para entrenar enel capıtulo 4.

Imagenes malignas Primeras 1113 imagenes del subconjunto HAM10000>MalignasImagenes benignas Primeras 1113 imagenes del subconjunto HAM10000>BenignasDisposicion Se ha intercalado en orden una benigna por cada una maligna.

Empezando por una maligna.

Cuadro 2.2: Imagenes del subconjunto HAM10000 del dataset ISIC usadas para entrenar enel capıtulo 5 a la GAN.

Imagenes entrenamiento [114,1113] imagenes del subconjunto HAM10000>Malignas

Cuadro 2.3: Imagenes del subconjunto HAM10000 del dataset ISIC usadas para entrenar enel capıtulo 5 a la CNN con el dataset generado.

Imagenes validacion malignas Primeras 113 imagenes del subconjunto HAM10000>MalignasImagenes validacion benignas Primeras 113 imagenes del subconjunto HAM10000>BenignasImagenes entrenamiento [114,1113] imagenes del subconjunto HAM10000>Malignas

mas 2000 imagenes generadas mezcladas de forma aleatoriacon [114,3114] imagenes del subconjunto HAM10000>Benignas

Page 27: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Capıtulo 3

CNN para clasificacion de imagenes

En este capitulo se va a implementar diferentes redes convolucionales y se iran anadiendotecnicas para poder optimizar su rendimiento. El objetivo es que al final del capıtulo se hayaconseguido la mejor implementacion posible.

3.1. Implementacion inicial de una CNN

Se va a implementar la primera CNN para ver cual es su accuracy y loss a lo largo de todoel aprendizaje. El accuracy mide el ratio de aciertos que se producen, mientras que el lossmide el error. Ademas cabe aclarar que se va a dejar de lado un 10 % de imagenes fuera delentrenamiento, conocido como datos de validacion, para medir la capacidad de generaliza-cion que ha adquirido el modelo mas alla del ajuste con las imagenes de aprendizaje. Esteconjunto variara ya que se usara validacion cruzada.

Hay una serie de variables que se deben definir en cualquier entrenamiento:

Batch size: Es el numero de imagenes que se procesan antes de corregir los parametros.Generalmente un numero alto ayuda a generalizar mejor, puesto que los parametros secorregiran en funcion de un mayor numero de imagenes, es decir, en funcion de patronesmas generales y no en patrones concretos que se encuentren en una imagen. Pero unnumero grande exige una mayor capacidad de memoria RAM para poder cargar masimagenes en paralelo. Se va a usar un batch size = 32

Numero de epochs: Un epoch es una iteracion de todo el dataset. Es decir, que todas lasimagenes del conjunto de entrenamiento se ha utilizado una vez para entrenar nuestraCNN. Cuantos mas epochs mayor aprendizaje se produce. Pero una alta cantidad deepochs puede producir overfitting, un concepto que se vera dentro de poco. Aquı seutilizara un epochs = 50.

Funcion de loss: La funcion de loss, viene a ser el error, es decir, cuantifica la distanciaentre el valor dado y el valor que deberıa dar. Dado que se va a utilizar la funcionsoftmax en la capa de salida y hay dos categorıas a las que pueden pertenecer nuestrasimagenes, es propio que se utilice la funcion categorical crossentropy Ecuacion 3.1.

19

Page 28: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

20 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

Donde n es el numero de categorıas, yi es la salida ideal y pi la salida real.

loss =n∑

i=0

yilog(pi) (3.1)

Optimizador: En el capıtulo anterior, se tenıa una constante de aprendizaje, de cuyovalor dependıa que un modelo pudiese converger o no. Aquı entran en juego los op-timizadores, que son diferentes tecnicas para ajustar este valor de forma dinamica alo largo de todo el aprendizaje y ajustar de cierta forma los pesos. Aquı se va a uti-lizar el optimizador Adadelta. Keras, en su documentacion, describe este optimizadorcomo ” Un optimizador con tasas de aprendizaje especıficas para cada parametro, quese adaptan en funcion de la frecuencia con la que un parametro se actualiza duran-te el entrenamiento. Cuantas mas actualizaciones reciba un parametro, mas pequenasseran.”

En cuanto a la arquitectura del modelo, en la parte de extraccion de caracterısticas se vaa disponer 4 capas de convolucion intercaladas con 4 capas de max-pooling. El tamano delos filtros de convolucion va a ser de 3x3, empezando en la primera capa con 4 filtros y du-plicando su numero en cada capa hasta llegar a 32 filtros en la ultima capa de convolucion.La funcion de activacion en dichas capas van a ser la funcion ReLu, la funcion no linealmas simple. Tras esto se pasa por una capa Flatten que lo vectoriza, y por ultimo hay unacapa completamente conectada entre el vector y otra capa con dos neuronas cuya funcion desalida es del tipo softmax.

Figura 3.1: Arquitectura de la CNN inicial

Page 29: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

3.1. IMPLEMENTACION INICIAL DE UNA CNN 21

Una vez establecida la arquitectura y los hiperparametros no queda mas que comenzar el en-trenamiento, al final de cada epoch se evaluara tanto el accuracy como el loss para los datosde validacion. Recordar que las curvas de aprendizaje no son las de un solo entrenamiento,sino el promedio de 10 curvas de aprendizaje conseguidas mediante el metodo de validacioncruzada.

Cuadro 3.1: Tabla de entrenamiento del modelo inicialModelo AccuracyM001-M010 0.81

Figura 3.2: Promedio de las funciones loss de los modelos [001,010]

Si se observa la funcion de error en la figura 3.2, aparece que del epoch uno al dos el errorbaja rapidamente, esto es debido a que los pesos pasan de tener una distribucion aleatoriadonde tenıan un error muy alto a empezar a corregirse y bajar rapidamente. Tras el se-gundo epoch el error desciende mas lentamente ya que es mas complejo ajustar los pesoscorrectamente. Tambien es posible observar que a partir del epoch 7 el error con las image-nes de validacion comienza a ascender, mientras que el error con las de entrenamiento siguela curva de un aprendizaje normal. Esto es debido a un efecto que se conoce como overfitting.

El overfitting sucede cuando la funcion de regresion del modelo se ajusta tanto a los ejem-plos de entrenamiento, que pierde la capacidad de generalizar. Por lo que cuando se evaluael modelo con nuevos datos, la funcion no consigue hacer una buena clasificacion.

Page 30: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

22 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

Figura 3.3: Ejemplos de sobreajuste (funcion azul) y una buena generalizacion (funcionamarilla)

Volviendo al modelo, se comprueba que con la configuracion y arquitectura actual nuestromodelo se sobreajusta. Hay numerosas soluciones para mitigar los efectos del overfitting,todas estas soluciones se basan en entorpecer el aprendizaje del modelo, para que de estaforma su capacidad de ajustarse a los datos de entrenamiento se vea mermada. Entre estassoluciones se encuentran: hacer una arquitectura menos potente, usar mas datos o usar laregularizacion, entre otros.

3.2. Regularizacion

Es una tecnica que se utiliza para reducir el sobreajuste en las redes neuronales. Esta tecni-ca consiste en anadir una nueva metrica junto a la funcion de loss como valor a minimizar.Esta nueva metrica se encarga de medir la complejidad de la configuracion de los pesos.Entendiendo como pesos complejos aquellos que se alejen del cero. Se encuentra que comoen el resto de las tecnicas, se limita el modelo para entorpecer su aprendizaje. A esta nuevametrica que minimizar, formada por loss y la metrica de complejidad, se la denomina ”mi-nimizacion del riesgo estructural”.

La forma de medir la complejidad de los pesos varıa en funcion de la tecnica de regula-cion escogida. Aquı se van a usar dos diferentes, L1 y L2:

L1: Produce un modelo con pesos dispersos. Esto es util cuando crees que de todas lasentradas al modelo, solo algunas son utiles.

L1 =n∑

i=0

|Wi| (3.2)

L2: Este tipo de regularizacion es util cuando se tienen entradas al modelo correlacio-nadas.

L2 =n∑

i=0

W 2i (3.3)

Ademas la regularizacion conlleva tener en cuenta un nuevo parametro denominado lambda,que viene a ser el peso que se le da a la metrica de complejidad dentro del valor de minimiza-cion de riesgo estructural. Un alto valor de lambda conlleva que haya una alta regularizacion,y por tanto, que el modelo sea tan simple que sea incapaz de aprender a clasificar los datos.En cambio, si es demasiado bajo se puede no lograr hacer desaparecer el sobreajuste.

Page 31: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

3.2. REGULARIZACION 23

Por lo que resulta la siguiente funcion loss:

minimizacion riesgo estructural = categorical crossentropy + λ ∗ (L1 ∨ L2) (3.4)

Ahora se va a implementar varios modelos usando L1 y L2 con diferentes lambdas en la capacompletamente conectada. El resto de la arquitectura se mantiene tal como estaba.

Cuadro 3.2: Tabla de entrenamiento de modelos con regularizacion L1 y L2Modelo Regularizacion Valor lambda AccuracyM011-M020 L1 0.01 0.814M021-M030 L1 0.1 0.813M031-M040 L2 0.01 0.812M041-M050 L2 0.1 0.806

Figura 3.4: Funcion de perdida de modelos implementados con regularizacion L1

Se puede observar en la figura 2.6 la efectividad que presenta usar L1 para reducir el over-fitting, con valores de lambda menores a 0.1. Ya que si se supera dicho valor con la actualarquitectura, el modelo diverge, es decir, el valor loss no para de crecer tanto para los ejem-plos de validacion como los de entrenamiento.Para un lambda igual o mas bajo a 0.01, elmodelo reduce el overfitting en comparacion al modelo inicial, pero en los ultimos epoch hayun comienzo de este sobreajuste.

En cuanto a los modelos con L2 , ofrecen mejor rendimiento que no aplicar ninguna re-gularizacion. Pero en este caso se ha incrementado el valor de lambda hasta 0.1 sin signosde que la regularizacion haga desaparecer el overfitting.

Un efecto que se produce cuando se incluye regularizacion en el modelo, es que el aprendizajese ralentiza. Esto es comprensible debido a que se esta limitando las capacidades del modelopara evitar que se sobreajuste. Por ello y con la finalidad de agilizar el aprendizaje, se va aincluir una nueva tecnica que recibe el nombre de Batch Normalization.

Page 32: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

24 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

3.3. Batch Normalization

Presentado en (Ioffe y Szegedy, 2014), esta tecnica se basa en normalizar todas las image-nes que se encuentran en un batch. Una tecnica comun y que se ha implementado desde elprincipio, es la de normalizar los datos de entrada, esto evita que algunos valores sean muyaltos respecto a otros, y haga crecer de forma desproporcionada los pesos.

Como se ha mencionado esta tecnica es muy eficaz, por lo que Ioffe y Szegedy trataronde trasladar esta idea a capas internas del modelo. En concreto entre el resultado previo a lafuncion de activacion de la neurona y esta misma. En el artıculo mencionado anteriormentese explica que la normalizacion por lotes ayuda a solucionar el problema de cambio de co-varianza interna. Esto se refiere al cambio en la distribucion en los valores de entrada. Estasituacion se ve magnificada en el aprendizaje profundo debido a que tras el ajuste de lospesos de una capa, la salida de esta ve modificada su distribucion. Esto se intenta conteneracotando el cambio de las covariables al normalizar las activaciones de cada capa.

Para normalizar los datos se usa:

x =xi − µσ

(3.5)

Siendo µ la media y σ la varianza del batch.

Sin embargo en (Bjorck, Gomes, Selman, Kilian, 2018) abogan por otra explicacion paralos beneficios que aporta la normalizacion por lotes. Muestran que las activaciones y gra-dientes en modelos profundos sin BN (Batch Normalization) son dadas a diverger. Paraevitar dicha divergencia es necesario que la constante de aprendizaje sea lo suficiente pe-quena. Pero tal reduccion en la velocidad de aprendizaje provoca un facil estancamiento enmınimos locales.

Al acotar las salidas de las funciones de activacion con BN se evita que crezcan de for-ma incontrolable, por lo que no se puede permitir valores para las constantes de aprendizajemas altos y que por tanto, nuestro modelo converja mucho mas rapido. Esto es especialmenteutil para que el modelo con regularizacion muestre como se desenvuelve sin tener que esperarunos tiempos de entrenamiento muchos mas largos.

Ahora se va a anadir al modelo una capa de BN entre cada capa convolucional y la funcionde activacion. Para ver como se comporta por si sola y con las regularizaciones mas exitosasque se han visto hasta ahora.

Page 33: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

3.4. DROPOUT 25

Cuadro 3.3: Tabla de entrenamiento de modelos con BN y regularizacionModelo Regularizacion Valor lambda AccuracyM051-M060 - - 0.821M061-M070 L1 0.01 0.821M071-M080 L1 0.1 0.827M081-M090 L2 0.01 0.822M091-M100 L2 0.1 0.833

Figura 3.5: Funcion de perdida de modelos implementados con normalizacion por lotes.

Lo primero que se observa es el aumento en la variabilidad que se produce en las funcionesloss con modelos que han usado regularizacion. Esto viene dado debido al incremento en laconstante de aprendizaje. Aun ası se puede apreciar que sigue apareciendo overfitting en lastres pruebas realizadas. Pero hay una mejora en el ratio de acierto para todos los modeloscon normalizacion por lotes.

A continuacion se va a probar una tecnica totalmente diferente para evitar este overfitting.

3.4. Dropout

Como bien se explica en (Srivastava, Hinton, Krizhevsky, Sutskever, Salakhutdinov, 2014)las redes neuronales profundas son modelos de gran complejidad que pueden ajustarse efi-cazmente a un gran numero de problemas. Pero como ya se conoce, esta complejidad haceque se ajusten tanto que pierdan la capacidad de generalizar en nuevos ejemplos.

La tecnica de dropout consiste en que las neuronas de una o varias capas tengan una proba-bilidad p de desaparecer en la fase de entrenamiento. Para posteriormente volver a integrartodas las unidades al modelo (entrenadas o no) para que participen en la fase de evaluacion.La finalidad de esta tecnica es que cada unidad dependa en menor medida de sus iguales yse centre en obtener el mejor resultado por sı misma, puesto que nunca se sabe cuando seva a perder el apoyo del resto.

Page 34: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

26 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

Se puede ver dropout como aprendizaje conjunto. El aprendizaje conjunto se basa en cogerdiferentes modelos debiles entrenados individualmente y promediar sus respuestas. Aquı seencuentra algo similar, se forman diferentes subredes escogidas de forma aleatoria, se entre-nan, en diferentes epochs, y luego se combinan en una sola.

Realmente, dropout es una tecnica de regularizacion, pues lo que se hace es limitar la capa-cidad de la red a la hora de entrenarla.

Como se ha estado realizando hasta ahora, se va a experimentar con diferentes configu-raciones para ver que pueden aportar. Anadiendo dropout en la ultima capa con diferentesprobabilidades.

Cuadro 3.4: Tabla de entrenamiento de modelos con dropoutModelo p AccuracyM101-M110 0.2 0.825M111-M120 0.4 0.824M121-M130 0.6 0.836M131-M140 0.8 0.834

Figura 3.6: Funcion de perdida de modelos implementados con dropout en la ultima capa.

Se puede observar en la figura 2.9 como cuanta mas p se inserta menos overfitting se produce.Pero en la figura se ha limitado a 0.8, puesto que a partir de dicha probabilidad el modeloperdıa eficiencia.

Para mejorar estas curvas de aprendizaje se va a combinar el dropout con p=0.8 y algunasde las regularizaciones L1 y L2 que mejores resultados dieron. Tambien se va a introducir

Page 35: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

3.4. DROPOUT 27

una nueva tecnica conocida como constraint. Esta viene aplicada en (Srivastava et al., 2014)con gran exito. Consiste en aplicar restricciones a los pesos de una o varias capas, en estecaso limitando los pesos de la ultima capa completamente conectada para que tengan unanorma maxima igual o inferior a una lambda.

Cuadro 3.5: Tabla de entrenamiento de modelos con dropout y regularizacionModelo Anadido lambda AccuracyM141-M150 L2 0.1 0.831M151-M160 L1 0.1 0.81M161-M170 constraint 1 0.824

Figura 3.7: Funcion de perdida de modelos implementados con dropout en la ultima capacombinado con regularizacion o restricciones en pesos.

Se puede apreciar que no hay indicios de overfitting con ninguna de las tecnicas empleadas,pero, como pasaba cuando se usaba L1 y L2, el aprendizaje es muy lento, por lo que noes posible aventurar si son tecnicas suficientes para solucionar el problema. Anteriormentese ha usado la normalizacion por lotes para agilizar el entrenamiento, por lo que no esmala idea repetir ese paso con estos nuevos modelos. Pero como se explica en (Li, Chen,Hu, Yang, 2018), la combinacion de dropout y batch normalization a menudo conducena un peor desempeno del modelo. Esto viene explicado, porque la extraccion de neuronasmodifican la varianza mientras que la batch normalization mantendrıa la varianza anterior,esta incoherencia conduce a fallos en las predicciones del modelo causando inestabilidades.Dicho suceso se produce cuando se realiza el dropout antes de la normalizacion. Por lo quese evitara esta situacion colocando la batch normalization en las capas convolucionales ysituando el dropout en la ultima capa, que pertenece a la capa completamente conectada.

Page 36: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

28 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

Cuadro 3.6: Tabla de entrenamiento de modelos con dropout, BN y regularizacionModelo Anadido lambda AccuracyM171-M180 L2 0.1 0.844M181-M190 L1 0.01 0.84M191-M200 constraint 1 0.84

Figura 3.8: Funcion de perdida de modelos implementados con batch normalization y dropouten la ultima capa combinado con regularizacion o restricciones en pesos.

Se comprueba que todas las alternativas dan mejor resultado que el modelo con unicamentedropout, pero incluir regularizacion L1 en la ultima capa empeora el resultado. En cambiorestringir los pesos o usar regularizacion L2 mejora el overfitting.

3.5. Ruido gaussiano

Esta tecnica, generalmente aplicada justo antes de la red neuronal consiste en aplicar rui-do en las imagenes. En este caso, el ruido tiene una distribucion probabilıstica acorde ala distribucion gaussiana, pero existen otros tipos de ruidos. Se puede entender esto comouna tecnica de augmentation. Esto es un concepto que se basa en aumentar el numero deejemplos de forma artificial, aplicando diferentes pre-procesamiento a las imagenes.

Por supuesto esto es una tecnica para evitar overfitting, por lo que solo se aplica en lafase de entrenamiento.

Como se ha mencionado, el ruido sigue una distribucion gaussiana por lo que el valor vendradado por:

pG(z) =1

σ√

2πe−

(z−µ)2

2σ2 (3.6)

Siendo z el valor del pıxel actual, µ la media y σ la desviacion tıpica de los valores.

Page 37: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

3.5. RUIDO GAUSSIANO 29

Se va a abordar algunas de las configuraciones mas exitosas hasta ahora pero incluyendoesta nueva tecnica al principio.

Cuadro 3.7: Tabla de entrenamiento de modelos con ruido gaussianoModelo Anadido AccuracyM201-M210 BN,dropout=0.8,L2=0.1 0.83M211-M220 BN,dropout=0.8,L1=0.1 0.834M221-M230 BN,dropout=0.8,constraint=1 0.835

Figura 3.9: Funcion de perdida de modelos implementados con gaussian noise y dropout enla ultima capa combinado con restricciones en pesos y el modelo original.

Figura 3.10: Funcion de perdida de modelos implementados con gaussian noise y dropout enla ultima capa combinado con restricciones en pesos.

Esta nueva tecnica no aporta una mejora comparandolo con los ultimos modelos ejecutadosen el punto 2.5.

Page 38: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

30 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

3.6. Adicion de ruido de gradiente

Esta tecnica se basa en anadir ruido al gradiente. Como se puede ver en (Neelakantan et al.,2017) esta tecnica esta dirigida a nuevos modelos o redes neuronales muy profundas, perocomo se va a ver, tambien aporta una leve mejora a nuestro modelo.

La forma de ejecutar la tecnica es muy sencilla consiste en agregar ruido gaussiano al gra-diente cada vez que se calcula el error. Y lo que consigue esta tecnica es anadir un puntode aleatorizacion que pueda evitar que se estanque en mınimos locales. El nuevo gradientevendra dado por la ecuacion 3.7, donde 4f0 es el gradiente original y el ruido gaussianotendra la distribucion dada en 3.6.

4f = 4f0 + ruido gaussiano (3.7)

A la hora de probar los modelos mostrados en el Cuadro 3.8, se ha usado en algun caso unoptimizador diferente al Adadelta, conocido como SGD.

Cuadro 3.8: Tabla de entrenamiento de modelos con ruido de gradienteModelo Optimizador Anadidos AccuracyM231-M240 Adadelta GaussianNoise,constraint=1,dropout=0.8 0.851M241-M250 Adadelta GaussianNoise,L1=0.1,dropout=0.8 0.832M251-M260 Adadelta GaussianNoise,L2=0.1,dropout=0.8 0.84M261-M270 SGD GaussianNoise,constraint=0.1,dropout=0.8 0.843M271-M280 Adadelta constraint=0.1,dropout=0.8 0.841

Figura 3.11: Funcion de perdida de modelos implementados ruido en el gradiente con 100epochs

Page 39: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

3.7. MODELO FINAL 31

Figura 3.12: Funcion de perdida de modelos implementados ruido en el gradiente con 100epochs con mejor rendimiento

Aunque la adicion de ruido en la optimizacion de gradiente aporta una mejora en todos losmodelos, hay un modelo que destaca, este es el modelo M231-M240, que aporta un ratio deaciertos del 85 %. Ahora, en base a las observaciones que se han realizado a lo largo de estecapıtulo.

3.7. Modelo final

Figura 3.13: Arquitectura del modelo final

Tras haber visto diferentes tecnicas para optimizar el modelo y la mejor configuracion de loshiperparametros respectivos para cada tecnica se ha encontrado que la arquitectura repre-sentada en la Figura 2.15 es la mejor configuracion posible, esta arquitectura corresponde almodelo M231-M240, es decir que aparte de lo mostrado en la imagen utiliza un optimizador

Page 40: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

32 CAPITULO 3. CNN PARA CLASIFICACION DE IMAGENES

Adadelta con ruido anadido y un batch size de 32 imagenes.

Anteriormente se ha visto que el mejor accuracy conseguido con este modelo era aproxi-madamente 0.85, pero se va ha proceder a ver en mas detalle su curva de aprendizaje.

Figura 3.14: Funcion loss del modelo final

Se puede observar como el overfitting se ha reducido considerablemente. Para llegar a estepunto se ha tenido que recorrer un gran numero de tecnicas que han contribuido a conse-guir este modelo, con un rendimiento bastante mejor que la implementacion inicial. Esto noquiere decir que sea el modelo optimo, puesto que hay muchas mas tecnicas que han tenidoque dejarse sin desarrollar en este trabajo.

De la misma forma, se debe ser consciente que la arquitectura usada no tiene por que ser lamejor, puesto que hay infinitas combinaciones para la red (numero de capas, tipos de capas,tamanos, hiperparametros). A pesar de que no se han reflejado en este trabajo, muchas deesas combinaciones han sido estudiadas para llegar a la arquitectura actual.

Pese a estas conclusiones, no se va a finalizar aquı. Hasta ahora se han abordado tecni-cas que se centraban en limitar el aprendizaje de nuestros modelos, con la excepcion delpunto 2.6. Donde se intentaba incrementar la variabilidad de datos de una forma sencillay con caracter aleatorio. En el siguiente capıtulo se va a abordar el desafıo del aumentode datos desde una perspectiva mucho mas compleja. Procediendo a crear nuestras propiasimagenes, lo mas fidedignas posibles, gracias a unos nuevos tipos de redes neuronales, cuyoaprendizaje es no supervisado.

Este nuevo objetivo plantea una gran dificultad, y es que si con los datos que existen esposible generar un nuevo dataset artificial de calidad.

Page 41: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Capıtulo 4

Ampliacion del dataset medianteredes tipo GAN

Tras implementar redes neuronales convolucionales y varias tecnicas de optimizacion, se va atratar de mejorar el rendimiento de los anteriores modelos a traves del aumento del numerode imagenes de entrenamiento. Para dicho aumento, se va a generar imagenes artificiales atraves de modelos conocidos como redes generativas adversarias (GAN).

4.1. Redes generativas adversarias

Esta arquitectura publicada por primera vez en (GoodFellow et al., 2014) introduce un nuevomodelo complejo, compuesto por dos redes neuronales distintas que interactuan entre sı.

Una de las dos redes tendra el objetivo de crear imagenes (generador), mientras que la segun-da (discriminador), debera detectar el mayor numero de esas imagenes ”sinteticas”dentro deun conjunto de estos ejemplares falsos mezclados con reales.

Antes de entrar en detalles de ambas redes, se va a conocer que tipo de relacion se es-tablecen entre ellas. Se puede ver que sus objetivos estan contrapuestos, una quiere hacerpasar por reales el mayor numero de imagenes falsas posibles, mientras que la otra debedetectar todas las imagenes falsas que pueda. Por lo que un algoritmo que representa perfec-tamente esta relacion, en la que dos individuos deben competir entre sı, sin poder colaborary en la que solo puede ganar uno de ellos, es el algoritmo minimax.

Algoritmo considerado de decision que trata de minimizar la perdida maxima en juegosde suma nula. Se presenta una caracterıstica importante, un jugador conoce el estado delotro. Como se ha mencionado anteriormente este es un algoritmo de decision, por lo que eslogico plantearse como puede tener cabida en el proceso de aprendizaje del modelo. O lo quees lo mismo, como combinar el algoritmo minimax con el descenso del gradiente. Esto ya selo plantearon en GoodFellow et al. (2014), donde se puede encontrar la siguiente ecuacion.

minG

maxD

= Ex∼pdata(x) [logD(x)] + Ez∼pz(z)[log(1−D(G(z)))] (4.1)

33

Page 42: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

34 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

Siendo D(x) la salida del discriminador al tener como entrada los datos reales, D(G(z))la salida del discriminador cuando la entrada son las imagenes falsas. Por tanto dicha fun-cion es la suma del acierto del modelo al clasificar las imagenes reales mas el acierto alclasificar las imagenes falsas. El discriminador tratara de que el valor de la funcion sea elmaximo posible, es decir, que el discriminador de por buenas el menor numero de imagenesfalsas y el mayor numero de verdaderas, mientras que el generador tratara de minimizar laecuacion o lo que es lo mismo, que el discriminador de por buenas el mayor y menor numerode imagenes falsas y verdaderas respectivamente.

El discriminador usara para el ascenso del gradiente:

max Ex∼pdata(x) [logD(x)] + Ez∼pz(z)[log(1−D(G(z)))] (4.2)

Mientras que el generador usara para el descenso del gradiente:

min Ez∼pz(z)[log(1−D(G(z)))] (4.3)

Al aplicar esta ultima funcion para el generador se ha comprobado que los gradientes sondemasiados bajos, por lo que se sustituye dicha funcion objetivo por esta otra:

max Ez∼pz(z)[log(D(G(z)))] (4.4)

En cuanto al entrenamiento, se divide en dos etapas: La primera, donde se entrena el discri-minador, con un batch de imagenes reales y otro (separar imagenes falsas y reales por lotesofrece un mejor rendimiento), del mismo tamano, pero falsas. Tras pasarse dichos lotes secorrigen los pesos de dicha red con retropropagacion de ambos errores combinados. Tras estoel generador envıa un lote de sus imagenes generadas al discriminador, para calcular con elerror generado las correcciones necesarias.

El parrafo anterior muestra el ciclo que se debe producir en un epoch, aunque en la practicaes posible ver como puede sufrir variaciones. Un ejemplo muy habitual es que el discrimi-nador se entrene varias veces en cada epoch, ya que normalmente cuenta con mas pesosentrenables, por lo que requiere de mayores correcciones.

Ahora, que se ha establecido las dinamicas entre ambas redes neuronales, se procede adetallar dichas redes. Primero aclarar, que no se va a seguir la arquitectura del artıculo men-cionado anteriormente, ya que utilizan dos redes con capas completamente conectadas parael modelo. Pero ya que anteriormente se han tratado redes convolucionales, y sus beneficiosen el procesamiento de imagenes, se va a proceder a incorporar este tipo de redes en un

Page 43: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4.1. REDES GENERATIVAS ADVERSARIAS 35

modelo GAN.

Las arquitecturas con las que se van a trabajar son posibles verlas en (Radford, Metz,Chintala, 2015). El discriminador posee una arquitectura igual a la de cualquier red convo-lucional, ya que su cometido no es otro que el de clasificar imagenes en reales o falsas. Lounico que cambian de las CNN vistas en el anterior capıtulo es que en la ultima capa, dondese encontraba la funcion softmax, ahora deben tener algun otro tipo de funcion con el quese pueda calcular la ecuacion tratada anteriormente, como serıan las funciones de salida detipo sigmoidales.

En cuanto a la arquitectura del generador, guarda mas diferencias. Aunque en realidad esuna red convolucional dada la vuelta, donde las primeras capas son de tipo completamenteconectadas, para luego sucederse capas deconvolucionales (funcion inversa a la convolucion)que van perdiendo profundidad de los filtros, pero ganando en la resolucion de la imagen,para acabar en una matriz de tres dimensiones que coinciden con las coordenadas RGB.

Como entrada del generador lo que se encuentra es ruido situado en el llamado vector la-tente. Una vez entrenado correctamente el generador, este vector latente sera el que definaque caracterısticas apareceran en la imagen generada. Aunque eso sı, de forma implıcita,es decir, no se podra decidir de forma previa que caracterısticas de las imagenes activar.Aunque con un mapeo de este vector latente podrıa darse el caso de conocer que valores delvector materializan diferentes caracterısticas.

En cuanto a la funcion de deconvolucion mencionada antes, como parametros de entradase tiene una imagen con ciertas caracterısticas de la imagen resaltadas y un filtro que serıael que activo los patrones. Como salida de la funcion serıa la imagen sin esos patrones acti-vados. Es decir, es el proceso inverso a lo conocido anteriormente.

Visto esto, se puede entender el generador como una red neuronal que a partir de un vectorlatente, generado de forma aleatoria, va a interpretar dicha entrada como una serie de carac-terısticas o patrones que debe convertir a la imagen previa de donde provenıan esos patrones,de forma que se va generando capa por capa una imagen cada vez mas realista y compleja.La tarea de este generador es el de aprender que, independientemente de la entrada quereciba, debe obtener una imagen creıble y consecuente con las imagenes reales que quierealcanzar.

Page 44: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

36 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

Figura 4.1: Esquema a alto nivel de un modelo GAN

Al hablar de modelos GAN aparecen algunas dificultades que hasta ahora no se habıan en-contrado. La primera de ellas, es la conocida como colapso modal. Entendiendo como modosaquellas concentraciones en las distribuciones de los datos. Es decir, si se representan grafi-camente los datos en unas dimensiones que simbolicen las caracterısticas de estos. Aquellosmas similares entre sı estaran mas cerca en el espacio. Pudiendo ver diferentes agrupacionesconocidas en este caso como modos.

El colapso modal es cuando el generador se centra en representar un solo modo, obviandoel resto de modos existentes en la distribucion de los datos, con la esperanza de enganar aldiscriminador. Esto puede funcionar momentaneamente, pero tarde o temprano se da cuentapor lo que el generador acaba encallandose en otro modo. Para solucionar este problema hanaparecido nuevas arquitecturas y formas de entrenamiento.

Figura 4.2: GAN sin colapso modal (arriba) y GAN con colapso modal (abajo). Autor [16]

Otro problema que es posible encontrar a la hora de entrenar GANs es saber cuando sedebe dejar de entrenar. Al hacerlo con una CNN es sencillo saber cual es el mejor momentopara finalizar el aprendizaje (al empezar a detectar overfitting), pero al entrenar una GANaparecen dos curvas de aprendizaje, la del generador y la del discriminador que crecen ydecrecen en funcion de la otra, como algoritmo de minimax que es. Ademas aquı tambiense materializa el overfitting. Pero a diferencia de antes, este sobreajuste puede ayudar a darmayor realismo a las imagenes. Aunque siempre con cautela pues los ejemplos generadorpueden ser demasiado similares a los originales.

Page 45: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4.2. IMPLEMENTACION FINAL DE UNA GAN 37

Para finalizar, se va a proceder a conocer el ultimo gran problema y puede que el quees mas difıcil de solucionar, la inestabilidad de las GANs. Esto es debido a que se manejaun modelo compuesto de varias redes neuronales compitiendo ferozmente por ser superior.Si el generador es mas potente que el discriminador, este segundo sera incapaz de detectarlas imagenes falsas y por tanto el modelo no podra mejorar. De igual forma pasa cuando eldiscriminador es superior y el generador es incapaz de aprender al ser el error del discrimi-nador demasiado bajo. Por tanto es necesario ajustar de forma muy precisa ambas redes.Una forma sencilla que puede evitar hasta cierto punto la inestabilidad es la de bloquear elaprendizaje de un elemento hasta que su error sea menor al del otro. Pero en la practica, seha apostado por nuevos tipos de GANs que mejorar en gran medida su estabilidad.

4.2. Implementacion final de una GAN

Ahora, que se han visto los conceptos mas importantes de este tipo de modelos, se procede aexplicar la arquitectura que se ha establecido para nuestra red GAN. A diferencia del anteriorcapıtulo, aquı se va a tratar con el modelo final directamente. Por lo que, a continuacion,se va a listar y justificar las decisiones en el diseno de este modelo para poder entenderlo.Primero se va a tratar el generador. Esta dotado de las siguientes capas:

Capa 1: De tipo completamente conectada. El numero de neuronas en dicha capa es de128x27x27, es decir, 93.312. Se ha mostrado en forma de producto ya que dicho numerode neuronas no esta elegido al azar. 128 por ser el numero de capas de profundidadque va a tener la primera capa convolucional. Y 27x27 por ser las dimensiones delas imagenes una vez que se pase de forma vector a imagen. 128 ha sido elegido yaque es el numero maximo de filtros que se pueden anadir al modelo por limitacionestecnicas. Se ha maximizado este numero ya que cuantos mas filtros mayor suavidadtienen las texturas de las imagenes generadas. 27x27 ha sido elegido debido a que es laresolucion maxima de las imagenes en la capa inicial con la que se puede trabajar porlimitaciones tecnicas. Se ha comprobado que cuanta mayor resolucion en esta etapamas rapido mejoran las imagenes y mayor tiempo tarda el discriminador en superar algenerador, formandose ası un desequilibrio que entorpece el aprendizaje.

Capa 2: De tipo Batch Normalization. Ya se explico en el punto 2.4 las ventajas deimplementar dicha capa entre una con pesos y la funcion de salida.

Capa 3: De tipo ReLu. Actuando como funcion de salida de la capa 1. Se ha elegidoesta funcion por tener mejor rendimiento en este caso concreto. De igual forma en elresto de capas ReLu.

Capa 4: De tipo Reshape. Convierte el vector en imagenes de 27x27x128.

Capa 5: De tipo UpSampling. Duplica la resolucion de la imagen intercalando pıxeloriginal con la copia. De esta forma sencilla pero eficaz se va a aumentar la resolucionde las imagenes hasta que se desee. En este caso una resolucion 432x432. La imagenpasara de 27x27 a 54x54.

Capa 6: De tipo deconvolucion. Es decir realiza el proceso contrario a la convolucionya conocida. Con 128 filtros, ya se ha mencionado antes que este es el maximo posible

Page 46: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

38 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

para la primera capa convolucional. Ya que en las siguientes capas el numero de filtrosira menguando.

Capa 7: De tipo Batch Normalization.

Capa 8: De tipo ReLu.

Capa 9: De tipo UpSampling. La imagen pasara de 54x54 a 108x108.

Capa 10: De tipo deconvolucion. Con 64 filtros.

Capa 11: De tipo Batch Normalization.

Capa 12: De tipo ReLu.

Capa 13: De tipo UpSampling. La imagen pasara de 108x108 a 216x216.

Capa 14: De tipo deconvolucion. Con 32 filtros.

Capa 15: De tipo Batch Normalization.

Capa 16: De tipo ReLu.

Capa 17: De tipo UpSampling. La imagen pasara de 216x216 a 432x432. La resoluciondeseada.

Capa 18: De tipo deconvolucion. Con 16 filtros. Aun no tiene la profundidad deseada,de 3, debido a que se representa con el modelo RGB.

Capa 19: De tipo Batch Normalization.

Capa 20: De tipo ReLu.

Capa 21: De tipo deconvolucion. Con 3 filtros. Debido a ser RGB.

Capa 22: De tipo Batch Normalization.

Capa 23: De tipo Sigmoid. Esta es la ultima capa. Tras dicha capa se tiene una imagencon dimensiones exactas a las originales.

Este modelo esta compuesto 10.478.575 pesos que intervendran para la formacion de unaimagen.

Page 47: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4.2. IMPLEMENTACION FINAL DE UNA GAN 39

Figura 4.3: Esquema de la arquitectura utilizada para el generador

En cuanto al discriminador se ha seguido la siguiente estructura:

Capa 1: De tipo Batch Normalization. Se incluye una capa de este tipo al principio dela red para que normalice las imagenes. Esto acelera de forma sencilla el entrenamiento.

Capa 2: De tipo convolucion: Los motivos de usar esta capa fueron fundamentados an-teriormente. A diferencia de la arquitectura usada en el capıtulo 2, aquı se ha optadopor hacer un uso mucho mas numeroso de filtros. Esto es debido, a que el sobreajuste,en un entorno de competitividad continuo como es un modelo GAN es mucho menospronunciado que al clasificar imagenes. Por lo que se puede permitir redes mas com-plejas que posibilitaran obtener imagenes mas realistas. Esta capa tiene 32 filtros de5x5. Ademas tiene un stride de 2. Es decir, la imagen resultante tendra la mitad deresolucion. Se ha implantado de esta forma ya que se ha optado por no usar capas depooling para disminuir la resolucion de la imagen, ya que esta opcion proporciona unmejor rendimiento en este caso.

Capa 3: De tipo Batch Normalization.

Capa 4: De tipo LeakyReLu. Una funcion similar a la ReLu pero que muestra mejorrespuesta aquı.

Capa 5: De tipo ZeroPadding. Lo que hace es anadir una fila y una columna de 0s alas imagenes. Se ha aplicado esta capa para que la reduccion de resolucion sea menospronunciada y poder de esta forma aplicar mas capas de convolucion, que en este casoaporta mejores resultados.

Capa 6: De tipo Dropout. Con una p=0.25. Esta capa ayuda a que el discriminadorno converja tan rapidamente para dar mas tiempo de entrenamiento al generador.

Capa 7: De tipo convolucion. 64 filtros de 5x5.

Capa 3: De tipo Batch Normalization.

Page 48: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

40 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

Capa 8: De tipo LeakyReLu.

Capa 9: De tipo ZeroPadding.

Capa 10: De tipo Dropout. Mismas condiciones que la anterior capa del mismo tipo.

Capa 11: De tipo convolucion. 128 filtros de 5x5.

Capa 12: De tipo Batch Normalization.

Capa 13: De tipo LeakyReLu.

Capa 14: De tipo ZeroPadding.

Capa 15: De tipo Dropout.

Capa 16: De tipo convolucion. 256 filtros de 5x5.

Capa 17: De tipo Batch Normalization.

Capa 18: De tipo LeakyReLu.

Capa 19: De tipo ZeroPadding.

Capa 20: De tipo Dropout.

Capa 21: De tipo convolucion. 512 filtros de 5x5.

Capa 22: De tipo Batch Normalization.

Capa 23: De tipo LeakyReLu.

Capa 24: De tipo ZeroPadding.

Capa 25: De tipo Dropout.

Capa 26: De tipo convolucion. 1024 filtros de 5x5.

Capa 27: De tipo Batch Normalization.

Capa 28: De tipo LeakyReLu.

Capa 29: De tipo ZeroPadding.

Capa 30: De tipo Dropout.

Capa 31: De tipo convolucion. 2048 filtros de 5x5.

Capa 32: De tipo Batch Normalization.

Capa 33: De tipo LeakyReLu.

Capa 34: De tipo Flatten. Vectoriza las imagenes resultantes de estas capas.

Capa 35: De tipo Dense. Capa completamente conectada con el vector anterior.

Page 49: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4.2. IMPLEMENTACION FINAL DE UNA GAN 41

Capa 36: De tipo sigmoid. Funcion de salida del mismo tipo que la del generador.

Esta red tiene cerca de setenta millones de peso. Una cantidad considerablemente mas grandeque la del generador.

Figura 4.4: Bloque de abstraccion de cinco capas. Denominado como CBL por las siglas delas tres primeras capas que lo componen.

Figura 4.5: Esquema de la arquitectura utilizada por el discriminador

Ahora que se ha visto las arquitecturas de las dos redes que componen el modelo, se va a verel entrenamiento que ha tenido. La primera caracterıstica que muestra este entrenamientoes que es un proceso mucho mas lento. Ya que se ha conseguido un equilibrio notable entreambas redes, por lo que tarda en sobrepasar el discriminador al generador. En la Figura 4.6se puede observar las curvas de las redes en este entrenamiento.

Page 50: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

42 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

Figura 4.6: Curva de aprendizaje de la GAN final. Donde la lınea naranja representa el lossdel discriminador y la gris la del generador.

Se puede observar que en los primeros 10.000 epochs, generador y discriminador tienen unrendimiento muy similar, para luego decantarse el discriminador por tener un menor lossque el generador. Esta circunstancia es lo esperable en las redes GAN. Esto no quiere decirque cuando se incrementa la distancia entre curvas de loss se dejen de mejorar las imagenes,ya que como se vera a continuacion, el proceso de mejora no termina a partir del epoch 10.000.

Ya que con el entrenamiento de este tipo de modelos se tiene la posibilidad de ver el aprendi-zaje de una forma mas grafica, observando las imagenes generadas, no se debe desaprovechardicha ocasion. Por lo que se procede a ver diferentes muestras de las imagenes obtenidas alo largo del aprendizaje e intentar entender que acciones se estan realizando por parte delmodelo.

En estas primeras imagenes obtenidas en el epoch 0, situadas en la Figura 4.7, se com-prueba que son totalmente aleatorias. Esto es lo esperable, pues se acaban de inicializar lospesos de forma aleatoria.

Figura 4.7: Muestras de las imagenes generadas en el epoch 0.

En la Figura 4.8 se observa como el modelo empieza a encontrar ciertos rasgos muy basicoscon los que reducir el error de la funcion objetivo. Se puede encontrar rasgos sencillos quetrata de imitar como son manchas llamativas en la imagen. En este epoch numero 100 esfacil ver como hay un cierto aprendizaje en nuestra GAN. Tambien es posible ver como loscolores son algo que no controla en absoluto mas que para diferenciar fondo del melanoma.

Page 51: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4.2. IMPLEMENTACION FINAL DE UNA GAN 43

Figura 4.8: Muestras de las imagenes generadas en el epoch 100.

Avanzando al epoch 2000 en la Figura 4.9, se ve como se afina mas en el aspecto de loscolores. Marron carne claro (propio de la piel sana) y un tono mas oscuro para el melanoma.Se sigue manteniendo la idea de manchas asimetricas que se observaban en los epoch iniciales.

Figura 4.9: Muestras de las imagenes generadas en el epoch 2.000.

En el epoch 6700, Figura 4.10, aparecen imagenes mas depuradas.

Figura 4.10: Muestras de las imagenes generadas en el epoch 6.700.

Al llegar al epoch 26900, Figura 4.11, se encuentran imagenes con mucho mas sentido. Tantoen formas, colores y texturas. Ademas en la imagen del medio se puede observar algo extrano.Y es que esta rodeada de una sombra negra que se vuelve mas opaca a medida que se acercana los bordes. Esto se debe a que ciertos modelos de dermatoscopio obtienen la imagen deesta forma. Es decir, el modelo ha reconocido una caracterıstica de ciertas imagenes que apesar de no ser relevantes para catalogarse como melanomas, si aportan un aspecto mas real.

Page 52: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

44 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

Figura 4.11: Muestras de las imagenes generadas en el epoch 26.900.

Por ultimo se procede a mostrar tres ejemplos generados en el epoch 60.000, Figura 4.12.De esta iteracion es de donde se han escogido los ejemplares con los que se aumentara enel dataset. Es posible ver como tienen un realismo notable. Ademas se han escogido tresimagenes que resumen los modos de la distribucion de nuestro dataset. Estos modos son,imagenes con marco y sin el. Y por otro lado imagenes con melanomas grandes (izquierda),pequenos (centro) y ulcerados (derecha).

Otro efecto interesante que se ha desarrollado en los ultimos epochs, es el de la refraccion dela luz. Para verlo se necesita de una mayor atencion, pero se puedes atisbar pequenas ondasmulticolor que en las imagenes reales aparecen por la interaccion de la epidermis, el lıquidodel dermatoscopio y la luz.

Tambien es digno de mencionar las pequenas estrıas negras que aparecen en la imagen de laizquierda. Por lo que se ha podido deducir, son prototipos de pelo que la GAN a intentandoimitar sin mucho exito hasta el momento. Es curioso como el pelo es una de las estructurasque mas cuesta imitar a este tipo de modelos, no solo en este caso, sino en redes mas famosasimplementadas por empresas como NVIDIA y la famosa web thispersondoesnotexist.com .

Figura 4.12: Muestras de las imagenes generadas en el epoch 60.000.

Ahora que se ha formado un dataset generado, se va a comprobar ciertos aspectos relacio-nados con la calidad de este. Un aspecto importante es conocer la similitud de este datasetcon el original. Para comprobar el grado de sobreajuste que tiene y que no simplemente sehaya limitado a copiar ciertas imagenes.

Para ello se va a calcular la distancia de la imagen original con la generada en funcionde los valores del pıxel (sumatorio del valor absoluto de la diferencia del pixel generado con

Page 53: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

4.2. IMPLEMENTACION FINAL DE UNA GAN 45

el original). La Figura 4.13 representa la distribucion de la menor distancia de cada imagendel dataset generado.

Figura 4.13: Distribucion de la distancia mınima del dataset generado con las imagenesoriginales.

Se presenta un problema a la hora de afrontar esta distribucion, pues no existe un estandarcon el que compararlo y por tanto no es posible conocer su calidad. Como solucion, se hadecidido coger la imagen generada con la distancia mınima en la distribucion y compararlacon su imagen real mas cercana. Para, de esta forma, valorar la calidad del dataset.

Figura 4.14: Imagen real (izquierda) mas similar a la imagen generada (derecha) con menordistancia en la distribucion.

Como se puede ver, el par de imagenes es muy diferente entre sı. Por lo que es posible decla-rar que nuestras imagenes generadas son lo suficientemente originales como para catalogarlascomo datos nuevos.

Page 54: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

46 CAPITULO 4. AMPLIACION DEL DATASET MEDIANTE REDES TIPO GAN

4.3. Entrenamiento de CNN con dataset generado

Una vez que se ha generado un conjunto de imagenes falsas, que ha permitido aumentar eldataset inicial, y por tanto, poder usar un mayor numero de imagenes reales categorizadascomo benignas. Se va a entrenar el modelo final implementado en el segundo capıtulo paraconocer si este aumento de ejemplos de entrenamiento ayuda a mejorar el acierto de dichomodelo respecto al entrenamiento anterior.

Para poder llevar a cabo una validacion fiable, se han reservado 113 imagenes de mela-nomas que no se han utilizado para generar el nuevo dataset. Estas imagenes no usadasseran mezcladas con otros ejemplares de lesiones benignas para ser usadas en la validaciondel modelo. De esta forma se asegura la total independencia entre el conjunto de entrena-miento y el de validacion.

El resto de condiciones son exactas a las que se encuentran en el modelo M231-M240.

Figura 4.15: Curvas loss del entrenamiento del modelo M231-M240 con el nuevo datasetaumentado

El nuevo modelo presenta como mejor accuracy un 0.845. Casi el mismo que en el originalcon un 0.85. Por lo que desgraciadamente este nuevo conjuntos de datos no ha aportado unamejora en la clasificacion.

Page 55: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Capıtulo 5

Conclusiones y trabajo futuro.

5.1. Conclusiones

En este trabajo se ha tratado de automatizar el proceso de deteccion de melanomas en lapiel. Para ello se ha aprendido a usar las llamadas redes neuronales convolucionales. Visto suresultado se trato de mejorar los resultados con diferentes tecnicas y elementos que optimiza-sen este tipo de algoritmos, mejorando cada vez mas estos resultados. En el cuarto capıtulo,se probo a suplir la falta de datos de entrenamiento, ya que era el principal lastre en nuestroempeno de alcanzar una alta tasa de aciertos. Para este cometido se ha implementado redesgenerativas adversarias, que pese a haber obtenido unos resultados bastante positivos, encuanto a la similitud de las imagenes generadas con la realidad, no ha permitido mejorar losresultados existentes.

Como se desea saber el grado de exito en este desarrollo, se van a comparar nuestros re-sultados con los de expertos y otros desarrollos.

En (Brinker, 2018) afirman que el porcentaje de aciertos de dermatologos a la hora dedetectar melanomas es de un 65 %-80 %, 75 %-84 % si se hace uso de dermatoscopios. Segunestas afirmaciones el mejor modelo implementado en este proyecto mejora en 1 % el mejorescenario de deteccion realizado por expertos. Esto posibilita al modelo como una muy validaherramienta para dermatologos.

Buscando modelos similares, se han encontrado en (Boman, 2018) un modelo en el queel accuracy melanomas contra nevus, que es el equivalente a nuestro modelo, es de 71 %.Pero se debe aclarar que este porcentaje esta dentro de una clasificacion mucho mas grandede 16 categorıas.

Un modelo publicado recientemente en (Refianti, 2019), muestra un acierto en la clasifi-cacion que sobrepasa con creces el de este proyecto, ya que tienen un accuracy de 93 %frente a 85 % del implementado aquı.

Con el estado del arte expuesto, se puede situar el modelo final en un punto medio encuanto al nivel de aciertos se refiere. Para poder hacer un analisis mas certero del modelo setendrıa que estudiar los datos de entrenamiento que han sido utilizados para cada modelo,

47

Page 56: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

48 CAPITULO 5. CONCLUSIONES Y TRABAJO FUTURO.

pues es este factor el que marca la diferencia. Pero este punto puede servir para dar ciertocontexto.

Donde esta claro que ha sido una mejora, es en el entorno humano. Por lo que propongo nues-tro modelo como un elemento, no de sustitucion, si no de colaboracion con los profesionales,en la lucha contra el cancer de piel.

5.2. Trabajo futuro

Posibles lıneas para seguir desarrollando este proyecto es el de abordar otro tipo de modelosGANs, como son WGAN, ProGAN e incluso el actual estado del arte materializado en Big-GAN. Enfocar proximos desarrollos por este campo, viene explicado por los prometedoresresultados que han aparecido al generar imagenes.

Otro posible enfoque que se puede adoptar es el de aumentar el conjunto de datos ini-cial con imagenes reales intentando recopilar de otras fuentes.

Tampoco es necesario centrarnos solo en los datos, otro interesante camino serıa el de usararquitecturas famosas como son DenseNet, VGG o ResNet entre otras. O incluso implemen-tar conceptos como son self-attention.

De lo que no hay duda, es que el campo del aprendizaje automatico se encuentra en au-ge y en el que cada dıa aparecen avances que rompen con el estado del arte actual. Es laresponsabilidad de todos el aplicar estas tecnicas de una forma eficaz, etica y transparente.

Page 57: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Apendice A

Introduccion al codigo y otros datosrelevantes

En este apendice se va a explicar los procedimientos basicos para poder ejecutar el codigoque se ha implementado a lo largo del trabajo y del que hemos obtenidos nuestros resultados.Tambien se incluye aquı los datos generados en dicho codigo y con el que se han realizadolas estadısticas. Los archivos entregados son:

entorno.yml

GAN.ypynb

CNN.ypynb

historico.ypynb

El primer elemento, denominado entorno.yml es un entorno conda exportado. Si se despliegael entorno y accedemos con el a los archivos GAN.ypynb y CNN.ypynb, podremos ejecutarel codigo en las mismas condiciones con las que se desarrollo el codigo, ya que dentro delentorno estaran instaladas todas las librerıas necesarias.

Para desplegar el entorno debemos instalar previamente Anaconda o miniconda, su versionlite. Una vez instalada una de estas opciones entramos a la terminal especifica de Anacondae introducimos el siguiente comando:

conda env create -f [ruta donde se encuentre el archivo]/entorno.yml

Con esto se ha creado el entorno en tu ordenador. Para acceder a dicho entorno debesintroducir:

conda activate tfg_entorno

Ahora estaremos dentro de nuestro entorno por lo que todo codigo ejecutado desde estaterminal sera en las condiciones de dicho entorno.

El codigo ha sido implementado dentro de Jupyter Notebooks. Estos son espacios de trabajopara Python, que permiten ejecutar codigo en bloques de una manera grafica. Es decir, se

49

Page 58: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

50 APENDICE A. INTRODUCCION AL CODIGO Y OTROS DATOS RELEVANTES

puede ejecutar las lineas de codigo de un bloque sin tener que ejecutar el resto. Las conse-cuencias de las ejecuciones permanecen en la sesion por lo que al ejecutar posteriores bloquesse mantiene el codigo anterior. Es un entorno limpio y ordenado muy utilizado en el mundode la ciencia de datos y de Python en general.

El codigo se ha separado en dos Jupyter, uno con todo lo concerniente al entrenamientode las redes convolucionales para la clasificacion de imagenes (CNN) y otro con el codigoimplementado para la generacion de imagenes con redes GAN.

Para poder abrir los notebooks debemos primero iniciar Jupyter. Para ello insertamos elsiguiente comando en nuestra terminal conda con el entorno iniciado:

jupyter notebook

Tras esto arranca un servicio en el localhost puerto 8888. Si accedemos vıa html (desdeel navegador), nos llevara al Home de Jupyter, donde aparece un explorador de archivos denuestro ordenador. Desde el nos movemos hasta donde esten ubicados los notebooks y accede-remos a ellos. Desde ese momento nuestros entornos Jupyter arrancan y podemos ejecutar elcodigo que deseemos para reproducir los entrenamientos en los que se ha basado este trabajo.

El ultimo archivo es una hoja de calculo con todos los datos de entrenamiento que se hanrecopilado para las graficas.

Page 59: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

Bibliografıa

[1] Real Academia Espanola,(2018) Diccionario de la lengua espanola Recuperado dehttp://dle.rae.es/srv/fetch?id=LqtyoaQ

[2] Novales,A.,(2010) Analisis de regresion Departamento de eco-nomıa cuantitativa, Universidad Complutentense, 2010. Recuperado dehttps://www.ucm.es/data/cont/docs/518-2013-11-13-Analisis %20de %20Regresion.pdf

[3] Yearofthedragon,(2010) WikipediaUser Page: https://commons.wikimedia.org/wiki/User:Yearofthedragon

[4] De la Mata, (2013) Simulador del perceptron multicapa Recuperado de https://e-archivo.uc3m.es/bitstream/handle/10016/20273/TFG Antonio %20de la %20Mata %20Martin.pdf

[5] Noone AM, Howlader N, Krapcho M, Miller D, Brest A, Yu M, RuhlJ, Tatalovich Z, Mariotto A, Lewis DR, Chen HS, Feuer EJ, Cronin KA(eds).,(2018) SEER Cancer Statistics Review, 1975-2015, National Cancer Institute.Bethesda. Recuperado de https://seer.cancer.gov/csr/1975 2015/

[6] National Cancer Institute, (2016) SEER Cancer Stat Facts: Melanoma of theSkin.Bethesda Recuperado de https://seer.cancer.gov/statfacts/html/melan.html

[7] Aphex34,(2015) WikipediaUser Page: https://commons.wikimedia.org/wiki/File:Max pooling.png

[8] Ioffe S., Szegedy C.,(2014) Batch Normalization: Accelerating DeepNetwork Training by Reducing Internal Covariate Shift Recuperado dehttps://arxiv.org/pdf/1502.03167.pdf

[9] Bjorck J., Gomes C., Selman B., Kilian Q,(2018) Understanding Batch Norma-lization Recuperado de https://arxiv.org/pdf/1806.02375.pdf

[10] Srivastava N., Hinton G., Krizhevsky A., Sutskever I., SalakhutdinovR.,(2014) Dropout: A Simple Way to Prevent Neural Networks from Overfitting Recu-perado de http://jmlr.org/papers/volume15/srivastava14a.old/srivastava14a.pdf

[11] Li X., Chen S., Hu X., Yang J.,(2018) Understanding the Disharmonybetween Dropout and Batch Normalization by Variance Shift. Recuperado dehttps://arxiv.org/pdf/1801.05134.pdf

51

Page 60: DEEP LEARNING PARA CLASIFICACIÓN DE IMÁGENES · 3.4. Funci on de p erdida de modelos implementados con regularizaci on L1 . . . . 23 3.5. Funci on de p erdida de modelos implementados

52 BIBLIOGRAFIA

[12] Neelakantan A., Vilnis L., Quoc V., Kaiser L., Kurach K., Sutskever I.,Martens J.,(2017) Adding Gradient Noise Improves Learning For Very Deep NetworksRecuperado de https://openreview.net/pdf?id=rkjZ2Pcxe

[13] Kather JN, Weis CA, Bianconi F, Melchers SM, Schad LR, Gaiser T,Marx A, Zollner F,(2016) Multi-class texture analysis in colorectal cancer histologyRecuperado de https://zenodo.org/record/53169#.XFruZfZFyiN

[14] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, DavidWarde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio,(2014) Ge-nerative Adversarial Networks Recuperado de https://arxiv.org/abs/1406.2661

[15] Alec Radford, Luke Metz, Soumith Chintala,(2015) Unsupervised Represen-tation Learning with Deep Convolutional Generative Adversarial Networks Recuperadode https://arxiv.org/abs/1511.06434

[16] Luke Metz, Ben Poole, David Pfau, Jascha Sohl-Dickstein,(2017) Unrolledgenerative adversarial networks Recuperado de https://arxiv.org/pdf/1611.02163.pdf

[17] Brinker, T. J., Hekler, A., Utikal, J. S., Grabe, N., Schadendorf, D.,Klode, J.,von Kalle, C., (2018) Skin Cancer Classification Using ConvolutionalNeural Networks: Systematic Review. Journal of medical Internet research Recuperadode https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6231861/

[18] Boman, Volminger, (2018) Evaluating a deep convolutional neu-ral network for classification of skin cancer Recuperado dehttps://pdfs.semanticscholar.org/ac6d/3f5f26542251fe1509c2b77a0c6ddc347c56.pdf

[19] Refianti, A. Mutiara, R. Poetri, (2019) Classification of Melano-ma Skin Cancer using Convolutional Neural Network Recuperado dehttps://www.researchgate.net/publication/332113583 Classification of Melanoma Skin Cancerusing Convolutional Neural Network