Skip to content

Learning unknown ODE models with Gaussian processes

License

Notifications You must be signed in to change notification settings

cagatayyildiz/npode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[This repository is overriden by a more recent TensorFlow implementation available here.]

npODE

This repository contains a MATLAB implementation of npODE - a nonparametric model for learning unknown ordinary differential equations. The paper we describe the model is on arxiv.

MATLAB Code

The implementation is in MATLAB (2017b) and it does not depend on any software other than MATLAB's own optimization function fminunc and ODE solver ode45. So, you should be able to run the code off-the-shelf.

Fitting our model on some data is as simple as follows:

gp = npode_fit(t,Y); % t and Y are the time points and the observations

It is also possible to predict the future:

X = npode_predict(gp,ts,x0) % ts and x0 are the time points and the initial value

To familarize yourself with the implementation, you may see demo. This script first generates trajectories from Van der Pol oscillator with Gaussian noise, and then fits and visualizes npODE model. After fitting the model, you should see a figure similar to below:

VDP

Perhaps the next file to investigate is ode/np_de_model, where npODE model parameters are stored. The posterior and its gradients are computed in ode/np_ode_fg.

CMU Walking Data Experiments

To evaluate the model on real data, we use a benchmark dataset of human motion capture data from the Carnegie Mellon University motion capture (CMUmocap) database. We evaluate the method with two types of experiments: imputing missing values and forecasting future cycles.

The folder named exps is devoted for these experiments. To run the experiments, switch to this directory and execute demo_cmu_walking. See the file for how to input different files and run imputation/forecasting experiments.

It is also possible to execute two more models on the same data sets: Gaussian Process Dynamical Model (GPDM) and Variational (Bayesian) GP-LVM model (VARGPLVM). In order to run these models, please download the software from the links above and update the paths in exps/init_paths.m.

About

Learning unknown ODE models with Gaussian processes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages