Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

volumelearning

Matlab scripts to demonstrate learning spatial and temporal signals in spiking networks. To better implement a synapse redistribution rule the code was restructured into synRedistNet.m which is now the main network file to run. Initial code was based around volumeNetwork which can run when invoked with a matlab interpreter.

More specificallly this is a two layer network of LIF neurons with gaussian current based, time delayed synapses which redistribute. Ideas and inspiration are taken from [1, 2]. The significance of this particular work (like [1, 2]) is that temporal information is represented explicitly (through connection delays). This means the network is actually learning to represent (and predict) spatial (which neurons fire) and temporal (when they fire) information. In contrast models without delays focus on spatial information (which neurons fire roughly together) but focus less on the precise order. General information about quirks and issues during development can be found in this google doc. The synapse redistribution is loosely based around synaptogensis, if a connection is useless it should break and possibly reform somewhere else.

Interesting milestones

Todo list

  • Gaussian synapses [1]
  • Multiple outputs
  • STDP (all-to-all)
  • Delay Learning [1]
  • Event-based data
  • Synaptic redistribution rule
  • convert to auto-encoder setup
  • Parameter sweep scripts
  • Party ... wait no, publish

Useful spiking resources

Additionally I'd like to acknowledge other bits of code that inspired/influenced this implementation as there is a need for more accessible resources around spiking networks (especially those with delays). In particular the Neural Data Modeling Group's tutorial and Izhikevich's Polychronous code. [3]

Notes and comments

  • Unlike [1] and more like [2] the integrals of gaussian synapses are controlled by the weight of the synapse.
  • There are quirks to the STDP because of time difference between when a neuron fires and when the spike arrives. Default is spike arrival (at post-synaptic neuron) time rather then pre-synaptic spike time, you may want to alter this.
  • Assumes you have the code from inilabs to load event-based data (if using event based data demo).
  • The switch to synRedistNet.m saw a significant change in network architecture. Connections are now viewed as pre-synaptic to a neuron not post-synaptic. See this google doc for more precise details.
  • Initial commits around the autoencoder do not have any plasticity in the second layer.

References

[1] P. W. Wright and J. Wiles, “Learning transmission delays in spiking neural networks: A novel approach to sequence learning based on spike delay variance” in The 2012 International Joint Conference on Neural Networks (IJCNN), 2012, pp. 1–8.
[2] T. Matsubara, “Conduction Delay Learning Model for Unsupervised and Supervised Classification of Spatio-Temporal Spike Patterns” Front. Comput. Neurosci., vol. 11, 2017.
[3] E. M. Izhikevich, “Polychronization: Computation with Spikes” Neural Computation, vol. 18, no. 2, pp. 245–282, Feb. 2006.

About

Matlab scripts to demonstrate learning spatial and temporal signals

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages