Matlab (recommended) and Python (in developement) implementations of Soulat et al. (2021).
The model (A) decomposes an observed count tensor (eg. binned spikes) using a Negative Binomial distribution that depends on a shape parameter, a constrained offset (B) and low rank tensor (C). Variational inference is implemented using a Pólya-Gamma augmentation scheme.
To train the model(s) on the toydataset described in the paper open:
matlab/demo_vbgcp.m
Or:
python/examples/demo_tensor_variational_inference.ipynb
PG approximation Figures can be generated with:
matlab/study_polyagamma.m
We process results from S.Keshavarzi (2021) https://doi.org/10.1101/2021.01.22.427789 and benchmark performance of our method compared to standard (G)CP baselines in terms of Variance Explained (A) Deviance Explained (B) and a robustness/similarity metric (C)
Figure generated using:
matlab/data_benchmark.m
matlab/data_benchmark_process.m
If our work helps you in a way that you feel warrants reference, please cite the following paper:
@inproceedings{
soulat2021probabilistic,
title={Probabilistic Tensor Decomposition of Neural Population Spiking Activity},
author={Hugo Soulat and Sepiedeh Keshavarzi and Troy William Margrie and Maneesh Sahani},
booktitle={Thirty-Fifth Conference on Neural Information Processing Systems},
year={2021},
url={https://openreview.net/forum?id=1bBF5Zq1YHz}
}