El Aprendizaje por Refuerzo(RL) es uno de los temas de investigación más candentes en el campo de la Inteligencia Artificial moderna y su popularidad no hace más que crecer. Veamos 5 cosas útiles que hay que saber para empezar con el RL.
El Aprendizaje por Refuerzo(RL) es un tipo de técnica de aprendizaje automático que permite a un agente aprender en un entorno interactivo por ensayo y error utilizando la retroalimentación de sus propias acciones y experiencias.
Aunque tanto el aprendizaje supervisado como el de refuerzo utilizan el mapeo entre la entrada y la salida, a diferencia del aprendizaje supervisado en el que la retroalimentación proporcionada al agente es un conjunto correcto de acciones para realizar una tarea, el aprendizaje de refuerzo utiliza recompensas y castigos como señales para el comportamiento positivo y negativo.
En comparación con el aprendizaje no supervisado, el aprendizaje por refuerzo es diferente en términos de objetivos. Mientras que el objetivo en el aprendizaje no supervisado es encontrar similitudes y diferencias entre puntos de datos, en el caso del aprendizaje por refuerzo el objetivo es encontrar un modelo de acción adecuado que maximice la recompensa total acumulada del agente. La figura siguiente ilustra el bucle de retroalimentación acción-recompensa de un modelo genérico de RL.
¿Cómo formular un problema básico de Aprendizaje por Refuerzo?
Algunos términos clave que describen los elementos básicos de un problema de RL son:
- Entorno – Mundo físico en el que opera el agente
- Estado – Situación actual del agente
- Recompensa – Retroalimentación del entorno
- Política – Método para asignar el estado del agente a las acciones
- Valor – Recompensa futura que recibiría un agente al realizar una acción en un estado concreto
Un problema de RL se puede explicar mejor a través de juegos. Tomemos el juego de PacMan en el que el objetivo del agente (PacMan) es comer la comida en la cuadrícula mientras evita los fantasmas en su camino. En este caso, el mundo de la cuadrícula es el entorno interactivo en el que actúa el agente. El agente recibe una recompensa por comer comida y un castigo si es asesinado por el fantasma (pierde el juego). Los estados son la ubicación del agente en el mundo cuadriculado y la recompensa total acumulada es que el agente gane el juego.
¿Cuáles son las aplicaciones prácticas del aprendizaje por refuerzo?
Dado que el RL requiere una gran cantidad de datos, es más aplicable en dominios donde los datos simulados están fácilmente disponibles como el juego, la robótica.
- El RL se utiliza bastante en la construcción de IA para jugar a juegos de ordenador. AlphaGo Zero es el primer programa informático que derrotó a un campeón mundial en el antiguo juego chino del Go. Otros incluyen juegos de ATARI, Backgammon ,etc
- En robótica y automatización industrial, la RL se utiliza para que el robot pueda crear un sistema de control adaptativo eficiente para sí mismo que aprenda de su propia experiencia y comportamiento. El trabajo de DeepMind en Deep Reinforcement Learning for Robotic Manipulation with Asynchronous Policy updates es un buen ejemplo de ello. Vea este interesante vídeo de demostración.
Otras aplicaciones de RL incluyen motores de resumen de texto abstracto, agentes de diálogo (texto, voz) que pueden aprender de las interacciones del usuario y mejorar con el tiempo, el aprendizaje de políticas de tratamiento óptimas en la asistencia sanitaria y agentes basados en RL para el comercio de acciones en línea.
¿Cómo puedo iniciarme en el aprendizaje por refuerzo?
Para entender los conceptos básicos de la RL, se pueden consultar los siguientes recursos.
- Reinforcement Learning-An Introduction, un libro del padre del aprendizaje por refuerzo -Richard Sutton- y su asesor doctoral Andrew Barto. Un borrador en línea del libro está disponible aquí.
- El material didáctico de David Silver, que incluye conferencias en vídeo, es un gran curso de introducción a la RL.
- Aquí hay otro tutorial técnico sobre RL por Pieter Abbeel y John Schulman (Open AI/ Berkeley AI Research Lab).
Para empezar a construir y probar agentes de RL, los siguientes recursos pueden ser útiles.
- Este blog sobre cómo entrenar un agente ATARI Pong de red neuronal con gradientes de política a partir de píxeles crudos por Andrej Karpathy le ayudará a obtener su primer agente de aprendizaje de refuerzo profundo en sólo 130 líneas de código Python.
- DeepMind Lab es una plataforma de código abierto similar a un juego en 3D creada para la investigación de la IA basada en agentes con ricos entornos simulados.
- Project Malmo es otra plataforma de experimentación de la IA para apoyar la investigación fundamental en la IA.
- OpenAI gym es un conjunto de herramientas para construir y comparar algoritmos de aprendizaje por refuerzo.