Categorías
Informática Universitario Videojuego

Aprendizaje por refuerzo

Tema 

El Aprendizaje por Refuerzo (Reinforcement Learning, RL) es un campo muy amplio y con aplicaciones bastante interesantes para videojuegos.

Las lecciones a tratar en este tema son:

  1. Métodos basados en valor y política
  2. Computación evolutiva
  3. Inteligencia emergente

Si en los algoritmos clásicos de búsqueda tenemos un espacio de estados, con estado inicial, estado objetivo, operadores, posiblemente heurística… y se trata de encontrar el camino mínimo, en el aprendizaje por refuerzo el agente está buscando algo parecido, establecer una política óptima de toma de decisiones que le permita pasar de estado, guiándose a través de la recompensa. Digamos que aquí cobran importancia todos estos conceptos de estados, acciones, recompensas, políticas, exploración, exploración…

Aunque lo que vemos en este curso suele tener un enfoque más «subsimbólico», muchos consideran el aprendizaje por refuerzo, como el Aprendizaje Q, muy similar a una búsqueda en el espacio de estados… en AlphaGo, por ejemplo, combinaban redes neuronales artificiales con el algoritmo Monte Carlo Tree Search (MCTS), que es un algoritmo de búsqueda.

Las aplicaciones estrella del Aprendizaje por Refuerzo son: control de robótica, conduccion autónoma, trayectorias y estrategias óptimas en juegos, y gestión logística.

Ejercicios

Para practicar lo aprendido pueden hacerse algunos ejercicios.

Prácticas

Para aplicar los conocimientos y las técnicas de este tema pueden realizarse prácticas como estas:

  • EJEMPLO, con una solución hecha por el profesor.
  • Si se quiere practicar aprendizaje profundo se puede programar una red neuronal artificial con TensorFlow (o mejor, PyTorch).
  • Partir de un microgame o similar, con Unity ML-Agent montado, y hacer que un agente aprenda por refuerzo a hacer algo, como aprender a salir de un laberinto, o a exploar unas mazmorras, evitando o venciendo enemigos, pillando las monedas y «farmeando» las mejores armas… Si es un juego de plataformas, aprende a saltar, esquivar, ir avanzando… si es de coches aprende a seguir el circuito sin salirse, mantener una velocidad rápida pero prudente.
  • Práctica en entornos tipo Gymnasium o PettingZoo, que son los típicos para practicar el Aprendizaje por Refuerzo.
  • Se pueden hacer prácticas con juegos como Pac-Man, Gridworld, o juegos arcade de la época dorada de Atari, en general… incluso se puede hablar de sistemas multiagente (para cooperar, competir, hacer jugadores automáticos… en Starcraft, Rocket League y juego así)

Referencias

Para complementar este tema es recomendable consultar otros documentos: