Catecbol www.catecbol.com
Capacitación Tecnológica Científica para Bolivia facebook.com/catecbol
@catecbol
[email protected]
Introducción a Deep Learning Diego Collarana Alemania
La unión es la fuerza
1
Introducción Personal – Diego Collarana Estudios • • • •
UCB (Pre-grado) UPM (M.Sc.) TUK (M.Sc.) Uni-Bonn (Ph.D.)
Experiencia en Investigación • • • •
OEG DFKi Fraunhofer IESE Fraunhofer IAIS
Experiencia en la Industria • MedSpazio Corp • PirAMide SRL
Área de Investigación: Integración y análisis de datos para las empresas, usando tecnologías semánticas y deep learning. País de residencia: Alemania 2
Introducción Personal – Diego Collarana Acerca de Fraunhofer-Gesellschaft ● De los centros de investigación más grandes del mundo. (2€ billones anuales) ● Centros en toda alemania y el mundo ● Investigación aplicada y transferencia de tecnología ● 2/3 del financiamiento deben ser generados por contratos con la industria. El 1/3 restante es provisto por el gobierno federal. ● Hacemos investigación + innovación + emprendimiento 3
Introducción Personal – Diego Collarana Acerca de Fraunhofer-Gesellschaft ● De los centros de investigación más grandes del mundo ● Centros en toda alemania y el mundo ● Investigación aplicada y transferencia de tecnología ● 2/3 del financiamiento deben ser generados por contratos con la industria. El 1/3 restante es provisto por el gobierno federal. ● Hacemos investigación + innovación + emprendimiento 4
Introducción Personal – Diego Collarana Acerca de Fraunhofer-Gesellschaft
Ruta de Aprendizaje
Ruta de Aprendizaje
● Nos enfocaremos en los conceptos fundamentales sin entrar en detalles matemáticos ● Se proveerán referencias a los fundamentos matemáticos ● Ningún framework se utilizará en este webinar
Preguntas
Agenda
1/6
Motivación ● ¿Qué es Deep Learning? ● ¿Por qué es importante aprender Deep Learning? ● ¿Que puedo hacer con Deep Learning?
9
Motivación ¿Por qué es Deep Learning hoy un Hot-Topic? ● Deep Learning está generando tanta emoción es por su aparentemente ilimitada aplicabilidad ● Ha hecho posible cosas que suenan a ciencia ficción, como vehículos auto-manejados, Diagnóstico por imágenes o Reconocimiento de Voz ● La automatización es el futuro de las aplicaciones, y Deep Learning es el futuro de la automatización ● Deep Learning combina la belleza teórica de la matemáticas, con poderosas aplicaciones
10
Motivación ¿Por qué es Deep Learning hoy un Hot-Topic? Ahora tenemos muchos datos para entrenar y tenemos poder de cómputo más barato y accesible para todos
11
Motivación ¿Por qué es Deep Learning hoy un Hot-Topic? Ahora tenemos muchos datos para entrenar y tenemos poder de cómputo más barato y accesible para todos
12
Motivación ¿Por qué debo aprender Deep Learning?
1) Para obtener un buen trabajo
2) Para hacer un emprendimiento
3) Para hacer bien social
13
Motivación ¿Por qué debo aprender Deep Learning?
1) Para obtener un buen trabajo
● Todos las grandes empresas están usando Deep Learning ● Los gigantes tecnológicos están pagando salarios espectaculares a gente con experiencia en Deep Learning ● En las plataformas de Freelance a uno no le faltará trabajo, y con muy buena remuneración.
[1] https://www.nytimes.com/2017/10/22/technology/artificial-intelligence-experts-salaries.html 14
Motivación ¿Por qué debo aprender Deep Learning?
● Las aplicaciones y servicios que se pueden producir son ilimitadas 2) Para hacer emprendimiento
● Cualquier start-up en la actualidad tiene que tener algo de A.I. ● Ejemplo DeepL Translator ha sido capaz de vencer a los grandes como Google, o Microsoft en su propio juego
[1] https://www.deepl.com/translator 15
Motivación ¿Por qué debo aprender Deep Learning?
● Puedes desarrollar aplicaciones que ayuden a la sociedad 3) Para hacer bien social
● CheXNet es capaz de detectar Neumonía en Rayos-X del pecho mejor que los radiólogos.
[1] https://stanfordmlgroup.github.io/projects/chexnet/ 16
Aplicaciones con Deep Learning Tipos de tareas que se pueden resolver con Deep Learning
Classification
Regression
Clustering
Predicción de precios de casa
17
Ejemplo de una aplicación
● En estados unidos los conductores pasan 8 billones de horas al año en embotellamientos. ● Deep Learning puede ayudar, con una modelo que sepa manejar el auto automáticamente ● El Auto ve el mundo a través de cámaras y sensores y toma decisiones en base a estos datos ● https://selfdrivingcars.mit.edu/deeptrafficjs/ 18
Agenda
2/6
Conceptos básicos ● ● ● ●
¿Qué es Deep Learning? Aprendizaje Supervisado (Supervised Learning) Arquitectura de un modelo Deep Learning ¿Cómo aprenden los modelos Deep Learning?
19
¿Qué es Deep Learning? ● Es una rama de Machine Learning ● Es el estado-del-arte en Computer Vision, Reconocimiento de Voz, y Procesamiento de Texto. ● Es una familia de técnicas, para enseñar a las computadoras a hacer tareas q solo los humanos eran capaces de hacer. ● Está impulsando una gran evolución en los sistemas de software
20
Aprendizaje supervisado ● Es una de las técnicas más efectivas en Deep Learning ● En esta técnica se trata de deducir una función a partir de datos de entrenamiento ● Los datos de entrenamiento esta etiquetados con los valores esperados de salida ● Tenemos X entradas y tratamos de predecir Y salidas X Entradas
Y Salidas
función f
1 (Es un Gato) 0 (No es un Gato)
21
Aprendizaje supervisado ● Es una de las técnicas más efectivas en Deep Learning ● En esta técnica se trata de deducir una función a partir de datos de entrenamiento ● Los datos de entrenamiento esta etiquetados con los valores esperados de salida ● Tenemos X entradas y tratamos de predecir Y salidas X Entradas User Information Add Information
Y Salidas
función f
1 (Va a ver el Ad) 0 (No va a ver el Ad)
22
Arquitectura de un modelo Deep Learning ● Una Red Neuronal está compuesta de pocos (pero importantes) elementos ● Importados de la biología del cerebro
23
Arquitectura de un modelo Deep Learning
24
Una neurona
z
Función lineal con pesos (W) y bia (b)
a
Funcion de activacion
[*] Notacion tomada de ANDREW NG https://www.deeplearning.ai/ 25
Funciones de activación Sigmoid
Tanh
g(z) = max(0, z)
RELU 26
Intuición de por qué funcionan los modelos DL Intuición de cómo NN encuentra patrones en los datos y aprende de estos patrones Patrones Simples
Patrones Complejos
27
Building Blocks Nuestros inputs pasan por la red y predicen un valor 1. Forward Propagation
Se actualizan los pesos de las neuronas
Se calcula que tambien lo estamos haciendo
4. Update Parameters
2. Loss & Cost Function
con un Learning Rate
Se calcula el nuevo paso a dar 3. Backward Propagation Gradient Descent
28
Gradient Descent ● El proceso de aprendizaje se traduce en un problema de optimización ● Queremos que el Loss Function sea el menor posible ● El método más simple es Gradient Descent (GD), calculamos las derivadas de los pesos que hemos definido
dz[1] dw[1] da[1] db[1]
dz[2] dw[2] da[2] db[2]
dz[3] dw[3] da[3] db[3]
dz[4] dw[4] da[4] db[4]
29
Gradient Descent ● Cuando calculas el GD, es como si dieras un pequeño paso en una cierta dirección, para llegar al punto más bajo posible ● En cada paso se calcula el gradiente y se actualizan los weights (w) y bias (b)
30
Vectorización ● Cómo entrenamos todos nuestros datos al mismo tiempo, sin hacer un loop? ● Usamos la técnica conocida como vectorización Cada columna es un dato de entrenamiento
31
Datos de entrenamiento Training Data
No Big Data
Todos tus datos 100%
70%
Test Data 30%
Training Data
Big Data
Todos tus datos 100%
98%
Test Data 2%
32
Agenda
4/6
Logistic Regression ● ¿Qué es un Logistic Regression? ● ¿Cómo se implementa? ● ¿Cuales son las limitaciones?
33
Clasificación Binaria
X(1)
Blue Green Red
X=
64
64
X(2)
X(m)
255 231 … 255 134 … 255 134 ... 64x64x3 = 12288
34
Modelo ● Logistic Classifier ● 1 Layer (Output Layer) ● 1 Neurona
X1 X2 X3 ….
Y Loss Function
Xn Cost Function 35
Pasos 1) Initialize Parameters training loop
2) Forward Propagation
4) Update Parameters
3) Loss Computation
4) Backward Propagation
36
Implementación
Implementaremos un Logistic Classifier desde cero usando solo numpy, y python 37
Agenda
5/6
Shallow Neuronal Networks
● ¿Qué es un Shallow Neuronal Network? ● ¿Cómo se implementa?
38
Clasificación de datos
Un clasificador de los puntos (rojo y azul) en nuestros datos
Modelo ● Shallow Neural Network ● 2 Layer (1 Hidden Layer + Output Layer) ● 4 Neuronas tanh(z)
X1 X2
Y
X3
Loss Function
Cost Function 40
Pasos 1) Initialize Parameters training loop
2) Forward Propagation
4) Update Parameters
Cache
3) Loss Computation
4) Backward Propagation
41
Implementación
Implementaremos un Shallow Neuronal Networks desde cero usando solo numpy, y python 42
Agenda
6/6
Conclusiones
43
Conclusiones 1. Pocos conceptos/componentes en un modelo DL, pero difícil de dominarlos. 2. Deep Learning es un proceso iterativo y experimental, se necesita entrenar varios modelos, por ende es necesario acelerar el aprendizaje 3. El tiempo de aprendizaje puede ser muy alto, en deep models (Speed-up techniques) 4. Muchos parámetros con los cuales jugar (Magia Negra) 5. Pueden sufrir diferentes problemas (Veremos en un próximo Webinar)
44
Recursos 1. Slides 2. Jupiter Notebooks https://github.com/collarad/deeplearning 3. Kaggle https://www.kaggle.com
45
Preguntas
46
Catecbol www.catecbol.com
Capacitación Tecnológica Científica para Bolivia facebook.com/catecbol
@catecbol
[email protected]
Gracias
[email protected] Diego Collarana
La unión es la fuerza
47