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

Post on 24-Feb-2020

7 views 0 download

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

Machine Learning¿El fin de la programación?

Pablo Bruscopbrusco@dc.uba.ar

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?

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?

Sistemas expertos

Puercoespín

Aprendizaje Automático (Machine Learning)

Aprender a partir de ejemplos y experiencia …

… estas reglas tan complejas…

… ¿pero cómo?

Nociones básicas de Aprendizaje Automático

Parte 1

Queríamos un programa que ...

"Silla"

No "Silla"

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

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?

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

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)

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

Lleno de reglas

Entrenado

Aprendizaje supervisadoHacer predicciones

1 2 3

Entrenado

PESO 6.2 KG

COLOR Negro

#PATAS 4

DESCRIPCIÓN

97%

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?

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?

….

¿Qué es lo que realmente hacen los clasificadores?

Parte 2

¿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

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

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

Algoritmo I

¿Qué pinta tiene un clasificador?

Algoritmo II

¿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,

La era de Deep Learning (Aprendizaje Profundo)

Parte 3

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

Deep learning

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?

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?

Entonces ...

¿Se acabó el trabajo para nosotros?

Parte 4

¡NO!

Aún somos muy necesarios

¿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.

Parte 5Qué hacemos en nuestro

laboratorio.

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

- 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

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.

pbrusco@dc.uba.arhttp://habla.dc.uba.arhttp://liaa.dc.uba.ar

¡GRACIAS!

Pablo Brusco