This project aims to develop Reinforcement Learning agents that solve the given modified CartPole Environments. A detailed description of the problem statement can be found in the Details
folder.
The environments are modified versions of the classic CartPole-v1 environment. The details of the environments can be found in the Details
folder.
We tried the following approaches:
- REINFORCE
- Deep Q-Network (DQN)
- Double Deep Q-Network (DDQN)
- Double Deep Q-Network with soft update (DDQN_with_soft_update)
- Dueling Double Deep Q-Network (D3QN)
A detailed report of the approaches and results can be found in the Results
folder. The notebooks containing the code can be found in the Notebooks
folder. The weights for the networks can be found in the Weights
folder.
The best result was obtained using DDQN with soft update. We could achieve a perfect score on all the environments using a neural network with 2 layers with 4 neurons each.
A detailed report of the approaches and results can be found in the Results
folder. The training and evaluation plots can be found in the Plots
folder.
The notebooks are written in Python3 and use the following major libraries/frameworks:
- Deep Learning framework: Keras, PyTorch
- Environment providing framework: OpenAI Gym
- Data processing: Numpy, Pandas, Scikit-learn
- Williams, R. J. Simple statistical gradient-following algorithms for connectionist reinforcement learning. Mach. Learn., 1992
- V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves, I. Antonoglou, D. Wierstra M. Riedmiller Playing Atari with Deep Reinforcement Learning, 2013
- H. V. Hasselt, A. Guez, D. Silver, Deep Reinforcement Learning with Double Q-learning, 2015
- PyTorch's tutorial on REINFORCE
- RL tutorials by Python Lessons