# Inference for Dynamic Bayesian Networks

I have a lot of time-series data for physical systems, where the underlying state-space model is quite complex and definitely not linear, so a Kalman Filter is out of the question. Following the ideas in the paper Bayesian networks for mathematical models: Techniques for automatic construction and efficient inference, I would like to use Dynamic Bayesian Networks (DBN) to model these problems. What are the most common approaches to define these DBN, and subsequently perform inference? I'd prefer methods for which libraries/packages in R or Python are available, to avoid reinventing the wheel.

Note: I don't expect to learn the topology of the network from data (at least not right at the start of the activity!). For now I'm with deriving the network structure from domain knowledge (physical laws). However, I need a flexible framework for inference, because I will apply it to many different DBN, not to just one fixed topology.

I personally think the question is too broad to be answered well, But I still want to give some suggestions.

I feel Murphy's introduction to graphical models is very useful and it covers Bayesian Network with discrete time very well. If you have not checked this, I would recommend to read this first.

A Brief Introduction to Graphical Models and Bayesian Networks

To build a Bayesian network (with discrete time or dynamic bayesian network), there are two parts, specify or learn the structure and specify or learn parameter.

To my experience, it is not common to learn both structure and parameter from data.

• People often use the domain knowledge plus assumptions to make the structure
• And learn the parameters from data.

A useful R library can be found in BNLearn, it supports both structure and parameter learning.

Finally I may suggest you to check some Recurrent Neural Network literatures. The deep learning book chapter 10 gives very nice explanation on the relationship between dynamic bayesian network and recurrent neural network. Deep learning is a really hot area recently, and there are more resources there.

• thanks for the tips! I haven't read cs.ubc.ca/~murphyk/Bayes/bnintro.html, but I do have read cs.ubc.ca/~murphyk/papers/dbntalk.pdf from the same author. However, your link is better because it actually points to software packages :) I was already thinking to get the Goodfellow's book, so now you definitely convinced me. Oct 12, 2017 at 15:08
• By the way, the question is not too broad: I never mentioned learning the structure of the network. I was only thinking of maybe learning one or two transfer functions, of a network whose structure is otherwise specified (see the paper I linked). However, I'm ok with just parametrizing those few transfer functions, bringing back the learning problem to an inference problem with more parameters. I'll modify the question accordingly. Oct 12, 2017 at 15:13