This reading list is mostly centered around the practical application of linear dynamical systems models to predict neural data.
see the collapsible version of this list here: [collapsible outline]
- Shortlist
- Overviews
- Model types
- State estimations
- System identification
- Software tools
- Control
- Stimulus optimization
- Misc.
[++] "A new look at state-space models for neural data" (2010) Paninski et al.
[++] "Empirical models of spiking in neural populations " (2011) Macke et al.
[++] "Selective modulation of cortical state during spatial attention" (2016) Engel et al.
- [Supplement] contains excellent methods details, including comparison of HMM to GPFA, and measuring performance as a function of number of discrete states
[++] "Dynamic Analysis of Neural Encoding by Point Process Adaptive Filtering" (2004) Eden et al.
[+] "Multiscale modeling and decoding algorithms for spike-field activity" Hsieh … Shanechi
ldsCtrlEst: dynamical system estimation & control library - Stanley Rozell labs:[docs] [code]
- primarily focused on implementing dynamical systems within systems neuroscience experiments
[++] "A new look at state-space models for neural data" (2010) Paninski et al.
"State-Space Models for the Analysis of Neural Spike Train and Behavioral Data" (2016) Chen & Brown
-
see also: SSPPF - a kalman filter for point-process / spiking
-
[++] "Dynamic Analysis of Neural Encoding by Point Process Adaptive Filtering" (2004) Eden et al.
-
"Estimating a state-space model from point process observations" (2003) Smith, Brown
-
[+] "State-Space Models" (2013) scholarpedia page by Chen & Brown
-
discusses model variants, fitting, applications
-
has lots of great references
- video lectures + slides
- accompanying python tutorial
- See also a Brain Inspired podcast episode with some of the experts from that course
Tutorial: Statistical models for neural data - Jonathan Pillow [part 1] [part 2] [slides] [code]
"STATS320: Machine Learning Methods for Neural Data Analysis" course by Scott Linderman
-
includes code labs:
"Math Tools for Neuroscience" - Ella Batty
-
video lectures & code tutorials
-
great visual explanations
-
see especially: Intro to dynamical systems
"Introduction to Dynamical Systems" lecture by Stephen Boyd
-
Tutorial on Dynamical Systems by Dean, Leach, Shatkay @ Brown University
-
Dynamical Systems Tutorial by Gregor Schöner
-
(see high-level section)
-
This list was assisted / inspired by tables I saw at COSYNE, I believe from Adam Calhoun and Memming Park
-
See [[Dimensionality reduction in neural data analysis]] by Patrick Minaeult for a broad and well-motivated discussion of techniques for dimensionality reduction (including dynamical systems) including a recap of taxonomies of models assembled by Cunninham, Park, and Hurwitz et al.
-
primarily used for dimensionality reduction
-
[++] "Gaussian-process factor analysis for low-dimensional single-trial analysis of neural population activity" (2009) Yu et al.
-
"Temporal alignment and latent Gaussian process factor inference in population spike trains" Duncker & Sahani
Hidden Markov Models (HMM)
-
[++] "Hidden Markov Models for the Stimulus-Response Relationships of Multistate Neural Systems" Escola et al.
- extensive, tutorial style paper
-
[++] "Selective modulation of cortical state during spatial attention" (2016) Engel et al.
- [Supplement] contains excellent methods details, including comparison of HMM to GPFA, and measuring performance as a function of number of discrete states
-
"Lecture 12: EM and Hidden Markov Models" - Linderman
-
from Machine Learning Methods for Neural Data Analysis
-
also covers Gaussian (obsv.) HMM
-
-
HMM + guassian observation (GaussianHMM)
-
matlab [code] +[notes] (covers HMM, gHMM, GMM-HMM) - by Qiuqiang Kong
-
HMM + mixture of gaussian observations (GMM-HMM)
- "HMM & gaussian mixture models" lecture notes by Shimodaira & Renals
-
-
Gaussian observations (GLDS)
-
Poisson observations (PLDS)
-
[++] "Empiricalmodelsof spiking in neural populations" (2011) Macke et al.
-
fitting toolbox:
-
pop_spike_dyn:This repository contains different methods for linear dynamical system models with Poisson observations.
- example script: PLDSExample.m
-
-
-
generalized count (GC LDS) and nonlinear function (fLDS)
-
Switched dynamical systems (SLDS) - switches between multiple LDS models to capture distinct regimes of dynamical behavior
-
[+] "Dynamical segmentation of single trials from population neural data" Petreska et al.
-
Recurrent SLDS (rSLDS)
-
“The recurrent SLDS introduces an additional dependency between the discrete and continuous latent states, allowing the discrete state probability to depend upon the previous continuous state” - Linderman
-
[++] "Recurrent switching linear dynamical systems" Linderman et al.
-
"Recurrent Switching Linear Dynamical Systems for Neural and Behavioral Analysis" talk by Linderman
-
-
-
variational latent gaussian process (vLGP)
-
Variational Inference for Nonlinear Dynamics (VIND)
-
"Blackboxvariational inference for state space models" (2015) Archer et al.
-
"A Novel Variational Family for Hidden Nonlinear Markov Models" (2018) Hernandez et al.
-
-
Latent Factor Analysis via Dynamical Systems (LFADS)
-
[++] "LFADS - Latent Factor Analysis via Dynamical Systems" Sussillo et al. [code & documentation]
-
LFADS tutorial from the "Computation through Dynamics" group
- "Inferring single-trial neural population dynamics using sequential auto-encoders" Pandarinath et al.
-
-
See also: Recurrent Neural Networks (RNN)
- "Recurrent Neural Networks" Lecture slides & references by Adam Willats
-
[++] "Dynamic Analysis of Neural Encoding by Point Process Adaptive Filtering" (2004) Eden et al.
-
"Estimating a state-space model from point process observations" (2003) Smith, Brown
- [+] "Multiscale modeling and decoding algorithms for spike-field activity" Hsieh … Shanechi
-
“System Identification” Lennary Ljung - canonical text on system ID, author is the architect of MATLAB’s sys ID toolbox
-
"Nonlinear System Identification: A User-Oriented Roadmap" Schoukens & Ljung
-
-
Overview by S.Brunton - "Data-Driven Control: Linear System Identification"
-
Lecture notes by K.Pelckmans "System Identification"
-
"Subspace Identification for Linear Systems" (1996) Van Overschee & De Moor
-
"System Identification Methods" by Brian Douglas, a practical, control-focused overview in easy-to-understand terms
- see also "Modeling Physical Systems, An Overview"
-
"System Identification - Data-Driven Modelling of Dynamic Systems" - Paul Van den Hof
-
extensive, discusses the challenges of identificaiton in closed-loop
-
course page: [link]
- includes lectures & exercises
-
lecture notes: [link]
-
-
"Estimating state and parameters in state space models of spike trains" Macke, Buesing, Sahani
-
chapter in “Advanced State-Space Methods for Neural and Clinical Data”
-
Subspace-ID for GLDS
-
Subspace-ID for PLDS
-
-
"Spectral learning of linear dynamics from generalised-linear observations with application to neural population data" Buesing, Macke, Sahani
- see also:
-
"Extracting low-dimensional dynamics from multiple large-scale neural population recordings by learning to predict correlations" Nonnenmacher et al.
-
"Blackboxvariational inference for state space models" (2015) Archer et al.
-
"Variational EM for SLDS (switching linear dynamical systems)" Lecture by Linderman
-
[++] "Learning stable, regularised latent models of neural population dynamics" Buesing, Macke, Sahani
-
"A Regularized Linear Dynamical System Framework for Multivariate Time Series Analysis" Liu and Hauskrecht
-
"Identification of stable models in subspace identification by using regularization" Gestel et al.
-
"Learning Linear Dynamical Systems from Multivariate Time Series: A Matrix Factorization Based Framework" Liu and Hauskrecht
-
ss()
to build modelsrss()
to generate random models
-
ssest()
andssregest()
to fit models-
modred()
to reduce model order- see also
balred()
, Model Reducer app
- see also
-
-
eig
,pzmap
for inspecting eignevalues (and eigenvectors) of a system
-
ldsCtrlEst: dynamical system estimation & control library - Stanley Rozell labs:[docs] [code]
- primarily focused on implementing dynamical systems within systems neuroscience experiments
-
hmm: generation & decoding of hidden markov models [docs] [code]
-
pmtk3: probabilistic machine learning
- usupported as of 2019, succeeded by PyProbML
-
"SSM: Bayesian learning and inference for state space models" [ink]
-
Additional
-
GLMSpikeTools: Fitting and simulation of Poisson generalized linear model for single and multi-neuron spike trains [link]
-
pop_spike_dyn:This repository contains different methods for linear dynamical system models with Poisson observations.
- example script: PLDSExample.m
-
- may be redundant with lindermanlab/ssm
-
SSIDforPLDS: Subspace Identification for Poisson Linear Dynamical system
-
poisson-gpfa: Gaussian process factor analysis with Poisson observations - Macke Lab
-
hmmlearn: set of algorithms for unsupervised learning and inference of Hidden Markov Models
- see also seqlearn: sequence learning toolkit for python
-
autohmm: packages provides an implementation of Hidden Markov Models (HMMs) with tied states and autoregressive observations, written in Python
-
- these controls tutorials by UMich are excellent, and involve some discussion of state-space representation of dynamical systems
Feedback Systems: An Introduction for Scientists and Engineers - by Åström and Murray
- Python Control Systems Library a toolbox for analysis and design of feedback control systems as well as demos for several exercises from "Feedback Systems" mentioned above
-
good at bridging the intuitive and mathematical concepts
-
topics include:
-
stability analysis (of nonlinear, time-varying systems)
-
robust & adaptive control
-
Chapter 3: Dynamics, of “Control System Design” by Karl Astrom is excellent.
- see also: "Chapter 2. System Modeling" from “Feedback Control” by Karl Astrom
"Linear Matrix Inequalities in System and Control Theory" by Stephen Boyd
- excellent for constrained controller design
“Statistical models for neural encoding, decoding, and optimal stimulus design.” Paninski, Pillow, Lewi
Some slides on interpretation of neural systems as dynamical systems which compute are presented here:
-
"Neural circuits as computational dynamical systems" (2014) Sussillo
-
“Latent Factors and Dynamics in Motor Cortex and Their Application to Brain–Machine Interfaces“ (2018) Pandarinath et al.
-
"Neural field models for latent state inference: Application to large-scale neuronal recordings" (2019) Rule et al.
-
“Computation through Neural Population Dynamics” (2020) Vyas et al.
-
Neuronal Dynamics- Gerstner et al.
-
Has video lectures and python exercises
-
Covers a lot of math very clearly
-
-
“Data Driven Science & Engineering Machine Learning, Dynamical Systems, and Control" Brunton & Kutz
-
"Probabilistic Machine Learning" - a book series by Kevin Murphy
-
has an associated codebase of tools: https://github.com/probml/pyprobml/
- prior toolbox:
-
-
Nonlinear Dynamics and Chaos - Strogatz
-
“Neuroscience” (2004) Purves et al