/vind

Tensorflow Implementation of VIND

Primary LanguagePython

VIND: Variational Inference for Nonlinear Dynamics (with tensorflow)

This code is a basic implementation in tensorflow, of the paper "Variational Inference for Nonlinear Dynamics", accepted for the Time Series Workshop at NIPS 2017. It represents a sequential variational autoencoder that is able to infer nonlinear dynamics in the latent space. The training algorithm makes use of a novel, two-step technique for optimization based on the Fixed Point Iteration method for finding fixed points of iterative equations.

Original Inferred

Installation

The code is written in Python 3.5. You will need the bleeding edge versions of the following packages:

  • tensorflow
  • seaborn

In addition, up-to-date versions of numpy, scipy and matplotlib are expected.

Usage

Firing python runner.py works right off the bat. The code will find a two dimensional encoding and dynamical system describing the provided Gaussian data. A figure is provided with the original dynamical system and simulated trajectories that can be compared with the resulting fit. The hyperparameter plot2D, default-set to True, will produce these path+dynamics plots automatically for 2D latent spaces.