El aprendizaje automático (Machine learning en inglés, ML) es el campo de la inteligencia artificial que busca generar algoritmos que puedan evolucionar y especializarse en función del conjunto de datos de entrada. En cristiano, básicamente pretende crear aplicaciones capaces de aprender y desarrollar comportamientos para los cuales no han sido programados. Dependiendo de si se conoce de antemano el comportamiento final hablaremos de aprendizaje automático supervisado o no supervisado.
En el supervisado, lo más normal es que se inicie este tipo de problemas con un gran conjunto de datos y un objetivo. El conjunto de datos será utilizado por la estrategia de ML para extraer un algoritmo que dé como resultado el objetivo. Un ejemplo clásico es la clasificación de correos en SPAM o No SPAM. Para esto se usa un conjunto de correos de entrenamiento con una clasificación correcta previamente conocida. Sobre este conjunto usaremos algoritmos de ML sobre unas variables específicas, como puede ser la frecuencia de palabras usadas en el contenido, para que nos extraiga un patrón diferenciador de las dos categorías. Si obtenemos un resultado aceptable el algoritmo resultante puede ser utilizado en correos de prueba con una condición desconocida y que nos devuelva si es SPAM o no. Aunque este caso es muy simple, su estructura básica subyace en muchas estrategias utilizadas hoy día independientemente del campo de aplicación.
Una de las estrategias más populares hace uso de los algoritmos evolutivos, los cuales pretenden simular como actúa la evolución biológica. Desde un punto de vista simple, podriamos decir que los organismos evolucionan en diferentes especies mediante cambios que permiten interactuar ante el medio de manera favorable, o como mínimo neutra, para su reproducción. Basándose en esta definición, estos algoritmos interaccionan con un entorno que influye en su dinámica futura, manteniendo aquellas variantes que se acercan poco a poco a un objetivo fijado. Además, para logar que éstas evolucionen, y no se queden repitiendo siempre la misma estrategia, se incorporan cambios aleatorios tras los cuales se vuelve a hacer una selección de aquellos con mejores resultados. Desde un punto de vista técnico podríamos hablar de un proceso de optimización en la obtención de un objetivo.
En el vídeo de arriba podemos ver una aplicación práctica, a la par que didáctica, de esta última estrategia. Para ello ha utilizado el videojuego Super Mario Bros y un algoritmo basado en redes neuronales artificiales (a las cuales ya dedicaré otro post) para que éste pudiera aprender a pasarse la misión el solito mediante el procedimiento ya explicado. Si alguien está interesado en saber más, en la descripción del vídeo hay mucha documentación e incluso el script utilizado en el mismo (mis dieses al autor por esto último :D).