Machine learning: entendiendo las bases

Puntos principales
  • Machine learning no es una varita mágica que va a resolver todos los problemas automáticamente.
  • Para determinar cuándo puede ser útil es necesario entender cómo funciona y adentrarse en las matemáticas detrás de esta tecnología.
  • Es vital definir el problema que se quiere resolver, cómo se va a usar, y tener los datos adecuados para usar machine learning.
  • Una excelente forma de iniciar a entender esta tecnología es tomando el curso Machine Learning de Andrew Ng en coursera.

Los términos machine learning e inteligencia artificial se están volviendo cada vez más comunes. Existen muchos artículos en las redes que hablan sobre cómo las computadoras están adquiriendo la capacidad de analizar texto, datos, voz e imágenes de manera automática, lo cual permite generar una nueva gama de productos y aplicaciones.

También existe especulación sobre cómo estas tecnologías van a afectar el mercado laboral y sobre cómo las empresas (y países) que no las usen van a quedar poco a poco rezagadas. Hasta cierto punto todo esto tiene algo de verdad, pero también es importante entender cuáles son las limitaciones de esta tecnología, y qué tipo de problemas puede resolver.

Machine learning es una de las áreas que componen la inteligencia artificial. Kevin Murphy lo describe como un grupo de métodos que detecta de manera automática patrones en los datos, y después usa esos patrones ya sea para hacer predicciones en datos nuevos, o para tomar alguna decisión.

Por ejemplo, uno de los proyectos de nuestro grupo de investigación es el diagnóstico de esquizofrenia. Para eso analizamos imágenes cerebrales de personas sanas y personas con la enfermedad. Después usamos algoritmos de machine learning para que la computadora aprenda cuáles son los elementos que distinguen ambos grupos de personas. Finalmente, probamos qué tan bien aprendió la computadora pidiéndole que clasifique nuevas imágenes cerebrales y vemos el porcentaje de aciertos que tiene.

Paso 1: Definir el objetivo

Un punto básico para el uso de machine learning, es que necesitamos tener un objetivo bien definido. En nuestro ejemplo, ese objetivo es diagnosticar personas con esquizofrenia usando una imagen cerebral. Asimismo, necesitamos definir cómo vamos a evaluar nuestro sistemaEn nuestro ejemplo, vamos a medir el porcentaje de diagnósticos correctamente realizados.

Estas dos actividades son fundamentales y, aunque parecen simples, no lo son tanto. Por ejemplo, ¿Todos los errores son iguales?, ¿Es lo mismo decir que una persona tiene esquizofrenia, cuando en realidad está sano? ¿Qué hay del caso opuesto? Si son diferentes ¿Cómo cuantificamos la diferencia entre este tipo de errores? ¿Decir que una persona con esquizofrenia está sana es 10, 100, 1000 veces peor que el caso opuesto?

Estas son preguntas que machine learning no puede contestar. Estas preguntas debe ser definidas por las personas interesadas en usar esta tecnología. Muchas personas se han acercado a nuestro grupo de investigación diciendo: ¡Tengo datos! ¿Cómo puedes usar machine learning con ellos? La respuesta es regularmente: No lo sé, ¿Qué quieres hacer con ellos? (El paso inmediato es tener una junta con ellos para responder esta pregunta). Esto nos lleva al segundo punto: los datos.

Paso 2: Tener los datos adecuados

Los datos deben contener la información necesaria para responder la pregunta planteada. Por ejemplo, si queremos diagnosticar esquizofrenia, y solamente tenemos como información el nombre de la persona, su trabajo, y su color de ojos, la tarea se vuelve imposible.

Este ejemplo suena absurdo, pero el problema es bastante común. Imaginemos que queremos encontrar un método para medir los niveles de glucosa en la sangre sin necesidad de extraer una muestra de sangre. Queremos, en vez de eso, usar una foto de la mano de la persona. ¿Es esto posible? La respuesta es: depende. ¿Hay algo en la fotografía que esté relacionado con los niveles de glucosa? Muchas veces la respuesta no se sabe de antemano y es necesario iniciar un proyecto de investigación.

Finalmente, es necesario contar con información de la cual la computadora pueda aprender. Volviendo al tema de la predicción de glucosa por medio de la fotografía de la mano, fácilmente podemos extraer de internet miles de fotografías de manos. Pero, ¿Conocemos los niveles de glucosa de las personas al momento de tomarse la foto? Si la respuesta es negativa entonces esas fotos no serán tan útiles para nuestro estudio.

Paso 3: Entender la tecnología

Si ya se tiene la pregunta a resolver y los datos adecuados para resolverla, el siguiente paso es construir los modelos que permitan hacer las predicciones. Si bien existen muchas herramientas que permiten hacer experimentos rápidos con machine learning, muchas veces no se obtienen los resultados esperados. ¿Qué hacemos entonces?, ¿Qué podemos modificar para hacer que funcione mejor?

En términos generales, machine learning construye una función matemática que le permite hacer las predicciones. Los procesos para construir esta función están basados en herramientas matemáticas, tales como probabilidad, y optimización. Para aplicar machine learning correctamente, es necesario entender cuáles son las suposiciones que hace cada algoritmo, qué es lo que el algoritmo está optimizando, y cómo podemos adaptar dicho algoritmo a nuestras necesidades. O bien, diseñar un algoritmo nuevo.

Sobre la interpretación de machine learning

El proceso por el cual las computadoras aprenden es muy diferente del proceso que nosotros seguimos como humanos. Por esa misma razón, muchas veces es muy complicado interpretar el algoritmo utilizado. Es decir, podemos crear una herramienta que diagnostique esquizofrenia con 100% de precisión, pero probablemente no podemos explicar cómo es que el algoritmo está haciendo la predicción.

Una aclaración con respecto al punto anterior. Esto no quiere decir que no entendamos lo que el algoritmo hace, o que se vaya a salir de control. Quiere decir que el algoritmo no puede dar una respuesta como: “Hay un problema en X parte del cerebro”. Pero sí sabemos cuál es la función matemática que está optimizando, el procedimiento por la cual la optimiza, cuáles son las operaciones matemáticas que hace a cada instante. Pero una respuesta como “Iniciamos con una combinación lineal de cada uno de los vóxeles que componen la imagen cerebral, después aplicamos una función no lineal…” es pocas veces la respuesta esperada por la persona que hace la pregunta ¿Cómo hace la computadora el diagnóstico?

Comenzando a estudiar machine learning

No voy a mentir. Aprender machine learning no es sencillo, va a tomar tiempo, y va a requerir que los estudiantes se vuelvan cómodos con las matemáticas. Pero antes de entrar de lleno en los teoremas y derivaciones matemáticas es muy importante tener una idea general de machine learning, cómo funciona, y tener experiencia implementando los algoritmos básicos, aún cuando no se entienda al 100% la matemáticas detrás de ellos.

El curso de machine learning de Andrew Ng en coursera da esta oportunidad. El nivel de matemáticas y programación requerido es mínimo, y Andrew Ng es muy bueno en proporcionar a los estudiantes una idea general de cómo funciona el algoritmo, sin necesidad de entrar a detalles matemáticos avanzados. Este fue el primer curso de machine learning que yo tomé, y tener esta intuición de machine learning fue de bastante utilidad para después entender los conceptos más avanzados.

El curso lamentablemente no es gratuito, pero la inversión realizada realmente vale la pena. Siempre es posible ver únicamente los videos, pero el aprendizaje verdadero se da con las tareas y ejercicios. Y para tener acceso a éstas hay que comprar el curso. Este curso será útil no solamente para programadores, sino para cualquier persona que piense en usar machine learning, pues permitirá tener un mejor entendimiento de las capacidades y limitaciones de esta tecnología.