In this projects we'll implementing agents that learns to play VizDoom Deadly Corridor using several Deep Rl algorithms. Vizdoom is a toolkit for developing and comparing reinforcement learning algorithms on doom games. We'll be using pytorch library for the implementation.
- vizdoom
- PyTorch
- numpy
- opencv-python
- matplotlib
The purpose of this scenario is to teach the agent to navigate towards his fundamental goal (the vest) and make sure he survives at the same time. Map is a corridor with shooting monsters on both sides (6 monsters in total). A green vest is placed at the oposite end of the corridor.Reward is proportional (negative or positive) to change of the distance between the player and the vest. If player ignores monsters on the sides and runs straight for the vest he will be killed somewhere along the way.
- MOVE_LEFT
- MOVE_RIGHT
- ATTACK
- MOVE_FORWARD
- MOVE_BACKWARD
- TURN_LEFT
- TURN_RIGHT
- +dX for getting closer to the vest.
- -dX for getting further from the vest.
- -100 death penalty
Preprocessing Frames is an important step, because we want to reduce the complexity of our states to reduce the computation time needed for training.
Stacking frames is really important because it helps us to give have a sense of motion to our Neural Network.
Steps:
- Grayscale each of our frames (because color does not add important information ).
- Crop the screen (in our case we remove the part below the player because it does not add any useful information).
- We normalize pixel values.
- Finally we resize the preprocessed frame to (84 * 84).
- Stacking Frames 4 frames together.
- Deep Q Network(DQN) [Preview] [Download].
- Dueling Double DQN [Preview] [Download].
- Monte Carlo Policy Gradient [Preview] [Download].
- Rainbow [Preview] [Download].
- Advantage Actor Critic (A2C) [Preview] [Download].
- Proximal Policy Gradients(PPO) [Preview] [Download].
If you have any questions, feel free to ask me:
- Mail: [email protected]
- Github: https://github.com/deepanshut041/Reinforcement-Learning
- Website: https://deepanshut041.github.io/Reinforcement-Learning
- Twitter: @deepanshut041
Don't forget to follow me on twitter, github and Medium to be alerted of the new articles that I publish
- Clap on articles: Clapping in Medium means that you really like my articles. And the more claps I have, the more my article is shared help them to be much more visible to the deep learning community.
- Improve our notebooks: if you found a bug or a better implementation you can send a pull request.