Aprendizaje Reforzado y Deep Learning en videojuegos clásicos: todo lo que hemos aprendido en un añoEnrique Blanco 23 agosto, 2018 Hace aproximadamente un año en este blog se comenzó una serie de artículos en la que se exploraba cómo conseguir que una Inteligencia Artificial aprendiera a desenvolverse con juegos sencillos haciendo uso de algoritmos de Aprendizaje Reforzado. En este post ofrecemos una recopilación de todos los artículos y recursos mostrados sobre Aprendizaje Reforzado y Deep Learning durante los últimos meses. Comenzamos con algoritmos sencillos en entornos muy básicos con pocas variables para posteriormente migrar a juegos más complicados que requerían de arquitecturas profundas para poder entrenar a la IA de manera eficiente y adecuada. Nos encontramos con un campo muy atractivo en el que se exploraba un campo del Machine Learning no tan popular como el Aprendizaje Reforzado, más allá de los típicos algoritmos de aprendizaje supervisado y no supervisado a los que estamos acostumbrados, pues además necesitaba de la aplicación de modelos de redes neuronales profundas dirigidas a la identificación de píxeles en la pantalla. De esta manera se aunaban en un mismo ejercicio algoritmos de Machine Learning, Deep Learning y técnicas de visión artificial apoyándonos en un lenguaje de programación sencillo como Python y en librerías como Universe y OpenAI Gym. A continuación, se resumen las tres series de artículos que se han ido completando en torno a esta temática. 1ª serie «Cómo entrenar a tu IA jugando a videojuegos» En este conjunto de posts se facilita una introducción a las librerías de OpenAI Gym y Universe, a las características de los entornos de juegos clásicos soportados por estas librerías y algunos algoritmos sencillos que permitían hacer aprender a una Inteligencia Artificial desenvolverse en este tipo de entornos. En el primer artículo Cómo entrenar a tu Inteligencia Artificial jugando a videojuegos. Parte 1, preparando la «rejilla de juegos», se ofrecen las instrucciones a seguir para la correcta instalación de todo el entorno que nos permita desplegar todos los entornos de juego y comenzar a investigar con el aprendizaje reforzado. Figura 2: Funcionamiento básico OpenAI En el segundo artículo Cómo entrenar a tu Inteligencia Artificial jugando a videojuegos. Parte 2, observando el entorno introdujimos algunos conceptos básicos asociados tanto a los entornos como al Aprendizaje Reforzado e hicimos nuestro primer intento de entrenar a una IA a ganar a Cartpole con unas pocas líneas de código en Python. En Cómo entrenar a tu Inteligencia Artificial jugando a videojuegos. Parte 3, resolviendo CartPole con Random Search, el tercer post de esta serie, explorábamos nuevos algoritmos de Aprendizaje Reforzado para Cartpole, y se allanaba el camino para introducir el Q-Learning al que, como vimos en los siguientes dos artículos Cómo entrenar a tu Inteligencia Artificial jugando a videojuegos. Parte 4. Aprende Q-Learning con el juego «Taxi», parte 1 de 2 y Cómo entrenar a tu Inteligencia Artificial jugando videojuegos, Parte 5. Aprende Q-Learning con el juego «Taxi», parte 2 de 2, era necesario recurrir en el caso de que tanto el número de acciones como la complejidad del juego aumentase. 2ª serie «Deep Learning vs Atari: entrena tu IA para dominar videojuegos clásicos» Tras la serie «Cómo entrenar a tu AI jugando a videojuegos» y con la intención de mostrar todo lo presentado de una maner más cercana, hicimos el primer capítulo de un webinar de una serie de dos episodios, el cual podéis consultar en el siguiente enlace. En esta segunda serie decidimos migrar a entornos más difíciles en los que intentar enseñar a una IA a desenvolverse con soltura como Breakout y Space Invaders. Todos recordamos estos míticos juegos que, a pesar de su simplicidad, presentan el grado de complejidad suficiente para tener que mezclar algoritmos de Aprendizaje Reforzado y Redes Neuronales Profundas (Deep Q-Learning) Figura 3: diagrama del proceso de aprendizaje de un agente durante el entrenamiento Podéis encontrar todos los detalles asociados al pre-procesado de las imágenes de los juegos, entrenamiento, elección de arquitectura profunda, resultados y lecciones aprendidas en los siguientes artículos: Deep Learning vs Atari: entrena tu IA para dominar videojuegos clásicos (Parte I)Deep Learning vs Atari: entrena tu IA para dominar videojuegos clásicos (Parte II)Deep Learning vs Atari: entrena tu IA para dominar videojuegos clásicos (Parte III) Además, en el siguiente link se facilita el segundo episodio del webinar donde se presenta y resume todo el trabajo realizado con OpenAI Gym en estos dos entornos más complejos. 3ª serie: «Deep Learning con Python: introducción a Tensorflow» Como habéis podido comprobar, para poder seguir todos los posts anteriores es necesario un nivel básico de Python, en especial cuando toca definir las arquitecturas del modelo que queramos entrenar. Os recomendamos encarecidamente leer la serie de artículos «Python para todos»: Introducción: Machine Learning con Python para todos los públicos.Python para todos (1): Instalación del entorno Anaconda.Python para todos (2): ¿Qué son los Jupyter Notebook?. Creamos nuestro primer notebook y practicamos algunos comandos fáciles.Python para todos (3): ¿Qué son las librerías?. Preparamos el entorno.Python para todos (4): Empezamos el experimento propiamente. Carga de datos, análisis exploratorio (dimensiones del dataset, estadísticas, visualización etc)Python para todos (5) Final: Creación de los modelos y estimación de su precisión donde podréis refrescar o aprender los conceptos y las técnicas necesarias para abordar un proyecto de Machine Learning con Python. Dado que en el caso que nos ocupa necesitamos manejar recursos de Deep Learning, decidimos hacer uso de la librería TensorFlow, que se encuentra entre las más extendidas dentro de esta disciplina, soportada Python y C++, además de Java y Go entre otros. Además permite distribuir los cálculos en CPU, GPU de forma simultánea. Figura 4: logo de TensorFlow. Fuente. En esta serie de artículos abordamos desde los fundamentos más básicos para familiarizarnos con el uso de la librería, hasta ejemplos de regresión y clasificación de datasets conocidos. También se incluye un ejemplo de clasificación con Keras, una API de alto nivel para Deep Learning haciendo uso de su back-end en TensorFlow. Los tres artículos que sirven como tutorial introductorio los tenéis disponibles a continuación: Deep Learning con Python: Introducción a TensorFlow (Parte I)Deep Learning con Python: Introducción a TensorFlow (Parte II)Deep Learning con Python: Introducción a TensorFlow (Parte III) Esperamos que, tanto si todavía disfrutáis de unos merecidos días de vacaciones como si ya os habéis incorporado a la rutina laboral, disfrutéis de este recopilatorio sobre Aprendizaje Reforzado y Deep Learning. Por nuestra parte, continuaremos “jugando” con las librerías y entornos presentados en estas series en busca de nuevas aplicaciones. Para mantenerte al día con LUCA visita nuestra página web, suscríbete a LUCA Data Speaks o síguenos en Twitter, LinkedIn y YouTube. ¿Qué son las estrategias de «Dynamic Pricing»?Resumen de verano de LUCA Data Speaks: Del 14 al 24 de Agosto
Marina Salmerón Uribes AI of Things en el deporte Hace unas semanas, Carolina Marín, la joven deportista española se convirtió, por sexta vez consecutiva en campeona europea de bádminton. Título que suma a su grandísimo palmarés tras ser...
Víctor Vallejo Carballo AI of Things (V): Recomendación y optimización de contenido publicitario en pantallas inteligentes Conoce los beneficios que tecnologías como las pantallas inteligentes y el Big Data ofrecen al sector de la publicidad exterior
Santiago Morante La Inteligencia Artificial en las películas de ciencia ficción: un patrón recurrente de fascinación y terror Así retrata Hollywood los avances en Inteligencia Artificial: descubre qué es el "patrón R.U.R" y por qué lo aplican muchas películas de ciencia ficción
Paloma Recuero de los Santos Cómo interpretar la matriz de confusión: ejemplo práctico La matriz de confusión es una herramienta muy útil para valorar cómo de bueno es un modelo clasificación basado en aprendizaje automático. En particular, sirve para mostrar de forma...
Paloma Recuero de los Santos Tipos de aprendizaje en Machine Learning: supervisado y no supervisado El machine Learning o aprendizaje automático consiste básicamente en automatizar, mediante distintos algoritmos, la identificación de patrones o tendencias que se “esconden” en los datos. Por ello, resulta muy...
AI of Things GOOD TECH TIMES: Reinventando el turismo. Claves para acelerar la recuperación. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 16 de junio, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: La digitalización es una pieza clave en el plan...
Es una pena que el enlace del primer artículo sobre tensorflow conduzca a la tercera entrega. Agradezco reparen ese fallo para poder leer el artículo Responder