Skip to content

🧠 A decoder of Spike Trains using 🔬 Bayesian, State-Space, 📐 Point-Processes, EM-algorithm, Maximum-likelihood

Notifications You must be signed in to change notification settings

sohale/point-process-simple-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Point Process example

A simple straightforward example of a Point Process + State Space with manually set model parameters.

Old name: smithbrown2003-example1

This implements the forward model (not the estimatiom part) of the following. For the reverse (parameter estimation), a separate repo is used (contact author).

Smith-Brown's example 1

A quick implementation of: Smith & Brown, 2003 (See [1] below)

This implements the Example 1, that is the case of "Multiple Neurons Driven by a Common Latent Process", from [1].

My code implements an EM Algorithm for decoding based on Point-process observations (Spike train observation, Inter-spike interval observations) using Python 3.

Parameter Estimation of the Kalman filter is implemented using Em Algorithm.

Assessment of the results includes ML and use of Time-Rescaling Theorem.

Reference:

[1] Anne C Smith, Emery N Brown. "Estimating a State-Space Model from Point Process Observations". Neural Computation. Volume 15, Issue 5, May 2003. pp 965-991.

Details: Link: doi: 10.1162/089976603765202622, pubmed Download links: dl1 dl2

Keywords:

My code has implementations the following concepts:

EM Algorithm, Kalman filter, Estimation, Maximum Likelihood, Point Processes, Time-Rescaling Theorem.

Screenshot 1

Statistical modelling of Spike Trains as Point Processes Spike Trains as Point Processes Note Λ(t) = ∫ λ(t) dt is the times-rescaling function. x[k] is the input (i.e. the "state"). In physiological terms, the input signal is the EPSP/IPSP.

As spike rate estimator: The derived statistical model (with parameters) can also be seen as a rigorous method of calculating the "spiking rates" based on observed spike trains. The estimated moodel generates λ(t), which is an estimation of the probability of spikes (also can be seen as spiking rate). It's a quantity that is difficult to estimate, or would be incorrect if estimated in the naïve way simply by averaging (over bins) or smoothing of spike trains.

The estimations are based on EM (Expectation Maximisation) (the procedure devised by Ghahramani & Hinton 1996) apllied to Point Processes.

  • x(t+δt) = A x(t) + αI + ε
  • λ = exp(βx + μ)

Screenshot 2

Multiple trials, better formulas Spike Trains as Point Processes

About

🧠 A decoder of Spike Trains using 🔬 Bayesian, State-Space, 📐 Point-Processes, EM-algorithm, Maximum-likelihood

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published