DeepRL-Tutorials
The intent of these IPython Notebooks are mostly to help me practice and understand the papers I read; thus, I will opt for readability over efficiency in some cases. First the implementation will be uploaded, followed by markup to explain each portion of code. I'll be assigning credit for any code which is borrowed in the Acknowledgements section of this README.
Relevant Papers:
Human Level Control Through Deep Reinforement Learning [Publication] [code]
Multi-Step Learning (from Reinforcement Learning: An Introduction, Chapter 7) [Publication][code]
Deep Reinforcement Learning with Double Q-learning [Publication][code]
Dueling Network Architectures for Deep Reinforcement Learning [Publication][code]
Noisy Networks for Exploration [Publication][code]
Prioritized Experience Replay [Publication][code]
A Distributional Perspective on Reinforcement Learning [Publication][code]
Rainbow: Combining Improvements in Deep Reinforcement Learning [Publication][code]
Distributional Reinforcement Learning with Quantile Regression [Publication][code]
Rainbow with Quantile Regression [code]
Deep Recurrent Q-Learning for Partially Observable MDPs [Publication][code]
Advantage Actor Critic (A2C) [Publication1][Publication2][code]
High-Dimensional Continuous Control Using Generalized Advantage Estimation [Publication][code]
Proximal Policy Optimization Algorithms [Publication][code]
Requirements:
Python 3.6
Numpy
Gym
Pytorch 0.4.0
Matplotlib
OpenCV
Baslines
Acknowledgements:
Credit to @baselines for the environment wrappers and inspiration for the prioritized replay code used only in the development code
Credit to @higgsfield for the plotting code, epsilon annealing code, and inspiration for the prioritized replay implementation in the IPython notebook
Credit to @Kaixhin for factorized Noisy Linear Layer implementation and the projection_distribution function found in Categorical-DQN.ipynb
Credit to @ikostrikov for A2C, GAE, PPO and visdom plotting code implementation reference