Está en la página 1de 69

Principios físicos y Procesado de Imágenes Médicas

Deep Learning
Tema 6
Ref.: I. Goodfellow, Y. Bengio, and A.
Courville, Deep Learning. MIT, 2016.

Ariel Hernán Curiale


Introducción
❖ Maquinas vs humanos
❖ Problemas intelectualmente difíciles para los humanos son muy
simples para las computadoras. Sin embargo, problemas muy simples
para los humanos son extremadamente complejos para las máquinas.
Introducción
❖ AI: ¿Máquinas inteligentes?
❖ Una estrategia simple es
representar conceptos
complicados a partir de otros
más simples.
❖ Para representar conceptos
realmente complicados
deberíamos construir una red
de conceptos realmente
compleja y profunda.
❖ A este enfoque vamos a llamar
Deep Learning
Introducción
❖ ¿Como podemos hacer a las máquinas inteligentes?
❖ Enfoques basados en conocimiento (Knowledge Base)
❖ Reglas de inferencia lógica y conocimiento
preestablecido (hard-coded knowledge).
❖ La gran dificultad de este enfoque para los sistemas
de AI es que necesitan aprender el conocimiento, a
partir de la experiencia (raw data).
❖ Esta capacidad se conoce como Machine Learning.
Introducción
❖ Machine Learning
❖ Un método simple como naive bayes podría distinguir entre nuestros e-
mails cuales son spam.
❖ El rendimiento de los enfoques más simples de machine learning como
naive bayes o logistic regresion, depende fuertemente de la representación.
❖ Es difícil saber que características considerar.
❖ Detectemos la camioneta:
Ruedas, volante, …
¿Pero como a nivel de pixel?
Problemas de iluminación,
sombras, ocultamiento, …

Una solución es representation learning.


Introducción
❖ Representation learning: Usar machine learning tanto para
descubrir la relación entre la representación y la salida, como
para descubrir la representación a utilizar.
❖ El ejemplo por excelencia es el autoencoder.
❖ Encoder: función que transforma la entrada en crudo
(raw) en distintas representaciones.
❖ Decoder: función que transforma la nueva representación
en los datos originales.
❖ Se busca que preserve tanta información como sea posible.
Introducción
❖ Representation learning.
❖ El objetivo que se busca al decidir las características o
features a utilizar, es identificar los factores de variación
que mejor representan la información.
❖ Estos factores muchas veces no son medidas
observables directamente.
❖ Volviendo al ejemplo de la camioneta, algunos de
estos factores podrían ser la posición de la
camioneta, su color, y el ángulo y brillo de la luz del
sol.
Introducción
❖ Parece realmente difícil extraer estas características de
tan alto nivel de los datos en crudo.
❖ Muchos de estos factores de variación, como por
ejemplo entender el acento de una persona, se
corresponden a un entendimiento casi humano de los
datos.
❖ Acá es donde entra Deep Larning. Se soluciona el
problema de la representación introduciendo otra
representación más simple.
Introducción
Salida
Auto Persona Animal
(identidad del objeto)

❖ Ejemplo 3er layer oculto


(parte del objeto)

Multi-layer perceptron

2do layer oculto


nivel de
(contornos y esquinas) abstracción

1er layer oculto


(bordes)

Entrada
(pixels)
Introducción
❖ Resumen y relación 
 Salida

entre las técnicas de AI


Mapeo de
Salida Salida
caracterísiticas

Representation learning AI

Layers
Mapeo de Mapeo de adicionales
Salida
caracterísiticas caracterísiticas (características
Deep Learning más abstractas)

Ejemplo: Ejemplo: Ejemplo: Ejemplo:


MLPs Autoencoder Logistic regression Knowledge bases
Caracterísiticas
Diseño a medida Diseño a medida Caracterísiticas
simples

Machine learning Entrada Entrada Entrada Entrada

Sistemas basado Deep learning


Enfoque clásico
en reglas
machine learning
Representation learning

Machine learning

