# System identification in continuous time

Learning in continuous ODEs, SDEs and CDEs

August 1, 2016 — November 30, 2023

Learning the parameters of a dynamical system in continuous time. Gets extra tricky for stochastic systems.

## 1 Recursive estimation

See recursive identification for generic theory of learning a Markovian under the distribution shift induced by a moving unobserved state vector.

## 2 Introductory reading

See the writings of the indefatigable Chris Rackauckas (Rackauckas et al. 2018), plus his tutorial implementations and whole whole MIT course. Chris Rackauckas’ lecture notes christen this area “scientific machine learning”, which is a confusing and ambiguous choice, but let us run with it.

## 3 Basic SDEs

TBD.

## 4 In PDEs

Learning stochastic partial differential equations where a whole random field evolves in time is something of interest to me; see spatiotemporal nets and spatiotemporal dynamics for more on that theme.

See differentiable PDE solvers for now.

## 5 With sparse SDEs

For least-squares system identification see sparse stochastic processes.

## 6 Neural approximation

## 7 Via simulations only

## 8 Controlled differential equations

TBD

## 9 Method of adjoints

A trick in differentiation which happens to be useful in differentiating likelihood (or other functions) of time evolving systems e.g. Errico (1997). If the system is deterministic this is not too bad. It is complicated in stoah

For now, see the method of adjoints in the autodiff notebook.

## 10 Tooling

### 10.1 Python

Diffrax is a JAX-based library providing numerical differential equation solvers.

Features include:

- ODE/SDE/CDE (ordinary/stochastic/controlled) solvers
- lots of different solvers (including
`Tsit5`

,`Dopri8`

, symplectic solvers, implicit solvers)- vmappable
everything(including the region of integration)- using a PyTree as the state
- dense solutions
- multiple adjoint methods for backpropagation
- support for neural differential equations.

From a technical point of view, the internal structure of the library is pretty cool — all kinds of equations (ODEs, SDEs, CDEs) are solved in a unified way (rather than being treated separately), producing a small tightly-written library.

### 10.2 Julia

Chris Rauckackas is a veritable wizard with this stuff; read his blog.

Here is a tour of fun tricks with stochastic PDEs. There is a lot of tooling for this; DiffEqOperators … does something. DiffEqFlux (EZ neural ODEs works with Flux and claims to make neural SDE simple.

+1 for Julia here.

## 11 Incoming

## 12 References

*Stochastic Processes and Their Applications*.

*arXiv:1702.05390 [Physics, Stat]*.

*arXiv:1404.7456 [Cs, Stat]*.

*Journal of Nonlinear Science*.

*Proceedings of ICLR*.

*Advances in Neural Information Processing Systems 31*.

*Advances in Neural Information Processing Systems*.

*arXiv:2012.07244 [Cs]*.

*Bulletin of the American Meteorological Society*.

*arXiv:1902.10298 [Cs]*.

*arXiv:2007.04154 [Cs, q-Fin, Stat]*.

*arXiv:1810.01367 [Cs, Stat]*.

*Advances in Neural Information Processing Systems*.

*Royal Society Open Science*.

*Advances in Neural Information Processing Systems 32*.

*arXiv:2005.08926 [Cs, Stat]*.

*arXiv:2107.10127 [Math, Stat]*.

*International Conference on Artificial Intelligence and Statistics*.

*Annual Reviews in Control*.

*arXiv:2107.10879 [Physics]*.

*arXiv:2107.11253 [Nlin, Physics:physics, Stat]*.

*IEEE Transactions on Signal Processing*.

*arXiv:2002.08071 [Cs, Stat]*.

*Probabilistic Engineering Mechanics*.

*arXiv:1612.07197 [Math, Stat]*.

*arXiv:1612.09158 [Cs, Stat]*.

*arXiv:1812.01892 [Cs]*.

*arXiv.org*.

*arXiv:2109.07573 [Physics]*.

*Artificial Neural Networks and Machine Learning – ICANN 2011*. Lecture Notes in Computer Science.

*Applied Stochastic Differential Equations*. Institute of Mathematical Statistics Textbooks 10.

*arXiv:2103.10153 [Cs, Stat]*.

*Advances in Neural Information Processing Systems*.

*arXiv:2007.00016 [Physics]*.

*An Introduction to Sparse Stochastic Processes*.

*arXiv:1602.05125 [Math, Stat]*.

*Nuclear Engineering and Design*.

*Neural Networks*.

*arXiv:1905.10994 [Cs, Stat]*.

*Statistical Inference for Stochastic Processes*.

*SIAM Journal on Scientific Computing*.