Giter Club home page Giter Club logo

vlgp's Introduction

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 ([email protected]) and Il Memming Park ([email protected]). It has been developed with the goal of recovering low-dimensional dynamics from neural population recordings.

Installation

pip

pip install git+https://github.com/catniplab/vlgp.git

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.

vlgp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vlgp's Issues

Add support for trials of unequal length

Unfold trial dimension, use slice indexing trials
[time (concatenate trials at this dimension), space, any 3rd dimension]
Consider sparse block diagonal matrix where the blocks are prior covariance, otherwise list of 3d arrays, [T, r, latent dimension]

Rates fall back to zero when spike occurs

Every time there is spike sample('y') in the tutorial the rate (sample('rate')) does not continue normally but falls back to zero.

Shoudn't the rate not be affected by the individual spikes since they are sample from the rates?

The problem probably lies in
eta = x[m, t, :] @ a + np.einsum('ij, ji -> i', h[:, m, t, :], b) (line 111 in simulation.py)
which I do not fully understand.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.