Machine Learning¿El fin de la programación?
Pablo [email protected]
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.