1 - ¿Qué es el Machine Learning?
Lección 1 del curso Introducción al Machine Learning.
Tabla de contenido
Introducción
En este primer módulo del curso vamos a entender qué es el Machine Learning, veremos su potencial a través de diferentes aplicaciones reales y veremos cómo se relaciona con otras disciplinas como la Ciencia de Datos y la Inteligencia Artificial.
Y en esta primera lección vamos a entender inicialmente qué es esto del Machine Learning. Comenzaremos con un ejemplo intuitivo que luego nos permitirá introducir una primera definición informal de lo que es el Machine Learning para cerrar con una definición un poco más formal usando un lenguaje más técnico.
Video
En el canal de YouTube puedes ver el video completo de esta primera lección:
Ejemplo intuitivo: un filtro anti-spam
Consideremos como punto de partida el problema de diseñar un filtro para diferenciar el correo spam del correo normal (de hecho esta fue una de las primeras aplicaciones del Machine Learning de uso cotidiano).
Primer enfoque: usando programación convencional
Si usamos un programa de computador convencional podríamos estructurarlo a partir de una serie de reglas, como por ejemplo:
- Conformar un listado de palabras “sospechosas” que usualmente encontremos en los correos spam
- Si el título o el cuerpo del correo contiene una (o más) de esas palabras sospechosas, entonces podemos clasificar el mensaje como spam, de lo contrario lo clasificamos como normal.
En principio este programa convencional funcionaría para unos cuantos casos, pero tiene muchas falencias que hacen que en la práctica no resulte útil. Por ejemplo:
- Si el spammer (quien envía los correos spam) modifica su estrategia e incluye nuevas palabras, tendremos que actualizar una y otra vez nuestro programa para poder detectar estos cambios
- Analizar el contenido del mensaje a nivel de palabra no resulta práctico, pues algunos mensajes normales pueden contener palabras sospechosas y serían clasificados incorrectamente como spam. Se requiere un programa más sofisticado que sea capaz de analizar relaciones entre palabras (es decir el significado de la frase) tal como lo hacemos nosotros los humanos.
Pero la gran limitación de la programación convencional es que nuestros programas no serán capaces de generalizar: si el que spammer comienza a cambiar contenidos nuestro programa estará cada vez más lleno de reglas y no estará al ritmo de estos cambios.
En últimas tendremos un programa poco versátil, muy extenso (lleno de reglas), difícil de mantener y que no hará una adecuada detección de los mensajes spam.
Segundo enfoque: usando el Machine Learning
El Machine Learning usa un enfoque totalmente diferente a la programación convencional.
En primer lugar no escribiremos un programa con reglas para detectar el spam. En su lugar lo que haremos será recolectar muchos datos y luego crearemos un programa que permita analizar el contenido del email a nivel de palabra y de frase y que sea capaz de detectar patrones inusuales en ese contenido sin necesidad de decirle explícitamente cuáles son esos patrones.
Con esto el filtrado spam va a ser más robusto, pues las palabras o frases podrán tener cambios pero el sistema de Machine Learning será capaz de generalizar.
En últimas lo que haremos será entrenar un modelo que habrá aprendido a detectar patrones en los datos.
Las ventajas de este enfoque de Machine Learning con respecto a la programación convencional son las siguientes:
- El programa (o algoritmo) para entrenar el modelo es más “corto” y más fácil de mantener. No estará basado en reglas y en su lugar tendrá unas cuantas instrucciones que le indicarán al modelo cómo aprender a detectar patrones en los datos.
- El modelo de Machine Learning es más versátil que un programa lleno de reglas. Será capaz de generalizar: es decir que a pesar de que el spammer introduzca cambios en el texto del correo electrónico, el modelo será capaz de detectar estos cambios y de clasificar el mensaje como spam sin necesidad de programarlo explícitamente para identificar dichos cambios.
Y en últimas esto permitirá que el filtrado se realice con mayor precisión (tal como ocurre con los filtros de spam usados hoy en día).
Así que con este ejemplo ya podemos dar una primera definición de lo que es el Machine Learning.
Definición 1 (informal)
Podemos decir que el Machine Learning es un campo de estudio que permite a los computadores aprender a detectar patrones en los datos para generar predicciones sin necesidad de ser programados explícitamente.
Y en esta definición vale la pena resaltar varios elementos:
- El hecho de que los computadores “aprenden” y de allí el nombre del Aprendizaje de Máquina (la traducción del Inglés del término Machine Learning)
- Detectar patrones en los datos, pues cualquier sistema de Machine Learning (independientemente de su uso) estará entrenado precisamente para esto
- Generar predicciones: los patrones que ha aprendido a detectar el sistema de Machine Learning permiten que ante nuevos datos se generen nuevas predicciones (como es el hecho de clasificar un correo como spam o normal)
- Y un aspecto importantísimo: un sistema de Machine Learning no es programado de manera explícita, es decir que no escribiremos reglas para un comportamiento en particular de los datos y en su lugar escribiremos algoritmos para que el sistema aprenda a detectar patrones
Veamos ahora una segunda definición, un poco más formal que la que acabamos de dar (es decir usando un lenguaje más técnico.
Definición 2 (formal)
Esta definición es tomada del libro Machine Learning de Tom Mitchel (1997): … en el Machine Learning “un programa de computador aprende a ejecutar una tarea a partir de la experiencia y con base en una medida de rendimiento y es además capaz de mejorar su desempeño a partir de la experiencia.
Entendamos esta definición partiendo del ejemplo del filtro anti-spam:
- La tarea en este caso consiste en determinar si un email es spam o no spam. Esta tarea se llama clasificación
- La experiencia son simplemente todos los datos usados, que en nuestro ejemplo son los emails de ejemplo que presentamos al modelo de Machine Learning para que aprenda a clasificar los mensajes
- La medida de rendimiento puede ser por ejemplo la exactitud (o accuracy en Inglés) que es simplemente la proporción de e-mails clasificados correctamente con respecto al total de mensajes recibidos
- Y el mejorar el desempeño a partir de la experiencia se refiere a que entre más datos presentemos al modelo mejor aprenderá a detectar patrones y mejor será su exactitud.
Conclusión
Muy bien, ya tenemos una idea clara de lo que es el Machine Learning y en este punto vale la pena resaltar que el objetivo final de esta disciplina es construir modelos que aprendan a detectar patrones en los datos para generar algún tipo de predicción.
Entonces, para entender aún más claramente las definiciones que acabamos de dar en la próxima lección veremos varios ejemplos de aplicación del Machine Learning en diferentes ámbitos de la sociedad y de nuestra vida cotidiana.