DQN, DDDQN, A3C, PPO, Curiosity applied to the game DOOM
This is the final project for the Reinforcement Learning Course of the 2018/2019 MVA Master class.
This project is carried by Mehdi Boubnan & Ayman Chaouki. It consists of training an agent to play in different scenarios of the game DOOM with deep reinforcement learning methods from Deep Q learning and its enhancements like double Q learning, deep recurrent network (with LSTM), deep dueling architecture and prioritized replay to Asynchronous Advantage Actor-Critic (A3C) and Curiosity-Driven learning.
You can take a look at our paper Deep reinforcement learning applied to Doom for more details about the algorithms and some empirical results.
Here are two examples of agents trained with A3C.
conda install pytorch torchvision -c pytorch
pip install tensorboard
pip install tensorboardX
pip install moviepy
git clone https://github.com/Swirler/Deep-Reinforcement-Learning-applied-to-DOOM
cd Deep-Reinforcement-Learning-applied-to-DOOM
cd "Deep Q Learning"
tensorboard --logdir runs
and clicking the URL http://localhost:6006
python train.py --scenario basic --window 1 --batch_size 32 --total_episodes 100 --lr 0.0001 --freq 20
python play.py --scenario basic --window 1 --weights weights/none_19.pth --total_episodes 20 --frame_skip 2
cd "A3C_Curiosity"
python utils/launch_tensorboard.py
python main.py --scenario deadly_corridor --actions all --num_workers 12 --max_episodes 1600
python main.py --scenario basic --actions single --num_workers 12 --max_episodes 1200
python main.py --use_ppo --scenario deadly_corridor --actions all --num_workers 12 --max_episodes 1600
python main.py --use_curiosity --scenario deadly_corridor --actions all --num_workers 12 --max_episodes 1600
See utils/args.py for more parameters.
python main.py --play --scenario deadly_corridor --actions all --play_episodes 10