Fundamentos de Deep
Learning I
Dr. Manuel Castillo-Cara
Deep Learning con Python y Keras
Web: www.smartcityperu.org
Índice
●
Background
●
Neurona
●
Simulación
●
Perceptron Multicapa
●
Cómo opera el MLP
●
Backpropagation
●
Veamos una simulación
Background
0. Background
0. Background
0. Background
Neurona
1. Neurona
NEURONA
1. Neurona
X1
X2 NEURONA
X3
1. Neurona
X1
X2 NEURONA Y1
X3
1. Neurona
X1
X2 F(X) Y1
X3
1. Neurona
X1
X2 w1x1+w2x2+w3x3 Y1
X3
1. Neurona
X1
Utiliza todas la entradas para
X2 w1x1+w2x2+w3x3 Y1 realizar una suma ponderada
de ellos.
X3
1. Neurona
X1
w1
Hay que tener en cuenta que la
suma viene dada por el peso (w)
X2 w2 w1x1+w2x2+w3x3 Y1
que se le asigna a cada una de
las entradas
w3
X3
1. Neurona
X1
w1
X2 w2 w1x1+w2x2+w3x3 Y1 ¿A qué nos suena?
w3
X3
2. Regresión lineal
2. Regresión lineal
El término independiente
nos servía para mover la recta
en vertical, i.e., en el eje y.
Por tanto, el término
independiente nos servía para
subir/bajar la recta
3. Función de la NN
X1
w1
Y1
w2
X2
y = w1x1 + w2x2
3. Función de la NN
X1
w1
Podemos verlo como una función
de regresión lineal en el que
Y1
una recta o hiperplano se ajusta
a nuestros datos de entrada
w2
X2
y = w1x1 + w2x2
3. Función de la NN
X1
w1
El término independiente, llamado
Y1 bias o sesgo, nos permite el
desplazamiento de la recta.
w2
X2
y = w1x1 + w2x2 + b
3. Función de la NN
1 b
X1
w1
Así nuestra neruona
Y1 funcionaría exactamente
como un modelo de regresión
w2
X2
y = w1x1 + w2x2 + b
Simulación
1. Ejemplo
Estudiar + Estar en casa = Aprobar el examen
1. Ejemplo
Estudiar + Estar en casa = Aprobar el examen
1 b
X1
w1
Y1
w2
X2
y = w1x1 + w2x2 + b
1. Ejemplo
Estudiar + Estar en casa = Aprobar el examen
1 0
1 b
X1
X1
w1
Y1 X2
w2
X2
y = w1x1 + w2x2 + b
1. Ejemplo
Estudiar + Estar en casa = Aprobar el examen
1 0
1 b
X1
X1
w1
Y1 X2
w2
X2 Y1
y = w1x1 + w2x2 + b
1. Ejemplo
Umbral
Estudiar + Estar en casa = Aprobar el examen
1 0
X1
WX ≤ UMBRAL → Y = 0
WX > UMBRAL → Y = 1 X2
Y1
1. Ejemplo
Umbral
Estudiar + Estar en casa = Aprobar el examen
1 0
X1
WX ≤ UMBRAL → Y = 0
WX > UMBRAL → Y = 1 X2
BIAS = -UMBRAL
Y1
1. Ejemplo
Umbral
Estudiar + Estar en casa = Aprobar el examen
1 0
BIAS = -UMBRAL X1
WX + b ≤ 0 → Y = 0
X2
WX + b > 0 → Y = 1
Y1
1. Ejemplo
Modelamos el problema
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y
1. Ejemplo
Modelamos el problema
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y
1. Ejemplo
Modelamos el problema
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y
El resultado de la NN estará
condicionado por el valor de los
parámetros. Por tanto, tenemos
que buscar esos pesos y bias.
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y
X1
w1
w1x1+w2x2 + b Y1
w2
X2
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -3
-3 X1 3
3X1-4x2 - 3 Y1
0
X2 -4
-7
-4
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -3
-3 X1 3
3X1-4x2 - 3 Y1
0
X2 -4
-7
El objetivo es que salga un
resultado positivo el último
-4 Y negativo los tres primeros
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -3
-3 X1 3
3X1-4x2 - 3 Y1
0
X2 -4
-7
¡No cumple!
-4
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 2
2 X1 1
1X1+ 1x2 + 2 Y1
3
X2 1
4
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 2
2 X1 1
1X1+ 1x2 + 2 Y1
3
X2 1
¡No cumple!
4
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -6
-6 X1 4
4X1+ 5x2 - 6 Y1
-2
X2 5
-1
3
1. Ejemplo
Buscamos los parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -6
-6 X1 4
4X1+ 5x2 - 6 Y1
-2
X2 5
-1
¡SI cumple!
3
1. Ejemplo
Entender el procedimiento
X1
X2
1. Ejemplo
Entender el procedimiento
X1
X2
1. Ejemplo
Entender el procedimiento
X1
X2
1. Ejemplo
Entender el procedimiento
1 0 1
X1
0 0 0
0 X2 1
1. Ejemplo
Entender el procedimiento
1 0 1
X1 ¿Qué observamos?
0 0 0
0 X2 1
1. Ejemplo
Puerta lógica AND
1 0 1
¿Qué observamos?
X1 Que tenemos una puerta
lógica AND
0 0 0
0 X2 1
1. Ejemplo
Puerta lógica AND
1 0 1
X1 AND Podemos establecer la recta de
regresión que hemos hablado
0 0 0
0 X2 1
1. Ejemplo
Puerta lógica AND
1 0 1
X1 AND Podemos establecer la recta de
regresión que hemos hablado
0 0 0
0 X2 1
1. Ejemplo
Puerta lógica AND
1 0 1
AND
Lo podemos entender como
X1 el problema de trazar una línea
de frontera en la que separar
las clases
0 0 0
0 X2 1
1. Ejemplo
Puerta lógica OR
1 1 1
X1 OR
0 0 1
0 X2 1
1. Ejemplo
Puerta lógica OR
1 1 1
OR
Tendríamos que ajustar
X1 los parámetros de la neurona
hasta ajustar los resultados
esperados
0 0 1
0 X2 1
1. Ejemplo
Puerta lógica OR – Buscar parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -2
-2 X1 3
3X1+ 4x2 - 2 Y1
1
X2 4
5
1. Ejemplo
Puerta lógica OR – Buscar parámetros
Estudiar + Estar en casa = Aprobar el examen
X1 X2 Target Y 1 -2
-2 X1 3
3X1+ 4x2 - 2 Y1
1
X2 4
¡SI cumple!
5
1. Ejemplo
Puerta lógica OR
1 1 1
X1 OR Ya tenemos la línea de frontera
0 0 1
0 X2 1
1. Ejemplo
Puerta lógica XOR
1 1 0
X1 XOR ¿Como sería con XOR?
¿Recordáis la sesión anterior?
0 0 1
0 X2 1
1. Ejemplo
Puerta lógica XOR
1 1 0
XOR
Es imposible modelar el problema
X1 Con una única neurona, i.e., es
imposible separar linealmente
ambas clases
0 0 1
0 X2 1
1. Ejemplo
Puerta lógica XOR
1 1 0
X1 XOR ¿Como lo solucionamos?
0 0 1
0 X2 1
1. Ejemplo
Puerta lógica XOR
1 -6
X1 4
1 1 0 4X1+ 5x2 - 6 Y1
X2 5
X
XOR
1 -3
1
0 X1
0 1 4
0 1
4X1 - 2x2 - 3 Y1
X
2 X2 -2
1. Ejemplo
Puerta lógica XOR
1 -6
X1 4
1 1 0 4X1+ 5x2 - 6 Y1
X2 5
X
XOR
1 -3
1
0 X1
0 1 4
0 1
4X1 - 2x2 - 3 Y1
X
2 X2 -2
1. Ejemplo
Puerta lógica XOR
1 -6
X1 4
1 1 0 4X1+ 5x2 - 6 Y1
X2 5
X
XOR
Tenemos que combinar
1
varias neuronas -3
1
0 X1
0 1 4
0 1
4X1 - 2x2 - 3 Y1
X
2 X2 -2
1. Ejemplo
Arquitectura de redes neuronales
●
Son la base de las redes profundas, actualmente muy utilizadas con mucho éxito.
●
Cada capa extrae características cada vez más complejas
Perceptrón multicapa
1. Definición
●
Una neurona no puede representar toda la información
– Problema de linealidad como XOR
●
Necesitamos una agrupación de neuronas
1. Definición
●
Una neurona no puede representar toda la información
– Problema de linealidad como XOR
●
Necesitamos una agrupación de neuronas
1. Definición
●
Una neurona no puede representar toda la información
– Problema de linealidad como XOR
●
Necesitamos una agrupación de neuronas
1. Definición
●
Una neurona no puede representar toda la información
– Problema de linealidad como XOR
●
Necesitamos una agrupación de neuronas
1. Definición
●
Una neurona no puede representar toda la información
– Problema de linealidad como XOR
●
Necesitamos una agrupación de neuronas
2. Secuencialidad de neuronas
●
Si ponemos neuronas de forma secuencial
1 b 1 b
X1
w1
w2
X2
2. Secuencialidad de neuronas
●
Si ponemos neuronas de forma secuencial
1 b 1 b
X1
w1
¿Qué nos aporta?
w2
X2
2. Secuencialidad de neuronas
●
Si ponemos neuronas de forma secuencial
1 b 1 b
X1
w1 ¿Qué nos aporta?
Conocimiento
jerarquizado
w2
X2
3. Conocimiento Jerarquizado
X1
Y1
X2
Y3
X3
Y2
X4
3. Conocimiento Jerarquizado
Neurona especializada
en es estudio
X1
Y1
X2
Y3
X3
Y2
X4
3. Conocimiento Jerarquizado
Neurona especializada
en el estudio
X1
Y1
X2
Y3
X3
Y2
Neurona especializada
X4 en la motivación
3. Conocimiento Jerarquizado
Neurona especializada
en el estudio
X1
Y1 Neurona especializada
en el resultado del
examen
X2
Y3
X3
Y2
Neurona especializada
X4 en la motivación
3. Conocimiento Jerarquizado
Ejemplo
Si el estudio es bajo y
X1
motivación alto →
posiblemente suspenda
Y1
X2
Y3
X3
Y2
X4
4. Problema
●
El problema es que la concatenación de regresiones
lineales es igual a una regresión lineal
+…+ =
4. Problema
4. Problema
Nuestra red colapsa
como tener una neurona
4. Problema
Nuestra red colapsa
como tener una neurona
¿Como lo solucionamos?
4. Problema
●
Que nuestras funciones sufran una distorsión para
romper la linealidad
+…+ =
¿Entoces distosionamos
las funciones?
4. Problema
●
Que nuestras funciones sufran una distorsión para
romper la linealidad
+…+ =/=
Así el resultado no es
Lineal
4. Problema
●
Que nuestras funciones sufran una distorsión para
romper la linealidad
+…+ =/=
Añadimos funciones
de activación
5. Arquitectura de redes
neuronales
●
Son la base de las redes profundas, actualmente muy utilizadas con mucho éxito.
●
Cada capa extrae características cada vez más complejas
Función de activación
1. ¿Donde se encuentra?
1 b
X1
w1
Y1
w2
X2
y = w1x1 + w2x2 + b
1. ¿Donde se encuentra?
1 b
X1 En cada neurona
w1
Y1
w2
X2
y = w1x1 + w2x2 + b
2. ¿Como la representamos?
X1
w1x1+w2x2+w3x3
X2 Y1
X3
2. ¿Como la representamos?
X1
f(w1x1+w2x2+w3x3)
X2 Y1
X3
2. ¿Como la representamos?
X1 ¿Qué realiza la función de ativación?
f(w1x1+w2x2+w3x3)
X2 Y1
X3
2. ¿Como la representamos?
X1 ¿Qué realiza la función de ativación?
f(w1x1+w2x2+w3x3)
X2
Y1
X3
Distorsiona la salida dotándola de
No linealidad
3. Recordemos la que vimos
Función de activación Binaria
Estudiar + Estar en casa = Aprobar el examen
1 0
X1
WX ≤ UMBRAL → Y = 0
WX > UMBRAL → Y = 1 X2
BIAS = -UMBRAL
Y1
3. Recordemos la que vimos
Función de activación Binaria
WX ≤ UMBRAL → Y = 0
f(WX) → Y = {0, 1}
WX > UMBRAL → Y = 1
BIAS = -UMBRAL
3. Recordemos la que vimos
Función de activación Binaria
f(WX) → Y = {0, 1}
3. Recordemos la que vimos
Función de activación Binaria
Dependiendo del umbral es 0 ó 1
Problema linal → no nos interesa
f(WX) → Y = {0, 1}
4. Función de activación
Sigmoide
4. Función de activación
Sigmoide
Los valores muy grandes se saturan en 1
Los valores muy pequeños se saturan en 0
4. Función de activación
Sigmoide
Los valores muy grandes se saturan en 1
Los valores muy pequeños se saturan en 0
Por tanto, nos permite:
1) Distorsionar la señal
2) Representar probabilidades entre 0 y 1
4. Función de activación
Tangente hiperbólica (TANH)
4. Función de activación
Tangente hiperbólica (TANH)
Parecida a la Sigmoide pero con un
rango de -1 a 1
4. Función de activación
Rectificada Lineal (ReLU)
4. Función de activación
Rectificada Lineal (ReLU)
Función lineal cuando es positiva
Constante a 0 cuando el valor de entrada
es negativo
Cómo opera el MLP
1. Problema
1. Problema
¿Cómo ver geométricamente el efecto
de una función de activación?
2. Función de activación binaria
2. Función de activación binaria
2. Función de activación binaria
2. Función de activación binaria
Todo lo que está encima del hiperplano
será una clase y lo que está debajo otra
2. Función de activación binaria
Todo lo que está encima del hiperplano
será una clase y lo que está debajo otra
2. Función de activación binaria
Neceistamos distorsionar la señal
para acomodar el problema inicial
3. Otras Funciones de activación
3. Otras Funciones de activación
3. Otras Funciones de activación
3. Otras Funciones de activación
3. Otras Funciones de activación
Pero la frontera no deja de ser una
Línea recta, ¿Cómo resolvemos el problema?
4. Encontrar el hiperplano
4. Encontrar el hiperplano
¿Cómo trazar esa frontera?
4. Encontrar el hiperplano
X1
X2
4. Encontrar el hiperplano
X1
X2
4. Encontrar el hiperplano
X1
X2
Puede cambiar la orientación
cambiando parámetros
4. Encontrar el hiperplano
Aumentamos las neuronas
X1
S
X2
S
4. Encontrar el hiperplano
Aumentamos las neuronas
X1
S
X2
S
4. Encontrar el hiperplano
Aumentamos las neuronas
Pero cada una tiene una
orientación diferente
Las juntamos...
S
X1
S
X2
S
4. Encontrar el hiperplano
Segunda capa oculta
X1
S
X2
S
4. Encontrar el hiperplano
Segunda capa oculta
Obtenemos la superposción
geométrica con un “bulto”
S al medio
X1
S
X2
S
4. Encontrar el hiperplano
Segunda capa oculta
Qué podemos “cortar” con la intersección
del hiperplano con la “montaña”
4. Encontrar el hiperplano
Segunda capa oculta
Qué podemos “cortar” con la intersección
del hiperplano con la “montaña”
Por lo que se pueden resolver problemas
complejos
5. Arquitectura de redes
neuronales
●
Son la base de las redes profundas, actualmente muy utilizadas con mucho éxito.
●
Cada capa extrae características cada vez más complejas
– Necesitamos un conjunto de neuronas para resolver problemas no lineales.
Backpropagation
1. Contexto
●
En 1958 se publica el artículo de Perceptron, i.e., desarrollo de una única neurona.
– Pero al poco tiempo muestran diferentes estudios con todas las limitaciones como
hemos visto.
– Se llega al periodo de “Invierno de la Inteligencia Artificial” que dura 15
años de inactividad en desarrollo.
– Básicamente las limitaciones son muchas y se corta la financiación.
●
Pero volvemos a la “Primavera de la IA” en 1986 con la llegada del artículo que
desarrolla algoritmo Backpropagation de David E. Rumelhart et al.
– Básicamente exponen un algoritmo el cual una red neuronal ajusta
“automáticamente” sus parámetros.
– Entra en acción el “Gradiente Descendiente” pero lo veremos en la siguiente
sesión.
1. Contexto
X1
S
S
YP Coste
S S
X2
S
2. Conexiones e iteraciones
Cómo computamos el error
S
X1
S
S
YP Coste
S S
X2
S
2. Conexiones e iteraciones
w S
X1
S
S
YP Coste
S S
X2
S
2. Conexiones e iteraciones
w S
X1
S
S
YP Coste
S S
X2
S Imaginemos que la predicción
fluye por el camino señalado
2. Conexiones e iteraciones
O por este… y así sucesivamente
w S
X1
S
S
YP Coste
S S
X2
S
2. Conexiones e iteraciones
w S
X1 w
S
S
YP Coste
S S
w
X2
S Además el valor viene dado por
encademiento del error previo
2. Conexiones e iteraciones
w S
X1 w
S
S
YP Coste
S S
w
X2
S Backpropagatión nos ajustará los errores
para que el coste sea el mínimo.
Para ello, utilizará el Gradiente Descendiente
3. Pensemos en el día a día
3. Pensemos en el día a día
3. Pensemos en el día a día
¿De quién es la culpa?
3. Pensemos en el día a día
Tenemos que analizar toda la
Cadena para ver quién es el culpable
3. Pensemos en el día a día
Viendo el porcentaje de implicación
de cada neurona en la predicción y,
así, corregirlo
Para ello, analizamos el error
y vamos analizando hacia atrás
para corregirlo
3. Pensemos en el día a día
Cuando lleguemos a la primera capa
tendremo el error de cada neurona
y sus parámetros
4. En MLP
X1
S
S
YP Coste
S S
X2
S
4. En MLP
X1
S
S
YP Coste
S S
X2
S
4. En MLP
X1
S
S
YP Coste
S S
X2
S
4. En MLP
X1
S
S
YP Coste
S S
X2
S
4. En MLP
X1
S
S
YP Coste
S S
X2
S Con una sola iteración hacia atrás
tenemos identificado el error e
implicancia de parámetros y neuronas
Veamos una simulación
¡GRACIAS!
Dr. Manuel Castillo-Cara
Deep Learning con Python y Keras
Web: www.smartcityperu.org