AI
Historia
❖ Deep learning: tres periodos
❖ Cybernetics [1940s - 1960s].
❖ Connectionism o parallel distributed processing [1980s - 1990s].
❖ Deep learning [2006s - hoy].
❖ Muchos de los modelos propuesto en el pasado se diseñaron/
inspiraron en los modelos biológicos de aprendizaje. Como resultado el
nombre de artificial neural networks (ANN).
❖ El termino moderno “Deep learning” va más allá de la neurociencia, y
como vimos, intenta modelar el concepto del aprendizaje mediante la
composición de múltiples niveles con un conocimiento más simple.
Historia

❖ McCulloch-Pitts Neuron (McCulloch and Pitts, 1943) fue


uno de los primeros modelo sobre el funcionamiento del
cerebro (modelo lineal):
n
X
f (x, w) = xi w i
i
dependiendo del problema se aprendían los pesos de la
función. Los pesos debían ser definidos correctamente, y
se hacia a mano.
Historia
❖ El perceptron (Rosenblatt, 1958, 1962) fue uno de los primeros modelos que
podía aprender de forma automática los pesos del modelo de McCulloch-
Pitts.
❖ ADALINE (adaptative linear element) fue otro modelo que permitía obtener el
mismo resultado (Widrow and Hoff, 1960).
❖ El algoritmo de entrenamiento de ADALINE usado para adaptar los
pesos es un caso particular del algoritmo stochastic gradient descent hoy
en día muy utilizado.
❖ Estos modelos basados en f (x, w) son conocidos como modelos lineales.
❖ Limitaciones: la más conocida XOR.
❖ Esto significo el fin de la primer período.
Historia

❖ En 1980 emerge el segundo periodo de las redes


neuronales, connectionism o parallel distributed processing,
(Rumelhart et al., 1986c; McClelland et al., 1995).
❖ Idea: Un gran número de unidades computacionales
simples pueden adoptar un comportamiento
inteligente (complejo) cuando interactúan todas
juntas (red).
Historia
❖ Muchos de estos conceptos se mantienen hoy en día en deep learning.
❖ Distributed representation (Hinton et al., 1986): la entrada queda representada por
muchos características y cada una debe estar relacionadas con las distintas entradas.
❖ Algoritmo Back-propagation (Rumelhart et al., 1986a; LeCun, 1987) utilizado para
entrenar las redes neuronales.
❖ Redes Short term memory o LSTM (Hochreiter and Schmidhuber, 1997).
❖ Convolutional neural network (LeCun et al., 1998b).
❖ En otros campos de machine learning se obteninan muy buenos resultados (kernel
machine o graphical models).
❖ Problemas complejos requerían un poder de computo inmenso y se creían imposibles
de realizar (1980s).
❖ Esto llevo al fin del segundo período.
Historia
❖ En 2006 Geoffrey Hinton mostró que el tipo de red neuronal
conocida como deep belief podía ser entrenada de forma
eficiente (Hinton et al., 2006).
❖ La misma estrategia de entrenamiento se expandio a otro
tipo de deep networks.
❖ Se comenzó a popularizar el uso del término deep learning.
❖ Gracias al poder de computo que hoy en día tenemos
(GPUs) muchos problemas realmente complejos pueden
ser resueltos mediante el uso de las técnicas de deep
learning.
Historia
❖ La cantidad de datos que debemos considerar para poder
generalizar de forma adecuada los conceptos complejos que
se intenta modelar con deep learning es uno de los mayores
problemas.
❖ Sin embargo, en la época de Big Data, hay muchos datos.
Pero no de todo, sobre todo en medicina.
❖ Como regla (en 2016) se obtienen buenos resultados con
unos 5.000 datos etiquetados por categoría, y suelen
mejorar la clasificación humana si se hace con al menos 10
millones.
Historia

1. Perceptron (Rosenblatt, 1958, 1962) 20. GoogLeNet (Szegedy et al., 2014a)


Historia
Introducción
❖ Aplicaciones.
❖ Predicción sobre como interactúan las moléculas para la fabricación de
medicamentos (Dahl et al., 2014).
❖ Búsqueda de partículas subatómicas (Baldi et al., 2014).
❖ Reconstrucción 3D microscópica del cerebro humano (Knowles-Barley et al., 2014).
❖ Clasificación de pacientes con demencia.
❖ Segmentación de estructuras cardiacas (miocardio) (Curiale et al., 2017).
❖ …
Machine learning
❖ Machine learning: métodos o algoritmos que aprenden una tarea a partir de
experiencia (datos). ¿aprender?

❖ Algunas tareas pueden ser:


❖ Clasificación: con que categoría identificamos la entrada.
❖ Clasificación frente a datos incompletos.
❖ Regresión: se intenta predecir que valor le corresponde a una entrada.
❖ Transcripción: optical character recognition.
❖ Traducción.
❖ Detección de anomalías.
❖ Denoising.
❖ …
Machine learning
❖ Se busca evaluar el rendimiento de los métodos de ML
frente a nuevos datos (datos de test), y la métrica
utilizada va a depender de la tarea a realizar. Por
ejemplo, para clasificar se puede utilizar la cantidad de
datos bien clasificados frente a malos, error rate.
❖ La experiencia puede ser supervisada (para cada
características de los datos esta asociada con una
clasificación o label), o sin supervisión (solo contamos
con un conjunto de características).
Machine learning
❖ Regresión lineal: el objetivo predecir el valor y 2 R dado
n
un conjunto de características x 2 R .
ŷ = wT x
❖ Evaluamos el método con el error cuadrático medio.
m
X
1 1 (test)
mse = (ŷ(test) y(test) )2i = ||ŷ y(test) ||2
m i m
❖ Buscamos encontrar los pesos que minimicen dicho error: rw mse = 0
1 1
rw ||X(train) w y (train) 2
|| = rw (X(train) w y(train) )T (X(train) w y(train) ) = 0
m m

2X(train) T X(train) w 2X(train) T y(train) = 0


⇣ ⌘ 1 bias
w= X (train) T
X (train)
X (train) T
y (train) ŷ = wT x + b
Machine learning
❖ Regresión lineal

mse

x w
Machine learning
❖ Algunos conceptos importantes

Underfitting
Generalización

Training data
Independientes
Error de Overfitting
generalización Identicamente 

Costo distribuidos

test data

Métrica
Error de
entrenamiento
Machine learning
Machine learning
❖ El teorema No Free Launch (Wolpert, 1996).
❖ La teoría de aprendizaje afirma que los algoritmos de ML
pueden generalizar conceptos a partir de un conjunto de
datos finitos.
❖ No Free Launch: No existe un método universal mejor a
todos los otros.
❖ Es decir, no existe un método de machine learning que sea
universalmente mejor que otros.
❖ Tenemos que diseñar nuestros métodos para que anden
bien en tareas especificas no de forma universal.
Machine learning
❖ Regularización: cualquier modificación del algoritmo de ML
con el fin de reducir el error de generalización, pero no el error
de entrenamiento.
❖ Supongamos que en el ejemplo de regresión lineal vamos a
ponderar más unas soluciones que otra, por ejemplo,
aquellas que tengan un peso (w) pequeño. Para eso vamos a
introducir una penalidad en la función de minimización.
Esta sería la regularización.
❖ La forma de expresar una preferencia sobre las soluciones
puede ser explicita o implícita.
Machine learning

❖ Hiperparámetros: parámetros que controlan el


comportamiento del algoritmo de ML, y que no son
ajustados por el mismo algoritmo.
❖ Ej. los grados del la forma polinomial en una
regresión polinomial.
❖ Si se ajustan por el propio algoritmo de ML, entonces,
caemos siempre en overfitting.
Machine learning
❖ Validación.
❖ Los datos de prueba no se usan en el entrenamiento, de ninguna
forma, ni siquiera para determinar los hiperparámetros.
❖ Para evaluar los hiperparámetro usamos un subconjunto de los
datos de entrenamiento que llamamos datos de validación o
validation data.
Entrenamiento
❖ Validación cruzada. Entrenamiento

