This project is to teach an agent to play a level of Super Mario Bros for the NES with a reinforcement learning algorithm based on https://github.com/Sourish07/Super-Mario-Bros-RL . Using that algorithm to train the agent, The agent will be observed at different checkpoints in its learning process and will be evaluated on how effective it is.
Video Explanation of the Reinforcement learning algorithm:https://youtu.be/_gmQZToTMac?si=4miiqBSBWpwLfcOk
Resource Papers: Human-level control through deep reinforcement learning: https://doi.org/10.1038/nature14236 Deep Reinforcement Learning with Double Q-learning: https://arxiv.org/pdf/1509.06461.pdf
There are a few prerequistes to running the RL cycle and running pretrained models
- Anaconda software is installed and added to your terminal path
- Your machine can run Nvidia CUDA software (this is mandatory for running the pretrained models)
git clone https://github.com/Ia-in03/CIS530_MarioML.git
conda env create -f environment.yml
conda activate smbrl
- main.py will run the normal script
- csv_plotter will run the same as main but all episode information (epsilon value, total=reward, etc.) will be dumped to a csv file
- eval-models.py will run through the existing pretrained models and print data (max reward, avg reward) to console