eprop_readout_bsshslm_2020 – Current-based leaky integrate readout neuron model with delta-shaped postsynaptic currents for e-prop plasticity ============================================================================================================================================= Description +++++++++++ ``eprop_readout_bsshslm_2020`` is an implementation of a integrate-and-fire neuron model with delta-shaped postsynaptic currents used as readout neuron for eligibility propagation (e-prop) plasticity. E-prop plasticity was originally introduced and implemented in TensorFlow in [1]_. The suffix ``_bsshslm_2020`` follows the NEST convention to indicate in the model name the paper that introduced it by the first letter of the authors' last names and the publication year. The membrane voltage time course :math:`v_j^t` of the neuron :math:`j` is given by: .. math:: v_j^t &= \kappa v_j^{t-1}+\sum_{i \neq j}W_{ji}^\mathrm{out}z_i^{t-1} -z_j^{t-1}v_\mathrm{th} \,, \\ \kappa &= e^{-\frac{\Delta t}{\tau_\mathrm{m}}} \,, whereby :math:`W_{ji}^\mathrm{out}` are the output synaptic weights and :math:`z_i^{t-1}` are the recurrent presynaptic spike state variables. Descriptions of further parameters and variables can be found in the table below. An additional state variable and the corresponding differential equation represents a piecewise constant external current. See the documentation on the ``iaf_psc_delta`` neuron model for more information on the integration of the subthreshold dynamics. The change of the synaptic weight is calculated from the gradient :math:`g` of the loss :math:`E` with respect to the synaptic weight :math:`W_{ji}`: The change of the synaptic weight is calculated from the gradient :math:`\frac{\mathrm{d}{E}}{\mathrm{d}{W_{ij}}}=g` which depends on the presynaptic spikes :math:`z_i^{t-1}` and the learning signal :math:`L_j^t` emitted by the readout neurons. .. math:: \frac{\mathrm{d}E}{\mathrm{d}W_{ji}} = g &= \sum_t L_j^t \bar{z}_i^{t-1}\,. \\ The presynaptic spike trains are low-pass filtered with an exponential kernel: .. math:: \bar{z}_i^t &=\mathcal{F}_\kappa(z_i^t)\,, \\ \mathcal{F}_\kappa(z_i^t) &= \kappa\, \mathcal{F}_\kappa(z_i^{t-1}) + z_i^t \;\text{with}\, \mathcal{F}_\kappa(z_i^0)=z_i^0\,\,. Since readout neurons are leaky integrators without a spiking mechanism, the formula for computing the gradient lacks the surrogate gradient / pseudo-derivative and a firing regularization term. For more information on e-prop plasticity, see the documentation on the other e-prop models: * :doc:`eprop_iaf_bsshslm_2020<../models/eprop_iaf_bsshslm_2020/>` * :doc:`eprop_iaf_adapt_bsshslm_2020<../models/eprop_iaf_adapt_bsshslm_2020/>` * :doc:`eprop_synapse_bsshslm_2020<../models/eprop_synapse_bsshslm_2020/>` * :doc:`eprop_learning_signal_connection_bsshslm_2020<../models/eprop_learning_signal_connection_bsshslm_2020/>` Details on the event-based NEST implementation of e-prop can be found in [2]_. Parameters ++++++++++ The following parameters can be set in the status dictionary. ===================== ======= ===================== ================== =============================================== **Neuron parameters** ---------------------------------------------------------------------------------------------------------------------- Parameter Unit Math equivalent Default Description ===================== ======= ===================== ================== =============================================== C_m pF :math:`C_\text{m}` 250.0 Capacitance of the membrane E_L mV :math:`E_\text{L}` 0.0 Leak / resting membrane potential I_e pA :math:`I_\text{e}` 0.0 Constant external input current loss :math:`E` mean_squared_error Loss function ["mean_squared_error", "cross_entropy"] regular_spike_arrival Boolean True If True, the input spikes arrive at the end of the time step, if False at the beginning (determines PSC scale) tau_m ms :math:`\tau_\text{m}` 10.0 Time constant of the membrane V_min mV :math:`v_\text{min}` -1.79e+308 Absolute lower bound of the membrane voltage ===================== ======= ===================== ================== =============================================== The following state variables evolve during simulation. ===================== ==== =============== ============= ========================== **Neuron state variables and recordables** ----------------------------------------------------------------------------------- State variable Unit Math equivalent Initial value Description ===================== ==== =============== ============= ========================== error_signal mV :math:`L_j` 0.0 Error signal readout_signal mV :math:`y_j` 0.0 Readout signal readout_signal_unnorm mV 0.0 Unnormalized readout signal target_signal mV :math:`y^*_j` 0.0 Target signal V_m mV :math:`v_j` 0.0 Membrane voltage ===================== ==== =============== ============= ========================== Recordables +++++++++++ The following variables can be recorded: - error signal ``error_signal`` - readout signal ``readout_signal`` - readout signal ``readout_signal_unnorm`` - target signal ``target_signal`` - membrane potential ``V_m`` Usage +++++ This model can only be used in combination with the other e-prop models, whereby the network architecture requires specific wiring, input, and output. The usage is demonstrated in several :doc:`supervised regression and classification tasks <../auto_examples/eprop_plasticity/index>` reproducing among others the original proof-of-concept tasks in [1]_. References ++++++++++ .. [1] Bellec G, Scherr F, Subramoney F, Hajek E, Salaj D, Legenstein R, Maass W (2020). A solution to the learning dilemma for recurrent networks of spiking neurons. Nature Communications, 11:3625. https://doi.org/10.1038/s41467-020-17236-y .. [2] Korcsak-Gorzo A, Stapmanns J, Espinoza Valverde JA, Dahmen D, van Albada SJ, Bolten M, Diesmann M. Event-based implementation of eligibility propagation (in preparation) Sends ++++++++ LearningSignalConnectionEvent, DelayedRateConnectionEvent Receives ++++++++ SpikeEvent, CurrentEvent, DelayedRateConnectionEvent, DataLoggingRequest See also ++++++++ :doc:`Neuron `, :doc:`E-Prop Plasticity `, :doc:`Current-Based ` Examples using this model ++++++++++++++++++++++++++ .. listexamples:: eprop_readout_bsshslm_2020