Giter Site home page Giter Site logo

upb-lea / reinforcement_learning_course_materials Goto Github PK

View Code? Open in Web Editor NEW
903.0 29.0 207.0 146.99 MB

Lecture notes, tutorial tasks including solutions as well as online videos for the reinforcement learning course hosted by Paderborn University

License: MIT License

Jupyter Notebook 96.96% Python 0.42% MATLAB 0.46% TeX 2.17%
reinforcement-learning control teaching teaching-materials python latex prediction machine-learning course course-materials

reinforcement_learning_course_materials's Introduction

Reinforcement Learning Course Materials

Build Status DOI License made-with-python made-with-latex

Lecture notes, tutorial tasks including solutions as well as online videos for the reinforcement learning course hosted by Paderborn University. Source code for the entire course material is open and everyone is cordially invited to use it for self-learning (students) or to set up your own course (lecturers). Example

Lecture Content

  1. Introduction to Reinforcement Learning
  2. Markov Decision Processes
  3. Dynamic Programming
  4. Monte Carlo Methods
  5. Temporal-Difference Learning
  6. Multi-Step Bootstrapping
  7. Planning and Learning with Tabular Methods
  8. Function Approximation with Supervised Learning
  9. On-Policy Prediction with Function Approximation
  10. Value-Based Control with Function Approximation
  11. Stochastic Policy Gradient Methods
  12. Deterministic Policy Gradient Methods
  13. Further Contemporary RL Algorithms (TRPO, PPO)
  14. Outlook and Research Insights
  • Summary of Part One: Reinforcement Learning in Finite State and Action Spaces
  • Summary of Part Two: Reinforcement Learning Using Function Approximation
  • Full course slides

Exercise Content

All exercises are based on Python 3.9 and site-packages according to the requirements.txt:

>>> pip install -r requirements.txt
  1. Basics of Python for Scientific Computing
  2. Manually Solving Basic Markov Chain, Reward and Decision Problems
  3. The Beer-Bachelor and Dynamic Programming (the Shortest Beer Problem)
  4. Drive Through the Race Track with Monte Carlo Learning
  5. Drive even Faster Using Temporal-Difference Learning
  6. Stabilizing the Inverted Pendulum by Tabular Multi-Step Methods
  7. Boosting the Inverted Pendulum by Integrating Learning & Planning (Dyna Framework)
  8. Predicting the Operating Behavior of a Real Electric Drive Systems with Supervised Learning
  9. Evaluate the Performance of Given Agents in the Mountain Car Problem Using Function Approximation
  10. Escape from the Mountain Car Valley Using Semi-Gradient Sarsa & Least Square Policy Iteration
  11. Landing on the Moon with REINFORCE and Actor-Critic Methods
  12. Shoot for the moon with DDPG & PPO

Contributions

We highly appreciate any feedback and input to the course material e.g.

  • typos or content-related discussions (please raise an issue)
  • adding new contents (please provide a pull request)

If you like to contribute to the repo to a larger extent, please do not hesitate to contact us directly.

Credits

The lecture notes are inspired by

The tutorials are partly using pre-packed environments from

  • Gymnasium (maintained branch of OpenAI's Gym)

Citation

See "Cite this repository" on top

reinforcement_learning_course_materials's People

Contributors

bhk11 avatar hvater avatar marvinmeyer avatar max-schenke avatar wallscheid avatar webbah avatar wkirgsn avatar xydrkrulof avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reinforcement_learning_course_materials's Issues

Grammatical Errors

Lecture 08
Slide 10 : Last point - It should be ..." an ML model"...

Lecture 11
Slide 2: ..."Goal of today's lecture"... [missing apostrophe]

A mistake in lecture 1, slide 46

lecture 1, slide 46: in the summation in 1.16 r_{k+i} should be a function of u_{k+i-1} because
for example we have r_{k+1} when u_{k} is applied.

Eligibility traces for SARSA(lambda)

In Lecture 6 in the definition of the TD($\lambda$) update on Slide 30, the definition needs to be adjusted. On the one hand it should be "SARSA($\lambda$)" , on the other hand the Eligibility trace must be adjusted by the action: $z_k(x_k, a_k)$.

Quellen:
Reinforcement Learning: An Introduction (Second Edition), Chapter 7.5 p. 183ff

Exercise 5: Change the example environment for tasks 3 & 4

Double Q learning was introduced as a way to remove maximization bias especially in stochastic environments. Now in exercise 5 we're given a stochastic environment on which double Q learning is behaving worse than normal Q learning. While this teaches us that in practice it's not always clear which method will be the best, it is not helpful to strengthen the concepts learned in lecture. A new learner will question his solution of this task and in general the benefit of double Q learning. So my suggestion is to find a better fit environment to see the advantages that double Q learning has over single Q learning.

Exercise 4: cannot find Racetrack Environment

Describe the bug
In Exercise 04 Monte-Carlo methods should be implemented for the racetrack environment, however, I cannot find where racetrack_environment.py is located. Could you provide installation instructions or an description of the environment (e.g. env.yml for conda) to be used?

Dependency Issues for Running the Excercises

Finding and installing the correct package versions to run the later exercises is too cumbersome.
It seems that some packages have to be downgraded concerning the provided requirements.txt.

This should be streamlined if possible.

As reference, this is the environment that resulted for me to exclusively run ex12:
ex12_schenke_requirements.txt

Tidy up tutorial solution notebooks and provide problem templates

  • Some of the solution notebooks are not well readable. It seems that they partly contain debug column of figures or a bulk of number arrays floating around. There is still some room for improvement here to promote readability and a quick introduction to the topic.
  • It would be nice to have a small mark down information sheet per tutorial summarizing the most important information (very short description of the adressed problems, used algorithms, maybe an overview of the sub-tasks within the notebook). The format of the mark down sheet should be standardized among all tutorials.
  • And finally, please provide the task templates with gaps for the student inputs. Hence, for every notebook there should be two files like ex00_task_template.ipynb and ex00_solution.ipynb.
    • Question/remark: Is there maybe a straightforward way to automate the generation of the task template notebooks based on the solution notebooks (e.g. simplified / light nbgrader with Travis backend which erases parts of the solution code based on built-in keywords). Investing once the effort in order to automate this pipeline will be very convinient for future updates of the tasks.

Lecture 2, slide 40: rewording is needed

"An optimal policy must equal the expected return for the best action
of a given state:"

A policy cannot equal to the expected return since they are different things. Re-wording is needed for this sentence.

Insufficient explanation Lecture 2, slide 8

In Lecture 2, slide 8, it is not explained how P_{xx'}^m in eq.(2.3) can be replaced by a constant transition matrix as m goes to infinity. It is clear that as m goes to infinity p_{k+m} and p_{k} in eq.(2.3) can be replaced by a constant matrix p, but not clear and not explained how P_{xx'}^m becomes P_{xx'}.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.