¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis…...

35
Machine Learning ¿El fin de la programación? Pablo Brusco [email protected]

Transcript of ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis…...

Page 1: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Machine Learning¿El fin de la programación?

Pablo [email protected]

Page 2: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Algunos problemas… ● ¿N es múltiplo de 2017?● ¿N es primo?● Encontrar el máximo en una lista.● Ubicar 8 reinas en un tablero y que no se ataquen. ● Ubicar antenas de radio para lograr que no haya interferencias.● Dados 10.000.000 de tweets, ¿cuántos nombran a Messi?● Dada la descripción de un objeto de mi living, ¿es una silla?

Page 3: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Hay problemas con reglas tan complejas que no podemos atacarlos con programación clásica…

¿Qué pasó?¿En qué materia aprendo lo

necesario para reconocer sillas?

Page 4: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Sistemas expertos

Puercoespín

Page 5: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Aprendizaje Automático (Machine Learning)

Aprender a partir de ejemplos y experiencia …

… estas reglas tan complejas…

… ¿pero cómo?

Page 6: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Nociones básicas de Aprendizaje Automático

Parte 1

Page 7: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Queríamos un programa que ...

"Silla"

No "Silla"

Page 8: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Queríamos un programa que ...

"Silla"

PESO 5.3 KG

COLOR Negro

#PATAS 5

PESO 12.4 KG

COLOR Blanco

#PATAS 4

DESCRIPCIÓN

DESCRIPCIÓN

No "Silla"

Clasificador

Predicción

Toma datos como entrada, devuelve etiquetas como salida

Predicción

Page 9: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Queríamos un programa que ...

"Silla"

PESO 5.3 KG

COLOR Negro

#PATAS 5

PESO 12.4 KG

COLOR Blanco

#PATAS 4

DESCRIPCIÓN

DESCRIPCIÓN

No "Silla"

Clasificador

Predicción

Toma datos como entrada, devuelve etiquetas como salida

Predicción

Entonces, ¿hay que programar el clasificador?

Page 10: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Aprendizaje supervisado

Nombre de la técnica que se utiliza para construir los clasificadores de manera automática. Tres pasos fundamentales.

Juntar datos Entrenar un clasificador

Hacer predicciones

1 2 3

Primer paso Segundo paso Tercer paso

Page 11: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Atributos(features)

Aprendizaje supervisadoRecolección de datos

1 2 3

PESO COLOR #PATAS ¿Es Silla?

3.4 Marrón 3 Sí

10.2 Varios 2 No

4.5 Verde 4 No

5.2 ??? 4 Sí

3.2 Marrón 3 No

... ... ... ...

Etiqueta

Instancias(ejemplos)

Page 12: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Aprendizaje supervisadoEntrenar un clasificador

1 2 3

Un clasificador puede ser pensado como una caja de reglas…

PESO COLOR #PATAS Siila?

3.4 Marrón 3 Sí

10.2 Varios 2 No

4.5 Verde 4 No

5.2 ??? 4 Sí

3.2 Marrón 3 No

... ... ... ...

Vacía al principio Lleno de reglas

Entrenado

Page 13: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Lleno de reglas

Entrenado

Page 14: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Aprendizaje supervisadoHacer predicciones

1 2 3

Entrenado

PESO 6.2 KG

COLOR Negro

#PATAS 4

DESCRIPCIÓN

97%

Page 15: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Aprendizaje supervisadoHacer predicciones

1 2 3

Entrenado

PESO 6.2 KG

COLOR Negro

#PATAS 4

DESCRIPCIÓN

97%

Deep Blue le ganó a Kasparov (1996) …

… pero, ¿podría hacer otra cosa?

¿Cómo modificamos lo anterior si se modifica el problema?

Page 16: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

RECOLECCIÓN DE DATOS

¿Hay suficientes datos?

¿Los datos están balanceados?

¿Sobre cuántos entreno mis modelos?

¿Sobre cuántos valido mis modelos?

¿Qué pinta tienen los datos?

...

Aprendizaje supervisadoPuntos a tener en cuenta

CLASIFICACIÓN

¿Elegí el algoritmo adecuado?

¿Con qué parámetros tiene sentido tunearlo?

¿Cómo puedo testearlo?

¿Puedo reutilizar un clasificador ya entrenado?

….

PREDICCIÓN

¿Cómo mido mis resultados?

¿Son resultados que generalizan al problema en el mundo exterior?

¿Qué métricas conviene utilizar?

¿Puedo medir significancia estadística?

¿Es comparable mi resultado con otros resultados similares?

….

Page 17: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

¿Qué es lo que realmente hacen los clasificadores?

Parte 2

Page 18: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

¿Qué pinta tienen los features?Formas de extraer features

(Peso, #Patas, Material) PESO 9

#PATAS 4

MATERIAL 0

Mesa

Maceta

PESO 2

#PATAS 0

MATERIAL 2

PESO 4.2

#PATAS 3

MATERIAL 1

Silla

PESO 10

#PATAS 3

MATERIAL 2

Mesa

Page 19: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

¿Qué pinta tienen los features?Formas de extraer features

(Peso, Color, #Ruedas) (Material, #Ojos, #Ruedas)(Peso, #Patas, Material)

Page 20: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Algoritmo I

¿Qué pinta tiene un clasificador?

Algoritmo II

Page 21: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

¿Qué pinta tiene un clasificador?

● Se decide la forma (algoritmo).● Se buscan parámetros óptimos.● Se programa la infraestructura.

Algoritmo I ¿Cómo lo programo?

No se programan,

Page 22: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

La era de Deep Learning (Aprendizaje Profundo)

Parte 3

Page 23: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

12 42 15 23

14 42 42 14

24 23 23 24

14 41 42 42

Silla

Perro

Ahora un poco más difícil...

13 32 13 23

234 42 244 14

24 243 2 24

14 42 4 42

FOTO

FOTO

Page 24: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Deep learning

Page 25: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

No viene gratis…

● Necesitamos muchos datos etiquetados. ● Necesitamos mucho poder de cómputo.● El modelo resultante suele ser muy complejo y opaco.

➢ ¿Quiénes salen ganando con estas restricciones?➢ ¿Sirve para hacer ciencia? ➢ ¿Sirve para problemas muy específicos?

Si quiero entender cómo un cerebro procesa imágenes… ¿puedo partirlo en 2 y fijarme?

Page 26: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

No viene gratis…

● Necesitamos muchos datos etiquetados. ● Necesitamos mucho poder de cómputo.● El modelo resultante suele ser muy complejo y opaco.

➢ ¿Quiénes salen ganando con estas restricciones?➢ ¿Sirve para problemas muy específicos?➢ ¿O sea, no puedo hacer nada si no soy Google? ➢ ¿Puedo aprovechar redes pre-entrenadas?

Page 27: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Entonces ...

¿Se acabó el trabajo para nosotros?

Parte 4

Page 28: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

¡NO!

Aún somos muy necesarios

Page 29: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

¿Dónde?

➢ Somos necesarios para construir infraestructura alrededor de estos sistemas.

➢ Se necesitan técnicas de computación "clásica" para problemas muy específicos o complejos.

➢ Somos necesarios para estudiar la mejor forma de utilizar ML. ➢ Se necesita técnicas de computación para entender los

problemas y encontrar la mejor solución, ya sea con o sin aprendizaje automático.

➢ Diseñamos y escribimos esos algoritmos para aprender.

Page 30: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Parte 5Qué hacemos en nuestro

laboratorio.

Page 31: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

TEXTO

PSIQUIATRIA COMPUTACIONAL

TENDENCIAS CULTURALES

EXPRESIONES COGNITIVAS

MODELADO DE TÓPICOS

HABLA

PROSODIA

MIMETIZACIÓN

CONFIANZA

PRONUNCIACIÓN

CEREBRO

PSICOLOGÍA EXPERIMENTAL

MODELOS COGNITIVOS

EYE-TRACKING

ELECTROENCEFALOGRAMA

Page 32: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

- Machine Learning complementa al estilo de programación clásico para poder atacar "nuevos" problemas.

- No es magia negra, es un conjunto de técnicas y conocimiento para lo cual hace falta práctica y problemas interesantes.

- Hay mucho trabajo por hacer y cada vez se necesita más gente que sepa de estos temas.

CONCLUSIONES

Page 33: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

Y.. ¿cómo arranco si quiero resolver estos problemas?● ¿Qué lenguajes me recomendás? ● ¿Qué libros me recomendás?● ¿Puedo aprender de Youtube?● ¿Puedo aprender de Coursera?

LENGUAGES

➢ Python (+ sklearn).➢ R (+ caret).

LIBROS

➢ Mitchell, "Machine Learning", McGraw-Hill, 1997.➢ James, Witten, Hastie & Tibshirani, "An

Introduction to Statistical Learning with Applications in R", 6th ed, Springer, 2015.

➢ Bishop, "Pattern Recognition and Machine Learning", Springer, 2006.

COURSERA

➢ Andrew Ng: Machine Learning.➢ Dan Jurafsky & Chris Manning: Natural Language

Processing.

Page 34: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante
Page 35: ¿El fin de la programación?habla.dc.uba.ar/pbrusco/charla_ml_pbrusco.pdfNo viene gratis… Necesitamos muchos datos etiquetados. Necesitamos mucho poder de cómputo. El modelo resultante

[email protected]://habla.dc.uba.arhttp://liaa.dc.uba.ar

¡GRACIAS!

Pablo Brusco