[ANN] ReinforcementLearning.jl v0.4.0

Hi all,

I’d like to announce a new release of ReinforcementLearning.jl. It’s been a really long time since our last release (almost a year and a half). Especially thank @jbrea for his encouragement, I reorganized almost all the code/project structure. Hoping that it will make things easier for people to learn and try different algorithms in Julia.

During the last two years, both the RL related fields and the DL ecosystem in Julia changed a lot. And we witnessed a lot of new RL related packages (both in Julia and Python) created in this period. Today ReinforcementLearning.jl is still at a very early stage. But I’m quite confident that it will have a much broader usage in the future.

Changes since the last release

  • Added a new RL environment OpenSpiel.jl
  • Examples in ReinforcementLearningAnIntroduction.jl can be run on mybinder interactively now. (Thanks to the efforts in this post)
  • Reusability is highly valued and most components can accept a keyword argument named seed.
  • The performance of some core components are greatly improved.
  • Projects in the JuliaReinforcementLearning org is reorganized as bellow:
+-------------------------------------------------------------------------------------------+
|                                                                                           |
|  ReinforcementLearning.jl                                                                 |
|                                                                                           |
|      +------------------------------+                                                     |
|      | ReinforcementLearningBase.jl |                                                     |
|      +--------|---------------------+                                                     |
|               |                                                                           |
|               |         +--------------------------------------+                          |
|               |         | ReinforcementLearningEnvironments.jl |                          |
|               |         |                                      |                          |
|               |         |     (Conditionally depends on)       |                          |
|               |         |                                      |                          |
|               |         |     ArcadeLearningEnvironment.jl     |                          |
|               +-------->+     OpenSpiel.jl                     |                          |
|               |         |     POMDPs.jl                        |                          |
|               |         |     PyCall.jl                        |                          |
|               |         |     ViZDoom.jl                       |                          |
|               |         |     Maze.jl(WIP)                     |                          |
|               |         +--------------------------------------+                          |
|               |                                                                           |
|               |         +------------------------------+                                  |
|               +-------->+ ReinforcementLearningCore.jl |                                  |
|                         +--------|---------------------+                                  |
|                                  |                                                        |
|                                  |          +-----------------------------+               |
|                                  |--------->+ ReinforcementLearningZoo.jl |               |
|                                  |          +-----------------------------+               |
|                                  |                                                        |
|                                  |          +----------------------------------------+    |
|                                  +--------->+ ReinforcementLearningAnIntroduction.jl |    |
|                                             +----------------------------------------+    |
+-------------------------------------------------------------------------------------------+

Next step

  • Alexander Terenin is working on some model-based algorithms :muscle: .
  • Many policy gradient methods will be added to RLZoo.
  • Some basic multi-agent reinforcement learning algorithms will be implemented and may be organized into a seperate project in the next release.

Call for contributions

I just work on this project in my spare time (And only have plenty of time recently due to COVID-19 in my hometown :mask:). So the time and efforts are not guaranteed. Really wish that there be more contributors. I’m really glad to see that some students who are applying for the J(G)SoC contacted me for advice. My suggestion is to take an overview of the doc first. I think the ideas in this project will still be useful even if you end up without relying on components in it.

Stay safe!

Jun

32 Likes

This looks really well structured. I am not knowledgeable enough to contribute, but using it seems very straightforward now! Will try it out!