Skip to content

Project of the fundamentals of machine learning course at Uni Heidelberg

Notifications You must be signed in to change notification settings

fidsusj/bomberman_rl

 
 

Repository files navigation

Bomberman Reinforcement Learning

Setup for a project/competition amongst students to train a winning Reinforcement Learning agent for the classic game Bomberman.

Setup

First run:

    conda create -n bomberman python=3.8
    conda activate bomberman
    conda install scipy numpy matplotlib
    pip install scikit-learn pygame tqdm

Then follow this tutorial or just execute the following steps:

Also, please create the following directories if you want to start the training process:

    cd agent_code/big_bertha_expert
    mkdir buffers

    cd agent_code/big_bertha_v1
    mkdir buffers

To receive the pickle files for the models uploaded (for pre-initialized replay buffers), please contact the owners of this repository as the files were too large to be uploaded.

Helper Utility

Install following helper tools for development purposes:

    pip install isort
    pip install tensorboard
    conda install pydot
    conda install graphviz

Open a tensorboard after training with:

    cd agent_code/big_bertha_v1
    tensorboard --logdir tensorboard_logs

Training process

The training process of the model is based on Deep Q-learning from demonstrations. Therefore two agents exists:

  1. big_bertha_expert (similar to the rule based agent) -> Our network is pretrained with the filled experience replay buffer from the expert
  2. big_bertha_v1 (our DQN) -> Trained network from 1. is trained with normal Reinforcement Learning

Step 1. is part of the Imitation Learning and step 2. is standard Reinforcement Learning.

About

Project of the fundamentals of machine learning course at Uni Heidelberg

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.8%
  • Dockerfile 0.2%