Reinforcement Learning Toolbox 2.0
last updated:
General
Overview
About
Documentation
Master Thesis
Examples
Related Papers
Downloads
Links
News
mailto:webmaster

Overview

The RL Toolbox is a C++ based, open-source, framework for all kinds of reinforcement learning (RL) algorithms. It can be used for all types of reinforcement learning tasks, it provides most of the common RL algorithms but also general interfaces for implementing new algorithms. In the design of the classes we focused our attention on the user-friendliness and extensibility, thus it is easy to implement new learning tasks or also learning algorithms. This tool allows the user to try out many RL algorithms with many different parameter settings (which is typically needed in reinforcement learning to find an algorithm which has a good performance) without much effort.

Basic Features

  • Easy to extend
  • Different kind of Learning Algorithms There are many different kinds of learning algorithm implemented, Q-Learning learning, TD(\lambda) Learning, Actor critic learning, Advantage Learning, model based reinforcement learning (prioritized sweeping, value iteration), policy search algorithms (CONJPOMDP).
  • A special focus is on algorithms for continuous control problems, these algorithms include the residual algorithm, continuous time RL, LSTD or also batch RL methods like fitted Q-Iteration
  • An huge variety of possibilities to build your v- or q-functions. Thew toolbox provides tools to easily create a compact discrete state space for your learning tasks. For continuous problemens, it also provides several function approximators like RBF networks, tilings, neural networks or regression trees.
  • Computation Speed: The implementation of the toolbox is optimized for computation speed, depending on the task, we can get a speed up to comparable matlab programs of a factor up to 100.
  • Learning from other Controllers: You can code you own controller for a learning problem and then try to improve the controller with reinforcement learning.
  • Tools for Logging and Error Recognition and analyzing the v- or q-functions
  • Learning of Semi MDP's with options. The toolbox offers you a flexible framewokr to implement options, i.e. actions which take longer than just one step. The most learning algorithms implemented in the toolbox also consider the duration of the action in their updates.
  • Hierarchical Reinforcement Learning: The toolbox provides a flexible framework to define subgoals and behaviors in order to bring more structure in the learning task, which can improve the performance of RL considerably.
  • Batch Mode RL: Batch mode RL usually uses the training data much more efficiently by storing episodes from the past. The toolbox provides fast mechanisms to do that, it supports fitted Q-Iteration with all kinds of function approximators (regression Trees, local Regression, Neural Networks...) and also Experience Replay.

Introduction to the System

The manual of the new version is part of the Master Thesis : "Reinforcement Learning for optimal control tasks". It contains a comprehensive description of the class framework, a more detailed description of the implementation details is given in the class reference. Unfortunately not all classes are really good documented, but these classes are usually not needed by the "standard user". For those who don't want to read the whole manual, there are some tutorials, see the example section.

Getting and installing the RL toolbox

The toolbox is written in OS independent c++ code, but the latest version of the toolbox is based on qmake and only tested on Linux machines. Windows is not supported any more. Windows users either have to use an older version of the toolbox or try to port the project to Windows on their own. You can download the RL Toolbox here. To install the toolbox, qmake is needed on your system.

The toolbox has been tested on Fedora Linux (2.6.16-1.2108_FC4smp) with gcc 4.02 and on SUSE Linux. If you have found any problems with other distributions, please contact me. For further installation notes please consult the README.txt file in the RL_Toolbox directory.

Contact

If you have any comments, suggestions or even have found a bug, please contact me at gerhard.neumann@igi.tu-graz.ac.at

Getting involved

You are interested in using or have already used the RL toolbox for a learning task? Then write us about your learning problem and your results so we can post it on our homepage.

If you want to implement another learning algorithm, which is not implemented in the RL Toolbox, please contact us. The toolbox can be easily extended with the advantage that you can use all the tools for logging, error recognition and analyzation from the toolbox.

Visits since 18.07.03: