La intro…
Las lecciones a tratar en este tema son:
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…
Lo más importante aquí es conocer el Q-Learning (la base de lo que luego será llamado el Deep Q-Learning).
El algoritmo por defecto en Unity ML-Agents, que es la herramienta que típicamente usamos aquí, es precisamente PPO (creo Proximal Policy Optimization), uno de los algoritmos más avanzados.
Como curiosidad, algunas IAs han demostrado ser capaces de modificar el sistema de recompensa para recibir refuerzo aunque no estén resolviendo realmente el problema (a esto se le conoce como reward hacking).
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.
Referencias
Para complementar este tema es recomendable consultar otros documentos: