lindermanlab / ssm

Bayesian learning and inference for state space models
MIT License
548 stars 199 forks source link

question rather than issue #15

Closed heejaeyunajang closed 5 years ago

heejaeyunajang commented 5 years ago

How is the HMM model here different from that developed by the Datta lab?

slinderman commented 5 years ago

Great question! The Datta lab uses PyHSMM (https://github.com/mattjj/pyhsmm/) and, to a lesser extent, PyLDS (https://github.com/mattjj/pylds/) and PySLDS (https://github.com/mattjj/pyslds), all of which were written by Matt Johnson (@mattjj). I've used these libraries extensively in my research and helped extend them in various ways; they're great codebases! SSM aims to provide a simpler interface to building and using state space models like HMM's, LDS's, and SLDS's, and to take advantage of new automatic differentiation libraries, specifically Autograd (https://github.com/HIPS/autograd), for "black box" learning and inference.

Before talking about differences, let me note that the codebases are quite similar. Both allow you to construct and fit a variety of state space models, including hidden Markov models (HMMs), linear dynamical systems (LDS), and switching linear dynamical systems (SLDS). Both take a Bayesian approach, estimating a posterior distribution over latent states. Both are written in an object oriented framework with base classes for the fundamental model objects (transitions, observations, etc.) that can be inherited from and extended as necessary.

The major differences are:

There are plenty of other subtle differences, but these are the main ones. Still, the takeaway should be that there are more similarities than differences.

heejaeyunajang commented 5 years ago

Thanks so much for such a detailed answer! :+1: That clarifies a lot!!