Modelos de Machine Learning, ¿aprenden solos?

En los últimos años, y en particular en este, han proliferado los artículos y noticias acerca de la Inteligencia Artificial y los algoritmos de Machine Learning. Lo más fascinante es la capacidad de estos para crear modelos analíticos que doten de “inteligencia” a las máquinas.

Y la pregunta clave que me viene a la cabeza es, ¿aprenden solos los algoritmos? la respuesta puede ser un simple: ¡por supuesto que sí!, pero yo prefiero decir: Exactamente igual que si dejas a tus hijos todo el día delante de la televisión, aprenderán solos, por supuesto. Aunque La pregunta que tendría que preocuparnos es ¿qué están aprendiendo?, y nos surgiría la pregunta de si el método de enseñanza es el adecuado. ¿No sería más razonable acompañar a la máquina o al niño en su aprendizaje?, en caso contrario nos podría pasar como a Tay, la inteligencia artificial de Microsoft que aprendió y aprendió, hasta ser racista, antisemita y homófoba y todo esto, en menos de un día de aprendizaje en twitter.

En este sentido, es importante destacar el aspecto docente que el científico de datos debe poseer para poder educar, formar y/o enseñar a la máquina.

El Aprendizaje Automático, término castellano de la disciplina Machine Learning, se centra en enseñar a una computadora a resolver problemas mediante la presentación de ejemplos, exactamente igual que se hace con los niños a los que les enseñamos con ejemplos la lógica para resolver un problema concreto. Y para esto es conveniente seguir una metodología que asegure no sólo que el modelo aprende, sino que es capaz de poner en valor ese aprendizaje.

El aprendizaje es un proceso iterativo en donde se fija un objetivo de aprendizaje y mediante técnicas de estudio se van desarrollando los conocimientos necesarios para alcanzar el objetivo fijado.

Vamos a profundizar un poco en los problemas docentes que surgen durante la construcción de un modelo.

El objetivo

El primer paso es fijar el objetivo del aprendizaje, ¿qué es lo que debe aprender el modelo?, esto puede parecer muy sencillo, pero valdrá un ejemplo para corroborar que no es tan sencillo. El modelo de churn es un modelo habitual en el que se aborda el abandono de los clientes. Cuando un científico de datos oye la palabra churn comienza a establecer el planteamiento del problema y fija su objetivo.

Puedes haber pensado en hacer un modelo que prediga los clientes que van a abandonar, puedes estar pensando en un modelo que indique los motivos de abandono, incluso podríamos pensar en realizar un modelo que nos indique la acción a realizar con cada cliente para minimizar el abandono o determinar los cambios a realizar en los productos o servicios que reducen la intención de abandono. Cada planteamiento es diferente, los datos necesarios son diferentes, las técnicas también.

Por tanto, es muy importante tener claro desde el principio cual es el objetivo y como se pondrá en valor dicho modelo de abandono. La célebre frase del matemático y estadístico Tuckey: “es mejor una solución aproximada al problema correcto que una solución exacta al problema aproximado”, deja claro que la fijación del objetivo adecuado es lo que más valor aporta.

Pero no sólo con conocer el objetivo es suficiente. Incluso en el caso habitual de crear un modelo predictivo que prediga los clientes que van a abandonar, es muy importante definir que es el abandono y como cuantificarlo. Si se considera el ejemplo de un supermercado, ¿Cuándo abandona el cliente? Puede ser cuando deja de comprar, o ¿hay que esperar una semana o un mes para declarar al cliente en abandono?, la respuesta no es trivial y requiere de un gran conocimiento del negocio y una alineación con las acciones a realizar.

Aprender o memorizar

Una vez fijado el objetivo del modelo, comienza la fase de entrenamiento, esa fase en la que el científico de datos enseña al modelo basándose en ejemplos pasados que permitan preparar al modelo para enfrentarse a situaciones futuras, del mismo modo que los niños aprenden en el colegio conceptos que se encontrarán en el futuro en su vida.

El proceso de aprendizaje en los ordenadores es idéntico al que realizan las personas: Clases magistrales del profesor, materiales, libros y apuntes puestos a disposición del alumno (en nuestro caso datos de entrenamiento) y técnicas de aprendizaje para asimilar dichos conocimientos (en nuestro caso algoritmos de aprendizaje supervisados o no).

Pero al igual que los niños, los modelos tienen dos alternativas: memorizar o aprender. En el primer caso, si el alumno o modelo memoriza una serie de ejemplos será capaz de resolver un caso futuro que sea idéntico a uno memorizado. Sin embargo, en el segundo caso, si aprende será capaz de comprender el problema para poder afrontar problemas diferentes que comparten alguna parte en común. Por supuesto, es mucho más difícil aprender que memorizar, pero aporta más valor. Con un sencillo ejemplo podremos ver la diferencia.

Si la tarea a realizar es realizar la siguiente operación matemática: 5*8, una máquina que se haya entrenado con las tablas de multiplicar siempre lo resolverá correctamente indicando 40, no importa las veces que se le pida. Los ordenadores memorizan muy bien.

Pero cuando se trata de aprender a resolver el problema, la cosa se complica. Si le planteamos a un ordenador el siguiente problema: En una sala hay 5 niños y cada uno tiene 8 caramelos. ¿Cuántos caramelos tienen entre todos?

El problema es el mismo, se reduce a la misma multiplicación. Pero el ordenador tiene que ser capaz de entenderlo y resolverlo. Se podría resolver por fuerza bruta (memorizando), enseñándole que para esa frase la respuesta es 40, pero si se cambia caramelos por patatas no sabría cómo resolverlo. Este método no es el adecuado si lo que se pretende es “ser inteligente” puesto que la máquina tendría que memorizar todas las preguntas posibles junto con sus posibles respuestas. Esta es una práctica habitual en el desarrollo actual de chatbots, a los que se les “entrena” con infinidad de preguntas y respuestas establecidas.

El reto real es conseguir que la máquina aprenda a resolver estos problemas y no a memorizarlos. Por tanto, los científicos de datos deben asegurar que los modelos no son fruto de la memorización sino del aprendizaje. Para ello es necesario comprender qué ha aprendido el modelo mediante una evaluación adecuada.

La evaluación

Tras el periodo de aprendizaje, conocido como entrenamiento del modelo, hay que evaluar el aprendizaje del alumno, esto siempre se ha hecho mediante exámenes de conocimiento donde el alumno se enfrenta a problemas similares a los estudiados, aunque no idénticos (conjunto de datos de validación). El alumno puede aprobar el examen, que como en la vida real no significa que lo sepa todo, sino que ha superado un umbral de aciertos, por ejemplo, un 5 sobre 10 (para un modelo podrían fijarse distintos umbrales, por ejemplo, superar 0,75 de AUC, 80% de acierto o que su WMAPE ser inferior a 0,05).

Pero ¿qué ocurre si el alumno no aprueba?, esto puede y suele ocurrir al menos la primera vez. En este caso, el alumno vuelve a estudiar (mismos datos de entrenamiento) utilizando otras técnicas de aprendizaje (más algoritmos) y volviendo a presentarse al examen una y otra vez (datos de validación) hasta que apruebe, como en la vida misma. Al final el profesor coge cariño al alumno (máxime si es el padre como en el caso del modelo) y está deseando que apruebe para mostrarle a todo el mundo lo que ha aprendido su alumno.

Este proceso puede que haga que el alumno aprenda del propio proceso de evaluación y memorice parte de los exámenes. Por lo que hay que asegurarse que un ente imparcial valide el resultado del aprendizaje. Para ello sería conveniente poner un examen adicional y único (no repetible) al que el alumno se enfrentase una única vez que permitiese asegurar que el alumno ha aprendido y no memorizado, similar a una selectividad. Es condición necesaria, que no suficiente, que este examen difiera lo máximo posible de todo el proceso anterior para asegurar la imparcialidad (conjunto de datos de testeo).

En este proceso la experiencia docente del científico de datos es clave para detectar los errores que comete el alumno y ser capaz de guiar el aprendizaje e identificar los motivos de los errores del modelo, para que su análisis posterior ayude a mejorar el aprendizaje. Por ejemplo, si seguimos con el ejemplo de las tablas de multiplicar y vemos que un alumno falla sistemáticamente todas las multiplicaciones en las que aparece un 7, tendremos que modificar los materiales de estudio para hacer más hincapié en la tabla del 7.

Además, se tendrá que asegurar que lo aprendido sirve para alcanzar el objetivo de aprendizaje establecido inicialmente. Para lograrlo, se tiene que ser capaz de responder a la pregunta, ¿el modelo ha aprendido el objetivo establecido inicialmente?, para esto es necesario establecer una buena metodología de evaluación, que asegure el aprendizaje del modelo, evitando la memorización.

Conclusión

El científico de datos se enfrenta a varios retos formativos a la hora de entrenar un modelo. Es fundamental que el científico de datos sea capaz de plantear el objetivo de aprendizaje, la metodología docente y las evaluaciones. Finalmente tiene que comprender lo que ha aprendido el modelo antes de ponerlo en producción. Esto último es taxativo cuando se utilizan algoritmos complejos que no tienen una interpretación sencilla (también llamados cajas negras).

Por desgracia, últimamente compruebo que aumenta la tendencia de resolver los problemas incluyendo más y más datos, cuantos más datos mejor y algoritmos más complejos, volviendo a los clásicos “la letra con sangre entra” o “hincar los codos hasta que sangren”, despreciando el trabajo metódico y delicado del buen profesor.

Y yo me pregunto, si tan buenos resultados tienen con los niños, ¿cuándo vamos a tratar de introducir las técnicas docentes en el entrenamiento de modelos? Enseñar de forma adecuada y evaluar aprendizajes tienen que ser dos capacidades intrínsecas del científico de datos.

Yo, como padre, he decidido que mis hijas vean poca televisión, se duerman a las 21 y vayan a un colegio donde les enseñen profesionales de la docencia. Seguro que con la televisión aprenderían muchas cosas, pero a mí me preocupa lo qué aprenden y como lo aplican y no sólo la cantidad aprendida o que simplemente aprendan. Como científico de datos, me preocupa el qué y cómo aprenden mis modelos. El aprendizaje debe ser el adecuado para asegurar que son capaces de resolver los problemas planteados. Tienen que estar preparados para el día a día que se les avecina y no sólo resolver un examen preparado por el propio padre del modelo.

La imagen de la portada se ha extraído de aquí


One response to “Modelos de Machine Learning, ¿aprenden solos?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s