Aufgabe 8: Learning with STDP

[15+5* Punkte, ausgegeben am 07.06.2005, Abgabe bis 21.06.2005, pdf, ps.gz]

We study STDP with an example where one has two groups of inputs to a LIF-neuron.

The neuron $ N$ gets a group of temporal precise inputs ($ n1=25$) and a group of temporal imprecise inputs ($ n2=75$). Each input channel consists of one spike with a randomly chosen spike time according to a normal distribution with mean 50ms and standard deviation 3ms (for precise inputs) or 20ms (for imprecise inputs). The neuron has a very long refractory period to make sure that it emits a single action potential for each run of 150msec. For different thresholds, this setup will lead to different weight distributions with implications on the temporal precision of the neuron.

Use the files stdp.m, gen_input.m, and learn_stdp.m . You will have to stdp.m unzip the file into the same directory as stdp.m (consisting of csim.dll for Windows and csim.mexglx for Linux).

The simulation proceeds as follows:

For 200 epochs
Generate 100 input-spike trains, 25 precise, 75 imprecise.
simulate for $ 150$msec.
Update the weights if there was a post-spike (see below).
Calculate the precision of the neuron.

Modify the matlab function learn_stdp.m such that weights are updated the following way:

$\displaystyle \Delta w_{i,j} = a_{decay}  \frac{w_{i,j}}{w_{max}} + a_{stdp}  (\frac{w_{max}-w_{i,j}}{w_{max}})  exp(-\vert t_{post}-t_{pre}\vert/\tau)

for positive weight changes, and

$\displaystyle \Delta w_{i,j} = a_{decay}  \frac{w_{i,j}}{w_{max}} - a_{stdp}  \frac{w_{i,j}}{w_{max}}  exp(-\vert t_{post}-t_{pre}\vert/\tau)

for negative weight changes (with standard STDP assumptions the sign of weight changes).

Please make sure that weights don't become negative. Note that learn_stdp is only called if there was a post spike.

You shall also set the threshold of the neuron in stdp.m. Try values between 0 und $ 1$.

Parts of the code which should be modified are marked with

(as a guideline, you can also modify other code).

After the simulation, the mean weigth of synapses with precise/imprecise inputs are plotted and printed. Also, the precision of the neuron after learning is printed on the screen. It is computed by simulating the neuron 20 times after learning. Then, the time difference $ \Delta t$ between the earliest and the latest post spike is computed. The precision is then $ 1/\Delta t$. If the postsynaptic neuron did not fire, the precision is set to $ -1$.

You shall investigate how the results depend on the threshold:

Submit a printout of your modified learn_stdp.
Show how the mean weights for the two input groups after learning depend on the threshold (diagram). Try to explain the behavior of the learning rule.
Show how the precision depends on the threshold value. Try to explain the result.
Experiment with the parameters tau, n1, n2, a_decay etc. Explain changes in the behavior.

Neuronale Netzwerke B (SS05), Rober Legenstein, 2005