60%

Prueba Validación
10 %

Prueba final
Validación

rendimiento
30 %
Machine learning
❖ Uno de los enfoques de aprendizaje supervisado más
influyentes es Support Vector Machine (Boser et al., 1992;
Cortes and Vapnik, 1995).
❖ Modelo discriminativo: No intenta estimar la pdf de
cada una de las clases como los modelos generativos.
❖ Similar al modelo de regresión logística en el sentido que
sigue un modelo lineal. Sin embargo, SVM retorna una
clasificación (no una probabilidad).
Machine learning
❖ Support Vector Machine.
En principio, clasificación binaria en
problemas linealmente separables

❖ Vectores de soporte
Característica 2

❖ Margen
❖ Hiperplano solución
❖ Hiperplano de vectores de soporte

Objetivo: Maximizar el margen

Característica 1
Machine learning
❖ Support Vector Machine.

Característica 2
Característica 2

Característica 1

Característica 1
Machine learning
❖ Support Vector Machine.

w T x i + bi > 0 Solución:

w T x i + bi = 0
Característica 2

Función de clasificación:

f (x) = sig(wT x + bi = 0)
w

w T x i + bi < 0
Característica 1
Machine learning
❖ Support Vector Machine.
❖ Objetivo: Maximizar el margen
w T x i + bi > 0
h+ ! w T x i + b i = 1
h ! w T x i + bi = 1
Característica 2

❖ Distancia del margen:


w |w T
x + b| 1
+
d =d = =
||w|| ||w||
+ 2
+ d +d =
d ||w|| Condición de clasificación
w T x i + bi < 0 d
yi (wT xi + bi ) 1
Característica 1

Optimización (multiplicadores de Lagrange): calculamos w y b.


Machine learning
❖ Support Vector Machine.
❖ Problemas linealmente no separables: función de transformación x ! (x) .
No 
 En lugar de buscar una transformación
separable vamos a usar kernels
K(x, y) = (x)T (y)
(x)
❖ Algunos ejemplos de kernel:
❖ Polinomial.
K(x, y) =< x, y >p

separable ❖ Funciones de base radial.


✓ ◆
2
||x y||
K(x, y) = exp
2
❖ Sigmoide.
K(x, y) = tanh( < x y> )
❖ Gaussiano
2
K(x, y) = N (x y; 0, I)
Machine learning
❖ Support Vector Machine.
❖ Tolerancia a errores: Permitimos que algunas muestras
violen la condición de margen.

✏1 ❖ Variables de holgura ✏i >0


Característica 2

❖ Función a minimizar
✏2 P
T
w w+c i ✏i
2
Sujeto a la condición de clasificación
T
✏ 2i yi (w (x) + b) 1 ✏i

Característica 1
Machine learning

❖ Un ejemplo de enfoque de aprendizaje no supervisado


es el método K-means.
Machine learning
❖ K-means
❖ Agrupamos n muestras en k clusters.
❖ Cada muestra se asigna al cluster cuya media esté más cercana.
❖ Minimizamos la suma de distancias intra-clase al cuadrado.
X k X
min ||xj µi ||2
S
i=1 xj 2Si
❖ Método:
❖ Partimos de un conjunto de medias µ1 , . . . , µk .
❖ Asignamos cada muestra al cluster que tiene tiene la media más cercana.
❖ Recalculamos la media para cada cluster.
❖ Iteramos.
❖ Problema: determinar el hiperparámetro K.
Machine learning
❖ K-means
Deep Learning - Motivación
❖ Machine learning ha probado ser una metodología que resuelve una gran cantidad
de problemas. Sin embargo, no resuelve bien otros tantos como:
❖ Reconocimiento de voz.
❖ Reconocimiento de objetos.
❖ La maldición de la dimensionalidad: a mayor características mayor número de datos.
¿cuantas características debo tomar?
❖ Suavidad o constancia local: pensar el problema de predecir el color de una posición
en un tablero de ajedrez.
❖ Sólo suavidad no nos va alcanzar como única información a priori para obtener
una buena generalización.

❖ Manifold: Conjunto de puntos relacionados con sus


vecinos (regiones conectadas).
Deep learning
❖ Deep Feedforward Networks o Multilayer Perceptrons
(MLPs) son el ejemplo por excelencia de los modelos
deep learning.
Formalmente se define un mapeo
Entrada 1er layer oculto 2do layer oculto 3er layer oculto Salida
entre la entrada y la clasificación
de la salida.

y = f (x; ✓ )
¿feedforward?
¿feedback?

Muchas redes se basan en las


feedforward, como las que vamos a usar
en imágenes (redes convolucionales).
Deep learning
❖ Feedforward Networks. Entrada 1er layer oculto 2do layer oculto 3er layer oculto Salida

❖ Aprendizaje ⇤
y ⇡ f (x)
supervisado

El algoritmo de aprendizaje tiene que ver como usa los


layers internos para producir la salida adecuada acorde
a la evidencia, pero no decide que son cada uno de
ellos. Por eso se los llama ocultos o hidden.
Deep learning
❖ Neural Networks (NN). Entrada 1er layer oculto 2do layer oculto 3er layer oculto Salida

y = f (x)

neuronas/unidades fi (u)
zi = fi (u)

Las redes neuronales modernas no buscan


modelar el cerebro humano.
sinapsis

Mejor verlas como aproximaciones de algún tipo


de generalización, ocasionalmente inspiradas en el
funcionamiento cerebral, más que modelar el
funcionamiento cerebro.
Deep learning
❖ Neural Networks (NN). Entrada 1er layer oculto 2do layer oculto 3er layer oculto Salida

❖ neuronas o hidden unit !


X
fi (u) = wi ui + b
i fi (u)

❖ función de activación

❖ Arquitectura:
❖ cuantas neuronas
(x)

❖ como se conectan las neuronas

❖ Entrenar la NN
❖ back-propagation

❖ Optimización

x
Deep learning
❖ Salida de la NN. Entrada 1er layer oculto 2do layer oculto 3er layer oculto Salida

❖ La forma de representar la salida


por lo general va a determinar la
función de costo a utilizar.

❖ Linear unit: la más simple donde


no hay función no lineal.
Las neuronas de salida no son diferentes
al resto, sacando las de entrada.
❖ Sigmoid: predecir el valor de una
clasificación binaria.
❖ Softmax: predecir el valor de una
clasificación con n valores.
Deep learning
❖ Aprendizaje basado en gradiente. Entrada 1er layer oculto 2do layer oculto 3er layer oculto Salida

❖ Al igual que ML, el aprendizaje basado


en gradientes requiere definir una
función de costo.
mse
entropía cruzada mae

coeficiente de dice o Tanimoto

❖ Sin embargo, a diferencias con ML, la no linealidad


provoca que la función de costo o pérdida (loss) tienda a
no ser convexa.
Deep learning
❖ Back-propagation (Rumelhart et al., 1986a).
❖ Nos permite calcular el gradiente de la función de
costo a optimizar, o cualquier otra (reverse-mode
differentiation).
❖ El termino de back-propagation se suele confundir.
❖ No es solo para entrenar NN multilayers.
❖ La optimización se hace realmente con otro método,
por ejemplo, gradiente descendente estocástico.
Deep learning
❖ Back-propagation.

❖ Regla de la cadena para z = f (g(x)) considerando:

z = f (y) y = g(x)
✓ ◆T
@y
rx z = ry z
@x
gradiente de f().
matriz Jacobiana de g().
Back-propagation: Consiste en hacer
el producto de forma inteligente
Deep learning
❖ Back-propagation.
❖ Algunas ideas sobre cálculo de grafos o computational graphs: son
una buena forma de pensar en expresiones matemáticas.
y = (xT y + b)
x
u u v y
+
+
y dot

u=x+y x y b

Variables: escalares, vectores, matrices, tensores, …


Operaciones: funciones.

❖ En este sentido la red neuronal es una masiva composición de


