Ahora que ya conocemos las bases de los agentes de aprendizaje por refuerzo y los diferentes componentes, vamos a explorar el potencial de los agentes de aprendizaje por refuerzo en uno de los ejemplos clásicos de esta área, los juegos de Atari y en particular Pacman.
Para este ejercicio vamos a utilizar la implementación de Pacman de Berkeley para explorar algoritmos de aprendizaje, en nuestro caso particular utilizaremos los agentes de aprendizaje por refuerzo. Pueden descargar los archivos de este ejemplo (utilizando este enlace) y ejecutarlos localmente desde su máquina.
Para ejecutar el programa pueden ejecutar la terminal desde la carpeta donde se encuentren los archivos descomprimidos (e.g., Downloads/AI-Pacman-Projects-master/Reinforcement).
La ejecución del agente se realiza utilizando el comando:
python pacman.py -p PacmanQAgent -x 2000 -n 2010 -l smallGrid -a epsilon=0.1,alpha=0.3,gamma=0.7
Este comando se encarga de ejecutar el programa de Python pacman.py
utilizando un agente de aprendizaje con refuerzo, donde los parámetros indican lo siguiente:
-x
representa la cantidad de iteraciones de entrenamiento-n
representa la cantidad total de operaciones-l
representa el ambiente a utilizar (en el ejemplo un tablero pequeño). Las opciones son smallGrid
, mediumGrid
y mediumClassic
epsilon
representa el valor de aleatoriedad en la fase de explotación del agente, que tanto se utiliza la información aprendida contra que tanto se buscan nuevos caminos con recompensas "desconocidas"alpha
representa la tasa de aprendizaje, que define la relevancia de la nueva información (aprendida) sobre la información que se tenía anteriormentegamma
representa el valor de descuento del agente, que tanto valor se le da a las recompensas inmediatas sobre las recompensas futurasEl resultado de la ejecución debería ser similar al descrito a continuación:
Training Done (turning off epsilon and alpha)
---------------------------------------------
Pacman emerges victorious! Score: 495
Pacman emerges victorious! Score: 503
Pacman emerges victorious! Score: 503
Pacman emerges victorious! Score: 503
Pacman emerges victorious! Score: 495
Pacman emerges victorious! Score: 503
Pacman emerges victorious! Score: 503
Pacman emerges victorious! Score: 503
Pacman emerges victorious! Score: 503
Pacman died! Score: -503
Average Score: 400.8
Scores: 495.0, 503.0, 503.0, 503.0, 495.0, 503.0, 503.0, 503.0, 503.0, -503.0
Win Rate: 9/10 (0.90)
Record: Win, Win, Win, Win, Win, Win, Win, Win, Win, Loss
Para este ejercicio debe correr el agente de pacman desde un ambiente local combinando diferentes parámetros (x, n, l, epsilon, alpha, gamma
) para observar el comportamiento del agente. ¿Qué conclusiones puede sacar del comportamiento y los distintos resultados del agente?
Para completar este ejercicio envíe un reporte (en formato pdf) explicando el comportamiento del agente para cada combinación de parámetros utilizado, dando un análisis de los resultados observados.