Algorithmics for generating sparse matrices (and Poisson spike trains)

Discussions on development, Auryn's inner workings, adding new features and how to change things at the core
Post Reply
User avatar
zenke
Site Admin
Posts: 156
Joined: Tue Oct 14, 2014 11:34 am
Location: Basel, CH
Contact:

Algorithmics for generating sparse matrices (and Poisson spike trains)

Post by zenke »

A more detailed analysis of Auryn's sparse matrix generation algorithm (details in: http://journal.frontiersin.org/article/ ... 76/full#h3, Section 2.4) revealed that there is a small systematic error which makes the matrices sparser than they should be. One source of error in the current implementation (which essentially draws exponential inter-connection-intervals in matrix element space, when building the sparse matrix) is the fact that intervals have to be >=1. i.e. we only allow one connection between two neurons. This introduces a small deviation in the connection rate which can be fixed easily by positively adjusting the mean of the exponential random number generator. The corrected rate lambda has to be: 1/(1/sparseness-1), and 1/(1/rate-dt) for PoissonGroup.

In the following I am plotting the number of EE connections in the example sim_isp_orig for 500 different random seeds as well as a Gaussian with the expected mean (black) and the expected variance for vanishingly low connection probabilities. Red shows the spike counts for the original simulation and in gray I am showing the patched code.
random_fill_comparison.png
random_fill_comparison.png (18.08 KiB) Viewed 9142 times
The plots illustrates that the effect is small, but measurable. The mean of the red data is significantly lower than the expected mean of 8000^2-8000=1.27984e6 (p=0.0006, T-test) whereas the patched version (gray) shows no significant deviation (p>0.8).

Because the effect is small and decreases with network size it won't matter in most practical cases. Since both distributions have significant overlap, existing studies looking at a small subset of networks will hardly be affected by this effect. For PoissonGroup or any groups derived from it the effect is even smaller due to the small time step. A fix will be included in the next Auryn release.
Post Reply