DeepSSM SysID Save

Official PyTorch implementation of "Deep State Space Models for Nonlinear System Identification", 2020.

Project README

DeepSSM_SysID

Official repository for the PyTorch implementation of the paper:
Deep State Space Models for Nonlinear System Identification, at the 19th IFAC Symposium on System Identification (SYSID).
Links: [doi] [arXiv] [Code] [Slides].
Authors: Daniel Gedon, Niklas Wahlström, Thomas B. Schön, Lennart Ljung.

In this work we use six new deep State-Space Models (SSMs) developed from various authors in previous work and apply them for the field of nonlinear system identification. The available code provides a reimplementation of the six different models in PyTorch as a unified framework for these models. A toy problem and two established nonlinear benchmarks are used. The chosen methods benefit besides the identification of the system dynamics also from uncertainty quantification.

If you find this work useful, please consider citing:

@inproceedings{gedon2021deepssm,
  author={Gedon, Daniel and Wahlstr{\"o}m, Niklas and Sch{\"o}n, Thomas B. and Ljung, Lennart},
  title={Deep State Space Models for Nonlinear System Identification},
  booktitle={Proceedings of the 19th IFAC Symposium on System Identification (SYSID)},
  month={July},
  year={2021},
  note={online},
}

Repository overview

The different models are available in /models. The models are:

  • VAE-RNN
  • VRNN-Gauss-I
  • VRNN-Gauss
  • VRNN-GMM-I
  • VRNN-GMM
  • STORN

The files of experiments to be able to generate the figures in the paper are available in /final_toy_lgssm, /final_narendra_li and /final_wiener_hammerstein.

To run a single model you can use the file in the folder /experiment called main_single.py. Within the option list you can choose a specific model and a specific dataset.

The used data files are stored in /data. For the Wiener Hammerstein system we refer to the original website (see readme in the folder) since the data files are rather large. In order to extend for more datasets the dataset has to be provided in a specific format and added in the /data/loader.py. A training, validation and test dataset has to be provided as numpy arrays of shape (sequence length, signal dimension). The sequence length is defined in the file /options/dataset_options.py.

Open Source Agenda is not affiliated with "DeepSSM SysID" Project. README Source: dgedon/DeepSSM_SysID
Stars
87
Open Issues
0
Last Commit
2 years ago

Open Source Agenda Badge

Open Source Agenda Rating