Spike-timing dependent plasticity (STDP) synapse models

template<typename targetidentifierT>
class ClopathConnection : public Connection<targetidentifierT>
#include <clopath_connection.h>

Name: clopath_synapse - Synapse type for voltage-based STDP after Clopath.

Description:

clopath_synapse is a connector to create Clopath synapses as defined in [1]. In contrast to usual STDP, the change of the synaptic weight does not only depend on the pre- and postsynaptic spike timing but also on the postsynaptic membrane potential.

Clopath synapses require archiving of continuous quantities. Therefore Clopath synapses can only be connected to neuron models that are capable of doing this archiving. So far, compatible models are aeif_psc_delta_clopath and hh_psc_alpha_clopath.

Parameters:

tau_x

ms

Time constant of the trace of the presynaptic spike train

Wmax

real

Maximum allowed weight

Wmin

real

Minimum allowed weight

Other parameters like the amplitudes for long-term potentiation (LTP) and depression (LTD) are stored in in the neuron models that are compatible with the Clopath synapse.

Transmits: SpikeEvent

References:

1

Clopath et al. (2010). Connectivity reflects coding: a model of voltage-based STDP with homeostasis. Nature Neuroscience 13:3, 344–352. DOI: https://doi.org/10.1038/nn.2479

2

Clopath and Gerstner (2010). Voltage and spike timing interact in STDP – a unified model. Frontiers in Synaptic Neuroscience 2:25. DOI: https://doi.org/10.3389/fnsyn.2010.00025

3

Voltage-based STDP synapse (Clopath et al. 2010) on ModelDB https://senselab.med.yale.edu/ModelDB/showmodel.cshtml?model=144566

Authors: Jonas Stapmanns, David Dahmen, Jan Hahne

SeeAlso: stdp_synapse, aeif_psc_delta_clopath, hh_psc_alpha_clopath

template<typename targetidentifierT>
class STDPConnection : public Connection<targetidentifierT>
#include <stdp_connection.h>

Name: stdp_synapse - Synapse type for spike-timing dependent plasticity.

Description:

stdp_synapse is a connector to create synapses with spike time dependent plasticity (as defined in [1]). Here the weight dependence exponent can be set separately for potentiation and depression.

Examples:

multiplicative STDP [2]  mu_plus = mu_minus = 1.0
additive STDP       [3]  mu_plus = mu_minus = 0.0
Guetig STDP         [1]  mu_plus = mu_minus = [0.0,1.0]
van Rossum STDP     [4]  mu_plus = 0.0 mu_minus = 1.0

Parameters:

tau_plus

ms

Time constant of STDP window, potentiation (tau_minus defined in post-synaptic neuron)

lambda

real

Step size

alpha

real

Asymmetry parameter (scales depressing increments as alpha*lambda)

mu_plus

real

Weight dependence exponent, potentiation

mu_minus

real

Weight dependence exponent, depression

Wmax

real

Maximum allowed weight

Transmits: SpikeEvent

References:

1

Guetig et al. (2003). Learning input correlations through nonlinear temporally asymmetric hebbian plasticity. Journal of Neuroscience, 23:3697-3714 DOI: https://doi.org/10.1523/JNEUROSCI.23-09-03697.2003

2

Rubin J, Lee D, Sompolinsky H (2001). Equilibrium properties of temporally asymmetric Hebbian plasticity. Physical Review Letters, 86:364-367. DOI: https://doi.org/10.1103/PhysRevLett.86.364

3

Song S, Miller KD, Abbott LF (2000). Competitive Hebbian learning through spike-timing-dependent synaptic plasticity. Nature Neuroscience 3(9):919-926. DOI: https://doi.org/10.1038/78829

4

van Rossum MCW, Bi G-Q, Turrigiano GG (2000). Stable Hebbian learning from spike timing-dependent plasticity. Journal of Neuroscience, 20(23):8812-8821. DOI: https://doi.org/10.1523/JNEUROSCI.20-23-08812.2000

FirstVersion: March 2006

Author: Moritz Helias, Abigail Morrison

Adapted by: Philipp Weidel

SeeAlso: synapsedict, tsodyks_synapse, static_synapse

template<typename targetidentifierT>
class STDPFACETSHWConnectionHom : public Connection<targetidentifierT>
#include <stdp_connection_facetshw_hom.h>

Name: stdp_facetshw_synapse_hom - Synapse type for spike-timing dependent plasticity using homogeneous parameters, i.e. all synapses have the same parameters.

Description:

stdp_facetshw_synapse is a connector to create synapses with spike-timing dependent plasticity (as defined in [1]). This connector is a modified version of stdp_synapse. It includes constraints of the hardware developed in the FACETS (BrainScaleS) project [2,3], as e.g. 4-bit weight resolution, sequential updates of groups of synapses and reduced symmetric nearest-neighbor spike pairing scheme. For details see [3]. The modified spike pairing scheme requires the calculation of tau_minus_ within this synapse and not at the neuron site via Kplus_ like in stdp_connection_hom.

Parameters:

Common properties

tau_plus

ms

Time constant of STDP window, causal branch

tau_minus_stdp

ms

Time constant of STDP window, anti-causal branch

Wmax

real

Maximum allowed weight

no_synapses

integer

Total number of synapses

synapses_per_driver

integer

Number of synapses updated at once

driver_readout_time

real

Time for processing of one synapse row (synapse line driver)

readout_cycle_duration

real

Duration between two subsequent updates of same synapse (synapse line driver)

lookuptable_0

list of integers

Three look-up tables (LUT)

lookuptable_1

list of integers

lookuptable_2

list of integers

configbit_0

list of integers

Configuration bits for evaluation function. For details see code in function eval_function_ and [4] (configbit[0]=e_cc, ..[1]=e_ca, ..[2]=e_ac, ..[3]=e_aa). Depending on these two sets of configuration bits weights are updated according LUTs (out of three: (1,0), (0,1), (1,1)). For (0,0) continue without reset.

configbit_1

list of integers

reset_pattern

list of integers

Configuration bits for reset behavior. Two bits for each LUT (reset causal and acausal). In hardware only (all false; never reset) or (all true; always reset) is allowed.

Individual properties

a_causal

real

Causal and anti-causal spike pair accumulations

a_acausal

real

a_thresh_th

real

Two thresholds used in evaluation function No common property, because variation of analog synapse circuitry can be applied here

a_thresh_tl

real

synapse_id

integer

Synapse ID, used to assign synapses to groups (synapse drivers)

Remarks:

The synapse IDs are assigned to each synapse in an ascending order (0,1,2, …) according their first presynaptic activity and is used to group synapses that are updated at once. It is possible to avoid activity dependent synapse ID assignments by manually setting the no_synapses and the synapse_id(s) before running the simulation. The weights will be discretized after the first presynaptic activity at a synapse.

Common properties can only be set on the synapse model using SetDefaults.

Transmits: SpikeEvent

References:

1

Morrison A, Diesmann M, Gerstner W (2008). Phenomenological models of synaptic plasticity based on spike-timing. Biological Cybernetics, 98:459-478. DOI: https://doi.org/10.1007/s00422-008-0233-1

2

Schemmel J, Gruebl A, Meier K, Mueller E (2006). Implementing synaptic plasticity in a VLSI spiking neural network model. In Proceedings of the 2006 International Joint Conference on Neural Networks, pp.1–6, IEEE Press. DOI: https://doi.org/10.1109/IJCNN.2006.246651

3

Pfeil T, Potjans TC, Schrader S, Potjans W, Schemmel J, Diesmann M, Meier K (2012). Is a 4-bit synaptic weight resolution enough? - constraints on enabling spike-timing dependent plasticity in neuromorphic hardware. Frontiers in Neuroscience 6(90). DOI: https://doi.org/10.3389/fnins.2012.00090

4

Friedmann, S. in preparation

FirstVersion: July 2011

Author: Thomas Pfeil (TP), Moritz Helias, Abigail Morrison

SeeAlso: stdp_synapse, synapsedict, tsodyks_synapse, static_synapse

Class representing an STDP connection with homogeneous parameters, i.e. parameters are the same for all synapses.

class STDPHomCommonProperties : public CommonSynapseProperties
#include <stdp_connection_hom.h>

Name: stdp_synapse_hom - Synapse type for spike-timing dependent plasticity using homogeneous parameters.

Description:

stdp_synapse_hom is a connector to create synapses with spike time dependent plasticity (as defined in [1]). Here the weight dependence exponent can be set separately for potentiation and depression.

Parameters controlling plasticity are identical for all synapses of the model, reducing the memory required per synapse considerably.

Examples:

multiplicative STDP [2]  mu_plus = mu_minus = 1.0
additive STDP       [3]  mu_plus = mu_minus = 0.0
Guetig STDP         [1]  mu_plus = mu_minus = [0.0,1.0]
van Rossum STDP     [4]  mu_plus = 0.0 mu_minus = 1.0

Parameters:

tau_plus

ms

Time constant of STDP window, potentiation (tau_minus defined in post-synaptic neuron)

lambda

real

Step size

alpha

real

Asymmetry parameter (scales depressing increments as alpha*lambda)

mu_plus

real

Weight dependence exponent, potentiation

mu_minus

real

Weight dependence exponent, depression

Wmax

real

Maximum allowed weight

Remarks:

The parameters are common to all synapses of the model and must be set using SetDefaults on the synapse model.

Transmits: SpikeEvent

References:

1

Guetig et al. (2003). Learning input correlations through nonlinear temporally asymmetric hebbian plasticity. Journal of Neuroscience, 23:3697-3714 DOI: https://doi.org/10.1523/JNEUROSCI.23-09-03697.2003

2

Rubin J, Lee D, Sompolinsky H (2001). Equilibrium properties of temporally asymmetric Hebbian plasticity. Physical Review Letters, 86:364-367. DOI: https://doi.org/10.1103/PhysRevLett.86.364

3

Song S, Miller KD, Abbott LF (2000). Competitive Hebbian learning through spike-timing-dependent synaptic plasticity. Nature Neuroscience 3(9):919-926. DOI: https://doi.org/10.1038/78829

4

van Rossum MCW, Bi G-Q, Turrigiano GG (2000). Stable Hebbian learning from spike timing-dependent plasticity. Journal of Neuroscience, 20(23):8812-8821. DOI: https://doi.org/10.1523/JNEUROSCI.20-23-08812.2000

FirstVersion: March 2006

Author: Moritz Helias, Abigail Morrison

SeeAlso: synapsedict, tsodyks_synapse, static_synapse Class containing the common properties for all synapses of type STDPConnectionHom.

class STDPDopaCommonProperties : public CommonSynapseProperties
#include <stdp_dopa_connection.h>

Name: stdp_dopamine_synapse - Synapse type for dopamine-modulated spike-timing dependent plasticity.

Description:

stdp_dopamine_synapse is a connection to create synapses with dopamine-modulated spike-timing dependent plasticity (used as a benchmark model in [1], based on [2]). The dopaminergic signal is a low-pass filtered version of the spike rate of a user-specific pool of neurons. The spikes emitted by the pool of dopamine neurons are delivered to the synapse via the assigned volume transmitter. The dopaminergic dynamics is calculated in the synapse itself.

Examples:

/volume_transmitter Create /vol Set
/iaf_psc_alpha Create /pre_neuron Set
/iaf_psc_alpha Create /post_neuron Set
/iaf_psc_alpha Create /neuromod_neuron Set
/stdp_dopamine_synapse  << /vt vol >>  SetDefaults
neuromod_neuron vol Connect
pre_neuron post_neuron /stdp_dopamine_synapse Connect

Parameters:

Common properties

vt

integer

ID of volume_transmitter collecting the spikes from the pool of dopamine releasing neurons and transmitting the spikes to the synapse. A value of -1 indicates that no volume transmitter has been assigned.

A_plus

real

Amplitude of weight change for facilitation

A_minus

real

Amplitude of weight change for depression

tau_plus

ms

STDP time constant for facilitation

tau_c

ms

Time constant of eligibility trace

tau_n

ms

Time constant of dopaminergic trace

b

real

Dopaminergic baseline concentration

Wmin

real

Minimal synaptic weight

Wmax

real

Maximal synaptic weight

Individual properties

c

real

Eligibility trace

n

real

Neuromodulator concentration

Remarks: The common properties can only be set by SetDefaults and apply to all synapses of the model.

References:

1

Potjans W, Morrison A, Diesmann M (2010). Enabling functional neural circuit simulations with distributed computing of neuromodulated plasticity. Frontiers in Computational Neuroscience, 4:141. DOI: https://doi.org/10.3389/fncom.2010.00141

2

Izhikevich EM (2007). Solving the distal reward problem through linkage of STDP and dopamine signaling. Cerebral Cortex, 17(10):2443-2452. DOI: https://doi.org/10.1093/cercor/bhl152

Transmits: SpikeEvent

Author: Susanne Kunkel

Remarks:

  • based on an earlier version by Wiebke Potjans

  • major changes to code after code revision in Apr 2013

SeeAlso: volume_transmitter Class containing the common properties for all synapses of type dopamine connection.

class STDPPLHomCommonProperties : public CommonSynapseProperties
#include <stdp_pl_connection_hom.h>

Name: stdp_pl_synapse_hom - Synapse type for spike-timing dependent plasticity with power law implementation using homogeneous parameters, i.e. all synapses have the same parameters.

Description:

stdp_pl_synapse is a connector to create synapses with spike time dependent plasticity (as defined in [1]).

