Últimamente se habla mucho de Machine Learning y de Inteligencia Artificial, los puestos de trabajo y los cursos especializados en estos sectores se están disparando, así los perfiles profesionales que se especializan en estas áreas, pero ¿que es Machine Learning?, ¿Que ventajas nos aporta? ¿Está la IA a un paso de que las máquinas nos controlen como en Matrix, o Terminator? En este artículo, me gustaría poder resolver algunas de estas dudas y alguna más.
De entrada, hace poco estuve en una Masterclass sobre la situación actual de la Inteligencia Artificial y hacia donde va impartida por Davi Hurtado, Customer Success Innovation en Microsoft a través de CIDAI. Creo que es un vídeo de una hora imprescindible para todo aquel que esté interesado en este área. No es nada técnico y refleja algunas tecnologias ya existentes impresionantes así como sus carencias.
¿Pero de que hablo cuando hablo de Machine Learning?
Hay muchas definiciones que intentan aclarar este concepto, desde más más técnicas como:
Se considera que un programa aprende de la experiencia E de una tarea T con desempeño P, si el desempeño en T es medido con P y mejora mediante la experiencia E.
Tom Mitchell, 1997
A otras más básicas como:
Machine Learning es el campo de estudio que permite a las máquinas de aprender sin haber sido explicitamente programado
Arthur Samuel, 1959
En general todas estas definiciones se pueden quedar cortas o dar a lugar a malos entendidos, es muy explicar el concepto aprender dado que las máquinas no pueden aprender como los seres humanos, si me descargo un archivo de texto con un cierto contenido, no puedo decir que mi ordenador «sepa» ese contenido, porque aunque esté en su memoria, no lo ha aprendido. En cambio, puedo generar un algoritmo capaz de interpretar ese texto y darme información sobre el, incluso si la información es suficientemente grande, se pueden generar programas capaces de extraer conclusiones. Ahí es donde puede radicar el aprendizaje.
¿Para qué sirve el Machine Learning?
Uno de los aspectos más destacados donde el ML ha supuesto un cambio fue en el correo electrónico, hace unos 20 años, para filtrar el correo basura (SPAM), existían aplicaciones que a partir de una serie de «reglas» predefinidas eran capaces de detectar si un correo era o no spam. Por ejemplo, un caso típico de spam (y estafa), el clásico correo de un principe nigeriano que te necesita para poder cobrar su herencia. A partir de este correo se podria definir la regla de que si un mail incluye las palabras «principe», «nigeria» y «herencia» lo marcase como spam.
Este sistema tiene varios defectos, el primero y más obvio es seria prácticamente imposible generar una lista de reglas que regulase todos los correos que nos llegan, más si se tienen en cuenta los diferentes idiomas. También, se puede dar el caso de que un amigo, nos envía un correo con la frase «Que pasa principe! ya he vuelto antes de mis vacaciones en Nigeria por qué ha fallecido un familiar y me tengo que encargar de la Herencia, ¿me echas una mano?» este correo se detectaría como spam y al mismo tiempo, se puede dar el caso de que los autores de correos spam, hagan pequeñas variaciones en el texto «Soy hijo de un emprendedor millonario chino…» y nuestro filtro ya no funcionaria correctamente.
Como alternativa, se puede crear un programa que a cada correo que nos llega, lo lea, cuente palabras, genere una lista de palabras que contiene, también detecte negritas, símbolos,… etc y por último nos permita marcar si el correo es o no spam. Justo aquí es cuando podemos decir que ha aprendido, ya que partir de esta información puede definir un patrón que le permita detectar correos similares. Claro que un único correo no le serviría, pero ¿y si tuviera millones? En ese caso, cuando un usuario nuevo, utiliza esa aplicación, le parecerá que «de manera inteligente» es capaz de reconocer los correos. ¿os suena?
A parte del ejemplo anterior, el Machine Learning a día de hoy tiene bastantes aplicaciones y puede ser muy útil en casos en que la dificultad del problema es tal que no se puede recurrir a la programación tradicional, por ejemplo si quisiéramos hacer reconocimiento de caras en imágenes, seria prácticamente imposible desarrollar algoritmos que lo realizaras por reglas. O también para detectar patrones en grandes cantidades de datos permitiendo al usuario tomar decisiones a partir de una información compleja, e incluso si se trata de datos variantes en los que el sistema tenga que adaptarse a estos cambios.
Hasta aquí una explicación más sobre este campo. En mi próximo artículo de este tema quiero hablar de ejemplos de aplicaciones reales de esta tecnología a día de hoy. ¿Se te ocurre algún problema que se pueda resolver mediante Machine Learning? ¡Escríbeme!