For many applications (especially those involving predicting the future), I believe online methods represent the more natural approach compared to traditional batch-style processing. For example, human beings appear to have strong online-learning capabilities; we absorb new information quickly and can use that information to make better decisions.

The Online Temporal Learning (OTL) Library is a C++ library that:

  1. Implements two algorithms (OESGP and STORKGP) for online learning from time-series; these methods provide a prediction as well as uncertainties associated with that prediction.
  2. Provides basic memory structures (reservoir and a window) as well as online learning methods (e.g. recursive least squares and online gaussian process).
  3. Allows you to extend it to create new, online-learning methods.

I created this library primarily for intelligent robotics work but OTL is applicable to a wide range of temporal modelling (e.g, financial, physiological, environmental). It is most useful when you have a lot of data that arrives sequentially that you have to process quickly. For example, visual data from a camera. Using the OTL algorithms (OESGP and STORKGP) allows you to learn in an online manner by processing observations one-by-one.

To enable users to quickly get up and running, Python and MATLAB bindings are available for the OESGP and STORKGP algorithms. Future planned bindings will allow access to lower-level functions.

If that sounds like something you like or have a use for, get it:

  1. Mercurial Repository: https://bitbucket.org/haroldsoh/otl
  2. Zipped file: https://bitbucket.org/haroldsoh/otl/downloads

A Short FAQ:

How to download and install it?

You can get OTL either by cloning the repository using Mercurial or by downloading the library as a zipped file:

  1. Mercurial Repository: https://bitbucket.org/haroldsoh/otl
  2. Zipped file: https://bitbucket.org/haroldsoh/otl/downloads

What Operating Systems are supported?

OTL has been tested and found working on Mac (Leopard/Snow Leopard/Lion) and Ubuntu Linux based systems (10.x through 12.x). I have not yet tested it on Windows. If you get it working on a version of Windows, please let me know.

How do I learn how to use it?

The best place to learn more about OTL is on the bitbucket wiki. In particular, take a look at the Getting Started Guides.

Where do I go if I have questions?

At some point, I’ll set up a mailing list. In the meantime, feel free to email me but depending on my workload, replies may be slow in coming. Please try to look for the information on the wiki before emailing me.

What is OTL not good for?

OTL is not so useful when you have very little data and a lot of time to process it. In those cases, you’re probably better off using a batch/offline method like a full Gaussian Process or Support Vector Machine. [But I have plans to include these methods in OTL in a future release]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: