Skip to content
Variational Latent Gaussian Process
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
notebook Do not save synthetic data Feb 16, 2019
tests Add the function computing log-likelihood Mar 26, 2019
vlgp Add the function computing log-likelihood Mar 26, 2019
.gitattributes Fix GitHub identification Mar 5, 2019
.gitignore
LICENSE add MIT license Mar 23, 2016
Pipfile Update dependency Jan 31, 2019
README.md Update README Mar 26, 2019
pyproject.toml Update version Mar 19, 2019
requirements.txt Update requirements.txt Feb 15, 2019
setup.py Remove legacy h5py functions Mar 19, 2019

README.md

variational Latent Gaussian Process

license python 3.5 python 3.6 pip

Introduction

This repo contains the implementation of variational Latent Gaussian Process (vLGP) (arXiv) (video) by Yuan Zhao (yuan.zhao@stonybrook.edu) and Il Memming Park (memming.park@stonybrook.edu). It has been developed with the goal of recovering low-dimensional dynamics from neural population recordings.

Installation

pip

pip install vlgp

from source

git clone https://github.com/catniplab/vlgp.git
cd vlgp
pip install -e .

Usage

The main entry is vlgp.fit. The fit function requires two arguments trials and n_factors. The former is expected as a list of dictionaries, each of which stores on trial and at least contains a identifier ID and the observation y in the shape of (bin, channel). The later specifies the number of factors (latent processes).

result = vlgp.fit(
    trials,       # list of dictionaries
    n_factors=3,  # dimensionality
)

The fit function returns a dictionary of trials, params and config as the fitted model.

Please see the tutorial for details.

Citation

@Article{Zhao2017,
  author    = {Yuan Zhao and Il Memming Park},
  title     = {Variational Latent Gaussian Process for Recovering Single-Trial Dynamics from Population Spike Trains},
  journal   = {Neural Computation},
  year      = {2017},
  volume    = {29},
  number    = {5},
  pages     = {1293--1316},
  month     = {may},
  doi       = {10.1162/neco_a_00953},
  publisher = {{MIT} Press - Journals},
}

Changes

2018

  • New uniform data structure
  • Support trials of unequal duration
  • Faster
  • Use NumPy data format

2017

  • New fit function now only requires observation and the number of latent.
  • Save snapshots if path is passed to fit.
  • You can access the iterations via callback.
You can’t perform that action at this time.