Notes for the Reinforcement Learning course by David Silver along with implementation of various algorithms.
# David-Silver-Reinforcement-learning 

[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=David%20Silver%20Reinforcement%20Learning%20course%20notes%20along%20with%20implementation&url=https://github.com/dalmia/David-Silver-Reinforcement-learning&hashtags=deeplearning,reinforcementlearning,python,machinelearning,keras)

[![apm](https://img.shields.io/apm/l/vim-mode.svg)]()
[![Build Status](https://travis-ci.org/athityakumar/colorls.svg?branch=master)](https://travis-ci.org/athityakumar/colorls)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=shields)](http://makeapullrequest.com)

This repository contains the notes for the Reinforcement Learning [course](www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html) by [David Silver](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Home.html) along with the implementation of the various algorithms discussed, both in Keras (with TensorFlow backend) and [OpenAI](https://openai.com/)'s [gym](https://github.com/openai/gym) framework.

## Syllabus:

- Week 1: Introduction to Reinforcement Learning [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/intro_RL.pdf)][[video](https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=1)]

- Week 2: Markov Decision Processes  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/MDP.pdf)][[video](https://www.youtube.com/watch?v=lfHX2hHRMVQ&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=2&t=3223s)]

- Week 3: Planning by Dynamic Programming  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/DP.pdf)][[video](https://www.youtube.com/watch?v=Nd1-UUMVfz4&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=3&t=417s)]

- Week 4: Model-Free Prediction  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/MC-TD.pdf)][[video](https://www.youtube.com/watch?v=PnHCvfgC_ZA&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=4)]

- Week 5: Model-Free Control  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/control.pdf)][[video](https://www.youtube.com/watch?v=0g4j2k_Ggc4&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=5)]

- Week 6: Value Function Approximation  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/FA.pdf)][[video](https://www.youtube.com/watch?v=UoPei5o4fps&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=6)]

- Week 7: Policy Gradient Methods  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/pg.pdf)][[video](https://www.youtube.com/watch?v=KHZVXao4qXs&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=7)]

- Week 8: Integrating Learning and Planning  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/dyna.pdf)][[video](https://www.youtube.com/watch?v=ItMutbeOHtc&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=8)]

- Week 9: Exploration and Exploitation  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/XX.pdf)][[video](https://www.youtube.com/watch?v=sGuiWX07sKw&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=9)]

- Week 10: Case Study: RL in Classic Games  [[slide](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/games.pdf)][[video](https://www.youtube.com/watch?v=kZ_AUmFcZtk&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=10)]


## Dependencies
- TensorFlow
- Keras
- Gym
- Numpy

Install them using [pip](https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjRhLWLnfHYAhVEtY8KHRqfCc4QFggoMAA&url=https%3A%2F%2Fpip.pypa.io%2Fen%2Fstable%2F&usg=AOvVaw18gydNGbBQg6WMxXoxO97K).

## Contributing
Please feel free to create a Pull Request for adding implementations of the algorithms discussed in different frameworks like PyTorch, Caffe, etc. or improving the existing implementations. If you are a beginner, you can refer [this](https://opensource.guide/how-to-contribute/) for getting started.

## Support
If you found this useful, please consider starring(★) the repo so that it can reach a broader audience.

## License
This project is licensed under the MIT License - see the [LICENSE](https://github.com/dalmia/David-Silver-Reinforcement-learning/blob/master/LICENSE) file for details.

## References
- https://github.com/dennybritz/reinforcement-learning
- https://github.com/llSourcell/AI_for_Video_Games_Syllabus
