8

I am currently working with Spiking Neural Networks and multi-(meta)-stable attractor states.

What I observe in my simulations are 'bump' attractors that appear, disappear, and may wander around. Here is a screen shot from a simulation:

Bump Activity

Dark blue dots represent excitatory neurons' spikes (fading into white to leave a trace), and dark red triangles representing inhibitory neurons' spikes.

If neurons are currently part of a 'bump' cluster, they exhibit a high firing rate, otherwise the rate is much lower.

The neurons are arranged on a 2D torus map (periodic boundary conditions). Thus, for every neuron I have its respective x and y coordinate plus the timing of the spikes.

What I want and need is a algorithm that

  1. can detect and distinguish neurons within the bump state from non-bump states
  2. measure the average size of a bump
  3. the average number of bumps per unit time and unit map size
  4. the average lifetime of bump (as I said they are meta-stable)
  5. In case the bumps are "wandering" the average speed or drift of a bump

What might be a suitable clustering algorithm in order to perform these steps? Would it be more useful to convolve the spike times with a filter in order to get some rate representation?

Steven Jeuris
  • 3,523
  • 5
  • 30
  • 56
SmCaterpillar
  • 265
  • 1
  • 4

1 Answers1

1
  • 0: As you suggested, use a temporal filter to get a smoothed rate representation
  • 1.a: Clean up each frame by using (e.g.) a morphological opening then closing step
  • 1.b: Locate the centres of bumps, perhaps using non-maximum suppression.
  • 1.c: Choose a reasonable activity threshold for neurons to still be "inside" the bump: Maybe 80% of the distance between zero and the activity at the bump-centre.
  • 1.d: Assign neurons to bumps by finding connected regions around the bump centres.
  • 2, 2: Once you have the neurons assigned to bumps, this is just simple stats
  • 4: Track bumps between frames by assigning nearest bump centres across frames. Apply some uniqueness criterion to detect bumps appearing and disappearing.
  • 5: This is also easy once you have the bumps tracked.