Stable Linear Dynamical Systems

Introduction

Linear Dynamical Systems (LDS) are an important class of models for continuous-valued sequential data. LDSs assume that the data at every timestep is a noisy linear function of an underlying multivariate real-valued latent variable that evolves with linear dynamics.

In this paper we propose a novel algorithm for learning the parameters of an LDS from data while guaranteeing stability, which is a desirable characteristic often ignored by conventional LDS learning algorithms. Our empirical evaluation shows that our algorithm is more accurate AND more efficient than previous methods for learning stable LDSs. We demonstrate improved results in generating dynamic textures of vision data. We also provide the source code and training videos as used in the paper.

The NIPS 2007 paper is here:
A Constraint Generation Approach to Learning Stable Linear Dynamical Systems (preprint)

The technical report is here: (coming soon)

Code

Download Matlab source code (.zip)

The provided code implements the different LDS learning algorithms described in the papers above. In particular, the file learnLDS.m is a function that identifies the parameters of a linear dynamical system given a matrix of observations while allowing the user to select different stability-enforcing algorithms. For a concrete example of how to use learnLDS.m, see learnStableDT.m, a script that applies learnLDS.m to dynamic textures.