Curso de
Bagde
Fundamentos de
del curso
Redes Neuronales
con Python y Keras
Carlos Alarcón
¿Redes neuronales
artificiales?
¿Redes neuronales artificiales?
¿Redes neuronales artificiales?
¿Redes neuronales artificiales?
¿Redes neuronales artificiales?
Redes neuronales artificiales
Redes neuronales
¿Conocimiento previo?
¿Qué herramientas
usaremos?
Frameworks
Frameworks
Keras API
Backend: TensorFlow Theano CNTK
Low-level CuDA, cuDNN BLAS, Eigen
library:
Hardware: GPU CPU
Notebooks
Deep learning
Deep learning
Artificial
Intelligence
Machine
Learning
Deep
Learning
Deep learning
Traditional Machine Learning
POLITE
OFFENSIVE
Feature
Tweet Classification Output
Engineering
Deep Learning
POLITE
OFFENSIVE
Tweet Feature Learning + Classification Output
Problemas de deep learning
Overfitting Caja negra
(Problemas de ¿Qué está
sobre ajuste) ocurriendo
adentro?
Overfitting
Overfitting
Cajas negras
Cajas negras
Cajas negras
Cajas negras
Cajas negras
Tu primera red
neuronal con Keras
La neurona: una
pequeña y poderosa
herramienta
La neurona
La neurona
X1
Wx1 Σ Función de Salida
X1*Wx1 + X2*Wx2 + b activación
Wx2
X2
b Wb
1
La neurona - Bias
B
La neurona - AND
X1
2
Σ Función de Salida
X1*Wx1 + X2*Wx2 + b activación
4
X1 X2 Σ Activation Salida
X2
1 0 1*2 + 0*4 + 5 F(x) 1, 7 >= 0 1
0, 7 < 0
0 1 0*2 + 1*4 + 5 F(x) 1, 9 >= 0 1
b 5 0, 9 < 0
1 0 0 0*2 + 0*4 + 5 F(x) 1, 5 >= 0 1
0, 5 < 0
1 1 1*2 + 1*4 + 5 F(x) 1, 11 >= 0 1
0, 11 < 0
La neurona - AND
X1
2
Σ Función de Salida
X1*Wx1 + X2*Wx2 + b activación
1
X1 X2 Σ Activation Salida
X2
1 0 1*2 + 0*1 - 3 F(x) 1, -1 >= 0 0
0, -1 < 0
0 1 0*2 + 1*1 - 3 F(x) 1, -2 >= 0 0
b -3 0, -2 < 0
1 0 0 0*2 + 0*1 - 3 F(x) 1, -3 >= 0 0
0, -3 < 0
1 1 1*2 + 1*1 - 3 F(x) 1, 0 >= 0 1
0, 0 < 0
La neurona - OR
X1
2
Σ Función de Salida
X1*Wx1 + X2*Wx2 + b activación
2
X1 X2 Σ Activation Salida
X2
1 0 1*2 + 0*2 - 2 F(x) 1, 0 >= 0 1
0, 0 < 0
0 1 0*2 + 1*2 - 2 F(x) 1, 0 >= 0 1
b -2 0, 0 < 0
1 0 0 0*2 + 0*2 - 2 F(x) 1, -2 >= 0 0
0, -2 < 0
1 1 1*2 + 1*2 - 2 F(x) 1, 2 >= 0 1
0, 2 < 0
La neurona
(0,1) (1,1) (0,1) (1,1)
(0,0) (1,0) (0,0) (1,0)
AND OR
La neurona - XOR
(0,1) (1,1)
(0,0) (1,0)
XOR
La neurona - XOR
(0,1) (1,1)
(0,0) (1,0)
XOR
La neurona - XOR
(0,1) (1,1)
(0,0) (1,0)
XOR
La neurona - XOR
1
W(1)
b 1
W(2)
b
X1 Σ
Salida
X2 Σ
1
b
Σ
Arquitectura de
una red neuronal
Redes neuronales - Capas
Capas ocultas /
hidden layers
Capa de entrada /
Input layer
Capa de salida/
Output layer
Redes neuronales - Capas
Capas ocultas /
hidden layers
Capa de entrada /
Input layer
Capa de salida/
Output layer
Características Características
Generales Especificas
Redes neuronales - Vectores
W1
W2
W3 W4
W1
W2
W3
W4
W1
W2
W3
W4
Redes neuronales - Vectores
W1
x1,
W2
W3 W4
W1
W2
w1,w2,w3,w4 x2,
W3
w1,w2,w3,w4
W4
w1,w2,w3,w4 x3,
W1
W2
W3
W4
x4
Redes neuronales - Vectores
x1,
w1,w2,w3,w4 w1x1+w2x2+w3x3+w4x4
w1,w2,w3,w4
x2, w1x1+w2x2+w3x3+w4x4
w1,w2,w3,w4 x3, w1x1+w2x2+w3x3+w4x4
x4
Redes neuronales - Vectores
w1x1 + w2x2 + w3x3 + w4x4 + b a
w1x1 + w2x2 + w3x3 + w4x4 + b b
w1x1 + w2x2 + w3x3 + w4x4 + b c
Redes neuronales - Matrices
Redes neuronales - Matrices
(3,4) (4,3)
5,2,6
3,2,4,5 96,42,64
7,3,1 114,41,95
3,4,1,9
8,5,1 116,51,55
6,9,2,1
7,2,8
3*5 + 2*7 + 4*8 +5*7 = 96
3*2 + 2*3 + 4*5 +5*2 = 42
3*6 + 2*1 + 4*1 +5*8 = 64
Redes neuronales
X1
X2
Redes neuronales
X1
X2
Funciones de
activación
Redes neuronales
X1
X2
Funciones de activación
Discretas Continuas
Conjunto finito de Valores dentro de
valores algun intervalo
La neurona - AND
X1
2
Σ Función de Salida
X1*Wx1 + X2*Wx2 + b activación
1
X1 X2 Σ Activation Salida
X2
1 0 1*2 + 0*1 - 3 F(x) 1, -1 >= 0 0
0, -1 < 0
b -3 0 1 0*2 + 1*1 - 3 F(x) 1, -2 >= 0 0
0, -2 < 0
1
0 0 0*2 + 0*1 - 3 F(x) 1, -3 >= 0 0
0, -3 < 0
1 1 1*2 + 1*1 - 3 F(x) 1, 0 >= 0 1
0, 0 < 0
Función
escalón/escalonada/threshold
Función signo/signum
Función sigmoidal/sigmoid
Función tangente
hiperbólica/tanh
Función lineal rectificada/ReLU
Softmax
W
1
W
2
W W
3 4
W
1.6 0.51
W 1
2 Z 0.55 0.18
WW
3 4
0.98 0.31
W
W1
2
W
3 W
4
Función de pérdida
Función de pérdida
Data
Weights Capa 1
Weights Capa 2
Predicción
Función de pérdida
Data
Weights Capa 1
Weights Capa 2
Predicción Valor real
Función de
pérdida
MSE - Mean squared error
MSE - Mean squared error
MSE - Mean squared error
Error
Cross Entropy
Verdad Predicción
1 0.5
Log(0.5) = −0,301029996
0 0.3 p(x0) = 1 0,301029996
0 0.2
Función de pérdida
Data
Weights Capa 1
Weights Capa 1
Predicción Valor real
Función de
pérdida
Descenso del
gradiente
Descenso del gradiente
Función de pérdida
Peso inicial
Minimo global
Descenso del gradiente
Descenso del gradiente
Learning rate
Función de pérdida
Peso inicial
Minimo global
Descenso del gradiente -
Learning rate
Descenso del gradiente
Descenso del gradiente -
Mínimos
Función de pérdida
Mínimo local
Mínimo global
Momentum
Función de pérdida
Mínimo local
Mínimo global
Descenso del gradiente -
Optimizadores
Descenso del gradiente
Descenso del gradiente
Descenso del gradiente
Descenso del gradiente
Descenso del gradiente
Descenso del gradiente
Backpropagation
Backpropagation
Data
Pesos Capa 1
Pesos Capa 2
Actualizar
pesos
Predicción Valor real
Función de
Optimizador
pérdida
Backpropagation
Capas ocultas /
hidden layers
Capa de entrada /
Input layer
Capa de salida/
Output layer
Backpropagation
Backpropagation
Backpropagation
Backpropagation
Backpropagation
Backpropagation
¿Cómo distribuimos
este error?
Backpropagation
Backpropagation
Backpropagation - Derivadas
parciales
Costo(Activación(z))
Error
Backpropagation - Derivadas
parciales
Backpropagation -
Derivadas parciales
Playground -
Tensorflow
Dimensiones,
tensores y reshape
Dimensiones de los datos
Tensor
Matrix
Scalar Vector
dim = 0 dim = 1 dim = 2 dim = 3 dim = n
Matrix - 2d
(Ejemplos, Características)
Tensor - 3d
(Ejemplos, Serie de tiempo, Características)
Características
Ejemplos
Serie de tiempo
Tensor - 4d - Images
(Ejemplos, Ancho, Alto, Canales de
color)
Canales
Alto
Ejemplos
Ancho
Creando nuestra red
neuronal usando
numpy y matemáticas
Manejo de datos
Train, validation y test
Manejo de los datos
ENTRENAMIENTO TEST
Manejo de los datos
ENTRENAMIENTO VALIDACIÓN TEST
Set de datos de validación
Set de datos de test
TEST
Resolviendo un problema
de clasificación binaria
Entrenamiento del
modelo de clasificación
binaria
Regularización -
Dropout
Overfitting
Overfitting
Overfitting
Regularización
Regularización
Reducir la complejidad
en el modelo
Regularización
W1 W1
Regularización
Regularización
Dropout
Dropout
0.5 2.1 0.6 1.5 0 2.1 0.6 0
0.6 0.2 1.1 2.3 0 0.2 0 2.3
Dropout 50%
3.0 0.8 1.5 1.2 3.0 0 1.5 0
2.2 0.7 2.2 0.9 2.2 0 0 0.9
Dropout
Reduciendo el
overfitting
Resolviendo un problema
de clasificación múltiple
Entrenamiento del
modelo de clasificación
múltiple
Resolviendo un
problema de regresión
Entrenamiento del
modelo de regresión
Análisis de resultados
del modelo de regresión
¿Qué sigue por aprender
de redes neuronales?
¿Qué funciones utilizar?
Más por aprender
- CNN (Convolutional neural network)
- NLP (Natural language process)
- Sequences
- Hyper parameters tuning
- Gans (Generative adversarial networks)
- LSTM (Long short-term memory)
- Callbacks
- Tensorboard
- Y un mundo más de posibilidades
Carlos Andrés Alarcón
@Alarcon7a