Inferring stochastic low-rank recurrent neural networks from neural data

Matthijs Pals, A. E. Saugtekin, Felix Pei, Manuel Gloeckler, J. H. Macke
6/1/2024

No official code found. Best implementation: mackelab/smc_rnns (27 stars, Apache-2.0, last commit 2026-01-26).

Abstract

A central aim in computational neuroscience is to relate the activity of large populations of neurons to an underlying dynamical system. Models of these neural dynamics should ideally be both interpretable and fit the observed data well. Low-rank recurrent neural networks (RNNs) exhibit such interpretability by having tractable dynamics. However, it is unclear how to best fit low-rank RNNs to data consisting of noisy observations of an underlying stochastic system. Here, we propose to fit stochastic low-rank RNNs with variational sequential Monte Carlo methods. We validate our method on several datasets consisting of both continuous and spiking neural data, where we obtain lower dimensional latent dynamics than current state of the art methods. Additionally, for low-rank models with piecewise linear nonlinearities, we show how to efficiently identify all fixed points in polynomial rather than exponential cost in the number of units, making analysis of the inferred dynamics tractable for large RNNs. Our method both elucidates the dynamical systems underlying experimental recordings and provides a generative model whose trajectories match observed variability.

View on arXivView PDF

Code Implementations(1)

mackelab/smc_rnnsCommunity100%
Apache-2.0

Code accompanying Inferring stochastic low-rank RNNs from neural data. @matthijspals

276Shell, PythonJun 22, 20249 months agoApache-2.0

Similar Papers

Cite this paper

@article{pals2024inferring,
  title  = {Inferring stochastic low-rank recurrent neural networks from neural data},
  author = {Matthijs Pals and A. E. Saugtekin and Felix Pei and Manuel Gloeckler and J. H. Macke},
  year   = {2024},
  eprint = {2406.16749},
  archivePrefix = {arXiv},
  doi    = {10.48550/arXiv.2406.16749},
  url    = {https://arxiv.org/abs/2406.16749},
  journal = {NEURIPS 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2406.16749.svg)](https://codeofpaper.com/paper/2406.16749)

Discussion