Framework

The Explorers framework is aimend at creating, testing and comparing autonomous exploration strategies of sensorimotor spaces. The framework is largely strategy-agnostic, and is aimed as expressing motor babbling, goal babbling and intrinsically motivated exploration algorithms, among other. It is also able to express strategies that feature transfer learning, such as the reuse algorithm we introduce in (Benureau, Fudal & Oudeyer, 2014).

At the center of the framework, an explorer receives observations and provides motor commands for the environment to execute.

An Explorer


We can then easily express a typical goal babbling architecture (the feedback and update is subsequently assumed for all explorers and not pictured).

Goal babbling architecture


Here, the explorer interacts with the environment, rather than the inverse model. Such an architecture allows to filter motor commands that are proposed by the inverse model, and eventually to select another goal if the motor command is not satisfactory or possible to execute.

The framework is organized in a modular way. This allows to create flexible hierarchical architectures made of several, atomic or themselves composite, exploration strategies.

A multi-explorer architecture


Likewise, multi-learners architecture are completely natural.

A multi-learner architecture


Code

The explorers python package is an implementation of the Explorer framework. Examples are provided; they run in a few seconds, and allow for instance to quickly understand the difference between motor and goal babbling, and how the different environmental and exploration parameters affect the result.

Static Notebook

Precomputed ipython notebook examples of goal babbling and reuse are available, so you examine an execution without installing anything. To modify the values of the parameters and see the results, you need to install the code though.

Installing

# the forest package has to be installed manually for now.
git clone https://github.com/flowersteam/forest
cd forest; python setup.py install; cd ..;

pip install numpy bokeh environments explorers "ipython[notebook]"

Running Examples

Download the examples.

git clone https://github.com/humm/explorers
cd explorers/examples/

You can run the commented notebook examples on goal_babbling. You can zoom and interact with every graph. :

ipython notebook goal_babbling.ipynb
ipython notebook reuse_example.ipynb

Alternatively, you can execute the python files. The resulting graphs will automatically open in a browser; while the commentary is available in the code.

python goal_babbling.py
python reuse_example.py

The code should, but might not, work out of the box. Should you have any problem setting up the examples or any questions about the algorithms or the library, contact fabien.benureau@inria.fr or create an issue on github.