|
From: Robert I. <ri...@gm...> - 2008-08-28 16:37:47
|
Hello,
I am a newcomer to PCSIM and as exercise I started implementing the
simulations from [LegensteinPecevskiMaass2008].
I got stuck when I tried to define the neuron model, let me explain why.
The simulations in [LegensteinPecevskiMaass2008] use LIF neurons with
conductance based synapses subjected to short term dynamics and DA modulated
STDP.
My first guess was to use the following built-in types:
DARecvCbLifNeuron - for the neurons
DAModStdpDynamicCondExpSynapse - for the synapses
The neurons also receive Ornstein-Uhlenbeck noise as conductance input, but
I could not find a built-in neuron or synapse model that incorporates all
the above mentioned processes AND noise as well.
My best guess at the moment (after studying the c++ class reference and
source code) is that in order to have a OU-noisy DARecvCbLifNeuron I have to
extend PCSIM by implementing a class that extends both DARecvCbLifNeuron and
OUNoiseGenerator and that implements the virtual method
conductanceNoiseInput.
Something like:
class DARecvCbLifOUNoisyNeuron : public DARecvCbLifNeuron, public
OUNoiseGenerator
{
SIMOBJECT( CbLifNeuron, AdvancePhase::One )
public:
...the constructor taking all the parameters...
virtual double conductanceNoiseInput(){
OUNoiseGenerator::advance();
return OUNoiseGenerator::getValue();
}
virtual int reset(double dt){
return (OUNoiseGenerator::reset(dt) || DARecvCbLifNeuron::reset(dt));
}
virtual int adjust(double dt){
return (OUNoiseGenerator::adjust(dt) || DARecvCbLifNeuron::adjust(dt));
}
}//class
Is this the correct aproach? Is there a simpler way to add noise to a
neuron?
References:
[1] R. Legenstein, D. Pecevski, and W. Maass.* A learning theory for
reward-modulated spike-timing-dependent plasticity with application to
biofeedback*. PLoS Computational Biology, 2008. in press.
Thank you in advance.
Kind regards,
Robert.
|