funciones.
Deep learning
❖ Back-propagation: Ejemplo.
❖ Creemos un grafo para evaluar
la siguiente expresión:

f (a, b) = (a + b)(b + 1)

+ +1

http://colah.github.io/posts/2015-08-Backprop
Deep learning
❖ Back-propagation: Ejemplo.
❖ Creemos un grafo para evaluar
la siguiente expresión:

f (a, b) = (a + b)(b + 1)

supongamos que a=2 y b=1 ⇤

+ +1
Deep learning
❖ Back-propagation: Ejemplo.
¿Como varia e respecto a b?
❖ Calculemos las derivadas.

f (a, b) = (a + b)(b + 1)


Si a cambia a una velocidad de 1, entonces,
c cambia a una velocidad de 1 también.
+
⇤ ⇤

+ +1
Deep learning
❖ Back-propagation: Ejemplo.

❖ Analicemos la necesidad de factorizar los caminos

@Z
9 posibles caminos (combinatorio): = ↵ + ↵✏ + ↵⇣ + + ✏+ ⇣ + + ✏+ ⇣
@X

@Z
Factorizando = (↵ + + )( + ✏ + ⇣)
@X
Deep learning
❖ Back-propagation: Ejemplo.

La forma usual que


aprendemos

¿Y para que me sirve el modo


reverso?
Deep learning
❖ Back-propagation: Ejemplo.

❖ Modo hacia adelante (foward).

❖ Modo hacia atrás (backward).


Deep learning
❖ Optimización.
Una vez que sabemos como calcular el gradiente de nuestra
función de costo, tenemos que utilizar un método para optimizar
los pesos de nuestra NN
f (w)
w(0)
↵rw f (w)
w(1) = w(0) ↵rw f(w)

mínimo local global w


Deep learning
❖ Neural Networks: Ejemplo.

solido

vertical

diagonal

horizontal

Brandon Rohrer (https://www.youtube.com/channel/UCsBKTrp45lTfHa_p49I2AEQ)


Deep learning
❖ Neural Networks: Ejemplo.

❖ Input layer .50 ❖ Campo receptivo

0.0

-.75

.75
Deep learning
❖ Neural Networks: Ejemplo.
solido

vertical

diagonal

horizontal
Notación de pesos
1
-1
(sin flecha) 0
Deep learning
❖ Convolutional Neural Networks (LeCun, 1989).
❖ Representation learning: intentamos aprender la
representación de los datos y además la relación entre esta
representación y la salida (primeras clases).
Estas dos etapas se ven baste marcadas al trabajar con redes convolucionales

Etapa donde se aprende la representación Clasificación


Deep learning
❖ AlexNet.
Etapa donde se aprende la representación Clasificación

AlexNet / VGG-F network visualized by mNeuron.


Deep learning
❖ Layer de Convolución

http://cs231n.github.io/convolutional-networks/#pool
Deep learning
❖ Submuestreo

❖ Pool ❖ Max pooling

http://cs231n.github.io/convolutional-networks/#pool
Deep learning
❖ Fully convolutional neural networks (predicciones densas).

Segmentación semantica

Shelhamer, et al., "Fully Convolutional Networks for Semantic Segmentation", IEEE Transactions on Pattern Analysis &
Machine Intelligence, vol. 39, no. , pp. 640-651, April 2017
Deep learning
❖ Fully convolutional neural networks (autoencoder).
Deep learning
❖ Unpooling

❖ Max pool ❖ Unpooling

unpooling 2x2
Deep learning
❖ Unpooling

❖ Convolution ❖ Transpose convolution


Deep learning
❖ Fully convolutional neural networks (autoencoder).
1 64 64 128 64 64 2

Input
Image

1282 128 128 256 128 128


Myocardial
Segmentation

642 256 256 512 256 256


64 + 64
conv 3x3 ReLu + batch normalization
copy
max pool 2x2
322 up-conv 2x2
128 + 128
512 512 residual learning
conv 1x1
input reinforcement
162 output reinforcement
256 + 256