michelangelo21 / ReinforcementLearning.jl

A reinforcement learning package for Julia

Home Page:https://juliareinforcementlearning.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


ReinforcementLearning.jl, as the name says, is a package for reinforcement learning research in Julia.

Our design principles are:

  • Reusability and extensibility: Provide elaborately designed components and interfaces to help users implement new algorithms.
  • Easy experimentation: Make it easy for new users to run benchmark experiments, compare different algorithms, evaluate and diagnose agents.
  • Reproducibility: Facilitate reproducibility from traditional tabular methods to modern deep reinforcement learning algorithms.

🏹 Get Started

julia> ] add ReinforcementLearning

julia> using ReinforcementLearning

julia> run(
           RandomPolicy(),
           CartPoleEnv(),
           StopAfterStep(1_000),
           TotalRewardPerEpisode()
       )

The above simple example demonstrates four core components in a general reinforcement learning experiment:

Check out the tutorial page to learn how these four components are assembled together to solve many interesting problems. We also write blog occasionally to explain the implementation details of some algorithms. Among them, the most recommended one is An Introduction to ReinforcementLearning.jl, which explains the design idea of this package. Besides, a collection of experiments are also provided to help you understand how to train or evaluate policies, tune parameters, log intermediate data, load or save parameters, plot results and record videos. For example:

🌲 Project Structure

ReinforcementLearning.jl itself is just a wrapper around several other subpackages. The relationship between them is depicted below:

+-----------------------------------------------------------------------------------+
|                                                                                   |
|  ReinforcementLearning.jl                                                         |
|                                                                                   |
|      +------------------------------+                                             |
|      | ReinforcementLearningBase.jl |                                             |
|      +----|-------------------------+                                             |
|           |                                                                       |
|           |     +--------------------------------------+                          |
|           +---->+ ReinforcementLearningEnvironments.jl |                          |
|           |     +--------------------------------------+                          |
|           |                                                                       |
|           |     +------------------------------+                                  |
|           +---->+ ReinforcementLearningCore.jl |                                  |
|                 +----|-------------------------+                                  |
|                      |                                                            |
|                      |     +-----------------------------+                        |
|                      +---->+ ReinforcementLearningZoo.jl |                        |
|                            +----|------------------------+                        |
|                                 |                                                 |
|                                 |     +-------------------------------------+     |
|                                 +---->+ DistributedReinforcementLearning.jl |     |
|                                       +-------------------------------------+     |
|                                                                                   |
+------|----------------------------------------------------------------------------+
       |
       |     +-------------------------------------+
       +---->+ ReinforcementLearningExperiments.jl |
       |     +-------------------------------------+
       |
       |     +----------------------------------------+
       +---->+ ReinforcementLearningAnIntroduction.jl |
             +----------------------------------------+

πŸ–– Supporting

ReinforcementLearning.jl is a MIT licensed open source project with its ongoing development made possible by many contributors in their spare time. However, modern reinforcement learning research requires huge computing resource, which is unaffordable for individual contributors. So if you or your organization could provide the computing resource in some degree and would like to cooperate in some way, please contact us!

✍️ Citing

If you use ReinforcementLearning.jl in a scientific publication, we would appreciate references to the CITATION.bib.

✨ Contributors

Thanks goes to these wonderful people (emoji key):


jbrea

πŸ’» πŸ“– 🚧

Jun Tian

πŸ’» πŸ“– 🚧 πŸ€”

Aman Bhatia

πŸ“–

Alexander Terenin

πŸ’»

Sid-Bhatia-0

πŸ’»

norci

πŸ’» 🚧

Sriram

πŸ’»

Pavan B Govindaraju

πŸ’»

Alex Lewandowski

πŸ’»

Raj Ghugare

πŸ’»

Roman Bange

πŸ’»

Felix Chalumeau

πŸ’»

Rishabh Varshney

πŸ’»

Zachary Sunberg

πŸ’» πŸ“– 🚧 πŸ€”

Jonathan Laurent

πŸ€”

Andriy Drozdyuk

πŸ“–

Ritchie Lee

πŸ›

Xirui Zhao

πŸ’»

Nerd

πŸ“–

Albin Heimerson

πŸ’»

michelangelo21

πŸ›

GuoYu Yang

πŸ“– πŸ’»

Prasidh Srikumar

πŸ’»

Ilan Coulon

πŸ’»

Jinrae Kim

πŸ“– πŸ›

luigiannelli

πŸ›

Jacob Boerma

πŸ’»

Xavier Valcarce

πŸ›

Ashwani Rathee

πŸ’»

Goran Nakerst

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

About

A reinforcement learning package for Julia

https://juliareinforcementlearning.org

License:Other


Languages

Language:Julia 99.4%Language:Dockerfile 0.5%Language:TeX 0.1%