New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Weights in stdp_triplet_connection cannot be negative - these cannot be used for inhibitory synapses? #240
Comments
@flinz - I ran into this while working on the symmetric stdp pull request - what do you think? |
@sanjayankur31 So far I was of the opinion that negative weights are a workaround in NEST when multiple spike receptors are not being used, however it seems that most models rely indeed in positive and negative weights. So, regardless of a debate whether the STDP models in question are at all viable for models of inhibitory plasticity, it would probably be worth doing some minor changes to enable also negative weights for STDP connections. There are three options as far as I see it:
@heplesser or @abigailm might have more insight or opinions.. |
@sanjayankur31 The problem you describe relates to a design decision taken very early in the history of NEST, long before we started to introduce plasticity: Weights between neurons with current-based synapses are signed. Thus, they lump together two aspects: the strength of the connection (which is a quite complex effective strength reflecting the total number of synapses between to neurons, the strength of the individual synapses, their placement within the neuron, etc) and the type of the connection (inhibitory/excitatory). The typical way to handle incoming spikes then is to classify them based on their sign, e.g.,
This allows different time constants for excitatory and inhibitory synapses. Even conductance-based models such as The most suitable way to address this issue, I believe, is to split routing (excitatory vs inhibitory "channel") from synapse strength, i.e., to make all weights positive and the use
and then during the update step just added to the derivative of the synaptic current:
The weighting factor |
@sanjayankur31 I just merged #284. I hope that solves the issue you raised. Would you close it if you are satisfied? |
Yes. Thank you! Closing. |
I may be missing something here, but from the examples that I've come across, if one wants to use synapse models as inhibitory, one just provides a negative weight. Now, in the implementation of the stdp_triplet_connection, the weights are bounded to (0, Wmax) - they cannot be negative. Does this mean they cannot be used for inhibitory synapses at all?
https://github.com/nest/nest-simulator/blob/master/models/stdp_triplet_connection.h#L195
If a synapse is to be inhibitory, the Wmax value will also be negative. So, changing the check to something like this is enough.
This ensures that w and Wmax are of the same sign.
The text was updated successfully, but these errors were encountered: