Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


tutorials:tutorial_3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
tutorials:tutorial_3 [2016/09/01 22:04] – created zenketutorials:tutorial_3 [2016/09/02 04:46] (current) – [Running the simulation] moves section zenke
Line 5: Line 5:
 As you have seen in the previous section the firing rate distribution is relatively wide in our random network. Moreover firing rates are pretty high. If you have tried to tune the weights such that the network exhibits a more plausible activity level, you might have noticed that this not completely trivial and the rates can in fact be quite sensitive to the synaptic weight parameters. As you have seen in the previous section the firing rate distribution is relatively wide in our random network. Moreover firing rates are pretty high. If you have tried to tune the weights such that the network exhibits a more plausible activity level, you might have noticed that this not completely trivial and the rates can in fact be quite sensitive to the synaptic weight parameters.
  
-However, we know that real synapses are plastic and a diversity of plasticity processes is at work in real neural networks which could achieve this tuning automatically. Let's now extend our previous model with one form of homeostatic plasticity. To that end we would like to exchange our sparse static connectivity of the excitatory-to-excitatory synapses in [[Tutorial 2]] to plastic synapses. Here we will use a homeostatic form of [[http://www.ncbi.nlm.nih.gov/pubmed/16988038|Triplet STDP]] with a rapid sliding threshold (see [[http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003330| this article]] for more details on why it needs to be rapid).+However, we know that real synapses are plastic and a diversity of plasticity processes is at work in real neural networks which could achieve this tuning automatically. Let's now extend our previous model with one form of homeostatic plasticity. To that end we would like to exchange our sparse static connectivity of the excitatory-to-excitatory synapses in [[Tutorial 2]] with plastic synapses. Here we will use a homeostatic form of [[http://www.ncbi.nlm.nih.gov/pubmed/16988038|Triplet STDP]] with a rapid sliding threshold (see [[http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003330| this article]] for more details on why it needs to be rapid).
  
-===== Changing the static model =====+The code of this example can be found here 
 +https://github.com/fzenke/auryn/blob/master/examples/sim_tutorial3.cpp 
 + 
 +===== Changing the static model to a plastic model =====
  
 All we need to change in our [[Tutorial 2|previous code]] is to replace the line in which we define con_ee with the following code All we need to change in our [[Tutorial 2|previous code]] is to replace the line in which we define con_ee with the following code
Line 44: Line 47:
 That's it. Save the file and [[manual:compileandrunaurynsimulations|let's compile and run]]! That's it. Save the file and [[manual:compileandrunaurynsimulations|let's compile and run]]!
  
-===== Visualizations =====+ 
 +==== Speeding up simulations: Parallel execution with MPI ==== 
 + 
 +By now you have simulated plastic recurrent spiking neural networks with Auryn. You might have noticed that these simulations have started to be increasingly time consuming. Fortunately, most code can be sped up considerable by running simulations in parallel. This can be done transparently in Auryn. Learn how it's done [[manual:parallel execution|here]]. 
 + 
 + 
 +====== Visualizations ======
  
 As you can see the transition around 10s where we switch plasticity on is quite drastic: As you can see the transition around 10s where we switch plasticity on is quite drastic:
-{{ :tutorials:tutorial3_exc_spikes.png?300 |}}+{{ :tutorials:tutorial3_exc_spikes.png?400 |}}
  
 To appreciate this in more detail, let us take a look at the new files from the population rate monitors with the extension ''prate''. We can directly plot those files as time series: To appreciate this in more detail, let us take a look at the new files from the population rate monitors with the extension ''prate''. We can directly plot those files as time series:
 +{{ :tutorials:tutorial3_prates_vs_time.png?400 |}}
  
 +As we can see the transition to low firing rates is indeed quite rapid, but the target rate of ''kappa = 1.0'' is not achieved during the simulation time frame. Note also the synchrony events around t=~75s and t=~105s where the network briefly leaves the asynchronous state.
  
 +Finally we can look at the firing rate distribution of homeostatic triplet STDP (every neuron in the model has the same homeostatic target rate, so we expect something uni-modal).
 +{{ :tutorials:tutorial3_exc_rates.png?400 |}}
  
-The full code for this tutorial can be found [[here]]. 
  
  
-===== Speeding up simulations: Parallel execution with MPI ===== 
  
-By now you have simulated plastic recurrent spiking neural networks with Auryn. You might have noticed that these simulations have started to be increasingly time consuming. Fortunately, most code can be sped up considerable by running simulations in parallel. This can be done transparently in Auryn. Learn how it's done [[manual:parallel execution|here]]. 
  
 +====== Exercises ======
 +
 +  * Speed up the simulation using parallelism
 +  * Find a slower tau for which the network activity oscillates or explodes (see for [[http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003330|details]])
 +  * Add inhibitory synaptic plasticity to this simulation (see [[manual:SymmetricSTDPConnection]])
tutorials/tutorial_3.1472767447.txt.gz · Last modified: 2016/09/01 22:04 by zenke