/190565

Supervised learning in spiking neural networks with FORCE training (Nicola & Clopath 2017)

Primary LanguageMATLAB

Instructions for FORCE Training Code

Wilten Nicola (wnicola@imperial.ac.uk)

The code is separated into folders named for their corresponding figure from the manuscript. The code is usually labelled NeuronModelFORCETask.m or NeuronModelTask.m for example THETALORENZ is the code used to run a network of theta neurons learning a trajectory generated from the Lorenz system. Some of the folders also contain matlab files for numerically integrating the supervisors (lorenz.m, vanderpol.m etc). Running the code NeuronModelFORCEtask.m trains a network to reproduce the dynamics of the supervisor using FORCE training.
The code for Figure 4 (songbird example) and Figure 5 (movie replay example) does not contain the supervisor due to file size constraints. Users can however provide their own supervisors in these examples.
Some folders contain pre-trained weight matrices saved in .mat files. These folders contain a file labelled NETWORKSIM.mat which loads the weight matrix, and simulates the pre-trained network with random initial conditions.
Also note, that there is a slight discrepancy in the reported parameter set for the Izhikevich neuron model for one of the supplementary oscillatory examples, which has b = -2 ns/mv, vthresh = -19.2 mv instead if b = 0 ns/mv and vthresh = -20 mv, as reported. This does not affect convergence results for the supplementary oscillator figure but leads to slight differences in reported post-training firing rates for the supplementary oscillatory figure.