26 octubre 2018

Machine Learning, introducción de Alejandro Arranz

Uno cuando lee artículos de Machine Learning puede quedar impresionado por los casos que describen en sus logros gracias a los altgorismos que emplean, pero Alejando Arránz quiso quitar tanta "mitología" y desarrolló su charla como de una manera más sencilla y cercana haciendo una introducción a los de conceptos básicos que emplea

Se presentó como informático programador que trabaja en Datahack Labs en labores de consultoría aunque también daba algunas clases, pero no era su principal función, además nos dijo que no se consideraba más inteligente que los demás sino que simplemente le pone empeño a las cosas en las que trabaja.

Alejandro Arranz
Alejandro Arranz


Empezó con dos definiciones de Machine Learning; la primera como "La ciencia (y el arte) de programar máquinas de manera que estas puedan aprender a partir de los datos".

Por "arte" él entiende que no hay una lista de reglas, sino que depende de los problemas que uno se enfrenta; uno va, con la práctica, creando estrategias y trucos que has experimentado en otros problemas similares, pero no existe un libro donde estén todas las soluciones.

Nos dijo que las personas que se adentran en el mundo del Machine Learning y vienen la parte técnica y de programación, informática, ingeniería... se tienen que enfrentar a un nuevo paradigma porque están acostumbrados a escribir órdenes para máquinas, pero si se enfrentan a Machine Learnin y surgen discrepancias a lo esperado no debe de entenderlas como errores cometidos en su "programación" sino que es la máquina la que va aprendiendo con los datos produciendo "resultados inesperados". No so fallos en "su programación".

Meetup con asistentes a Introducción Machine Learning en Datahack Sevilla
Meetup con asistentes a Introducción Machine Learning en Datahack Sevilla
Otra definición que dio para ML, un poco más técnica, era considerar la fórmula ETR.
E de Experiencia. cuanto más datos vea la máquina con relación a una T (tare) mejor va a ser los resultados (R)

Alejandro nos explico que el ML no es algo nuevo, o por lo menos los fundamentos de su uso se empezaron a usarse cuando los correos se empezaron a llenar de spam y algunos mensajes eran clasificados como tal por detectar palabras y expresiones comunes siguiendo un proceso.

- Detección de palabras
- Codificar algoritmo de detención para todos los patrones detectados.
- Probar el programa y repetir los dos pasos anteriores hasta que el resultado sea bueno.

Este proceso heredado del filtro de correo que ha heredado Machine Learning se le añade un elemento más llamado "Entrenar al modelo" (modelo matemático), que busque patrones y que sean más efectivos que el que haríamos nosotros y, además, se añade una tercera ventaja: la adaptación al cambio, ya que pueden aparecer nuevas reglas. El modelo tiene que aprender y adaptarse.
Pero cuidado, siempre tiene que haber un control para vigilar los datos que le suministremos porque puede ocurrir a veces como le ocurrió a un bot de Microsft, que aprendió de una manera tan inesperada que, al cabo de 24 horas la conversación con el robot, sus expresiones y mensajes derivaron en comentarios machistas, agresivos y xenófobos.

Hubo comentarios y preguntas a Alejandro durante su exposición con dudas y él confirmó algunos casos de errores en la identificación de patrones, como clasificar a dos personas negras como gorilas o el caso que uno de los asistentes comentó casos de machismo, pero dijo que el problema viene más de los sesgos de los datasets que se suministran a las máquinas, más que errores "de programación" (?)

Otras de las preguntas que se hizo era si era siempre necesario la intervención humana par vigilar al modelo, y confirmó que sí, que, a veces hay que realizar ciertos ajustes revisando los resultados y que las predicciones que está dando el modelo son persistentes y si los datos que se le suministra también lo son.

La máquina no solo aprende, el humano también aprende porque puede llevarnos a descubrir tendencias o relaciones que no sospechaba siquiera.

¿Cuando es buen momento para usar Machine Learning?
Cuando nos enfrentemos a problemas cambiantes, que necesiten muchas reglas, muchos datoss o sea humanamente muy difícil hacerlo.

Problemas y tipos de aprendizajes en Machine Learning


APRENDIZAJE SUPERVISADO Y TAMBIÉN PARA APRENDIZAJES NO SUPERVISADOS.
Para explicarlo introdujo dos conceptos, el de FEATURE y el de LABEL=TARGET.

Por feature explicó que serían los datos que se suministra, en caso del correo, sería por ejemplo, cuerpo del correo, asunto, la ip, etc, es decir, los datos que se le van a pasar. Y el LABEL o TARGET sería el resultado a lo que el modelo llegue, en caso del correo sería si es SPAM O NO SPAM.

En el aprendizaje supervisado es el humano el que ayuda al modelo dando las features y tambien las labels.

Sin embargo cuando se aplica el modelo hay que tener en cuenta que pueden surgir problemas, cuando los datos son insuficientes datos y si tenemos muchos o demasiados, ver que tipo de algoritmo puede ser mejor (según la cantidad).

Problemas con los datos
Distintos roblemas con los datos

Otro problema puede ser que lo datos no son representativos, y puso un caso ¿La satisfacción en la vida está relacionada con la renta percápita? y nos mostró un gráfico donde, con los datos reales (puntos azules) se elaboró un modelo diciendo que efectivamente, los países con renta per cápita lo eran, pero el problema se descubre que los datos no son representativos porque con el tiempo, las pruebas de nuevos resultados otros paises resultaron, que diendo más ricos, no estaban tan "feliz de la vida"
(eso se llama sampling noise).
Otro caso seria el sampling bias, cuando la muestra es grande pero el método no es adecuado, no había representativo.

Más problemas, com que se suministren Datos de baja calidad, como outliers que son valores que están muy distantes de los valores medios de la representación. ¿Pero como se gestionan? Se eliminan; pero ¿cómo definirlos? Depende del problema.

los Missig values, por ejemplo registros a los que le faltan algunos huecos, normalmente se dan valores concesuales, o entrenar modelos imputando valores disintos para distintos modelos.

Features irrelevantes. Por ejemplo meter en una base de datos del cliente el nombre del perro. o que países son más felices según las letras que contiene su nombre.

Pero también puede no existir correlación con una causa aparente. Puede existir otras variables ocultas que relaccione una causa con un resultado.
El machine learning dará variables lineales, el deep learning si daria las no lineales.

No solo con los datos podemos tener problemas, también puede ser por los altgoritmos los que nos den quebraderos de cabeza, lo llamados el OVERFITTING, es el riesgo de generalizar y no predecir nada más que los datos que le dan en el entrenamiento. Cuanto más complejo sea el modelo más fácil encontrar relaciones no lineales. Para ello suministraremos más datos.
Otra manera de solucionar el overfitting seria introducir REGULARIZACIÓN, es decir, limitar la libertad del modelo.

UNDERFITTING, otro problema porque se puede dar el caso de tener un modelo tan simple que no abarca la complejidad de los datos que manejamos. La solución sería si hemos metido regularizacion, aflojarla para dar más libertad al modelo.

Alejandro terminóo la última parte de su charla sobre Machine Learning hablando de TRAINING, VALIDACIÓN Y TEST

Pero no se quiso despedir de nosotros sin antes confesarnos que él fue alumno también de Datahack, nos enseñó hasta su diploma, y nos dio varias razones, eligió este máster por los profesores que lo imparten, auténticos profesionales dentro de su sector, por la parte práctica de las enseñanzas, por el trato humano que recibió desde el primer día y porque es un máster vivo, en continua mejora y cambio donde al alumno se le escucha para seguir mejorando.

Merchandaising Datahack
Regalitos, merchandaising que regaló Datahack a los asistentes
VIDEO próximamente: (Se está editando para solucionar un problema de sonido). Mientras se mejora podéis ver esta otra charla que dio en Madrid con relación al mismo tema.