Parameters:

tau_plus

ms

Time constant of STDP window, potentiation (tau_minus defined in post-synaptic neuron)

lambda

real

Learning rate

alpha

real

Asymmetry parameter (scales depressing increments as alpha*lambda)

mu

real

Weight dependence exponent, potentiation

Remarks:

The parameters can only be set by SetDefaults and apply to all synapses of the model.

References:

1

Morrison A, Aertsen A, Diesmann M. (2007) Spike-timing dependent plasticity in balanced random netrks. Neural Computation, 19(6):1437-1467. DOI: https://doi.org/10.1162/neco.2007.19.6.1437

Transmits: SpikeEvent

FirstVersion: May 2007

Author: Abigail Morrison

SeeAlso: synapsedict, stdp_synapse, tsodyks_synapse, static_synapse Class containing the common properties for all synapses of type STDPConnectionHom.

template<typename targetidentifierT>
class STDPTripletConnection : public Connection<targetidentifierT>
#include <stdp_triplet_connection.h>

Name: stdp_triplet_synapse - Synapse type with spike-timing dependent plasticity (triplets).

Description:

stdp_triplet_synapse is a connection with spike time dependent plasticity accounting for spike triplet effects (as defined in [1]).

STDP examples: pair-based Aplus_triplet = Aminus_triplet = 0.0 triplet Aplus_triplet = Aminus_triplet = 1.0

Parameters:

tau_plus

real

Time constant of short presynaptic trace (tau_plus of [1])

tau_plus_triplet

real

Time constant of long presynaptic trace (tau_x of [1])

Aplus

real

Weight of pair potentiation rule (A_plus_2 of [1])

Aplus_triplet

real

Weight of triplet potentiation rule (A_plus_3 of [1])

Aminus

real

Weight of pair depression rule (A_minus_2 of [1])

Aminus_triplet

real

Weight of triplet depression rule (A_minus_3 of [1])

Wmax

real

Maximum allowed weight

States

Kplus

real

Pre-synaptic trace (r_1 of [1])

Kplus_triplet

real

Triplet pre-synaptic trace (r_2 of [1])

Transmits: SpikeEvent

References:

1

Pfister JP, Gerstner W (2006). Triplets of spikes in a model of spike timing-dependent plasticity. The Journal of Neuroscience 26(38):9673-9682. DOI: https://doi.org/10.1523/JNEUROSCI.1425-06.2006

Notes:

  • Presynaptic traces r_1 and r_2 of [1] are stored in the connection as Kplus and Kplus_triplet and decay with time-constants tau_plus and tau_plus_triplet, respectively.

  • Postsynaptic traces o_1 and o_2 of [1] are acquired from the post-synaptic neuron states Kminus_ and triplet_Kminus_ which decay on time-constants tau_minus and tau_minus_triplet, respectively. These two time-constants can be set as properties of the postsynaptic neuron.

  • This version implements the ‘all-to-all’ spike interaction of [1]. The ‘nearest-spike’ interaction of [1] can currently not be implemented without changing the postsynaptic archiving-node (clip the traces to a maximum of 1).

FirstVersion: Nov 2007

Author: Abigail Morrison, Eilif Muller, Alexander Seeholzer, Teo Stocco Adapted by: Philipp Weidel

SeeAlso: stdp_triplet_synapse_hpc, synapsedict, stdp_synapse, static_synapse

template<typename targetidentifierT>
class VogelsSprekelerConnection : public Connection<targetidentifierT>
#include <vogels_sprekeler_connection.h>

Name: vogels_sprekeler_synapse - Synapse type for symmetric spike-timing dependent plasticity with constant depression.

Description: vogels_sprekeler_synapse is a connector to create synapses with symmetric spike time dependent plasticity and constant depression (as defined in [1]). The learning rule is symmetric, i.e., the synapse is strengthened irrespective of the order of the pre and post-synaptic spikes. Each pre-synaptic spike also causes a constant depression of the synaptic weight which differentiates this rule from other classical stdp rules.

Parameters:

tau

ms

Time constant of STDP window, potentiation

Wmax

real

Maximum allowed weight

eta

real

Learning rate

alpha

real

Constant depression (= 2 * tau * target firing rate in [1])

Transmits: SpikeEvent

References:

1

Vogels et al. (2011). Inhibitory plasticity balances excitation and inhibition in sensory pathways and memory networks. Science, 334(6062):1569-1573. DOI: https://doi.org/10.1126/science.1211095

FirstVersion: January 2016

Author: Ankur Sinha

SeeAlso: synapsedict