A leaky integrate & fire neuron, used by standard winner-take-all (WTA). More...
#include <Neuro/LeakyIntFireAdp.H>
Public Member Functions | |
LeakyIntFireAdp (const SimTime timeStep=SimTime::SECS(0.0001), const float El=0.0F, const float Ee=100.0e-3F, const float Ei=-20.0e-3F, const float Gl=5.0e-8F, const float Ge=0.0F, const float Gi=0.0F, const float Vth=0.001F, const float C=1.0E-9F, const float VthMod=1.0F, const float VthDec=0.01F, const float VthBase=0.001F, const float Vfire=0.0F) | |
constructor | |
void | input (const float current) |
set input current (A) | |
void | setV (const double val) |
set membrane potential to given value relative to Ei (in Volts) | |
bool | integrate (const SimTime &t) |
integrate for up to given time (in s) | |
float | getV () const |
get current membrane potential (in V) | |
float | getVth () const |
get current membrane potential threshold | |
float | getVfire () const |
get current membrane potential at time of fire | |
void | setG (const float Exc, const float Inh) |
set excitatory and inhibitory conductances (S) | |
void | setGleak (const float Leak) |
set leak conductance (S) | |
SimTime | getTimeStep () const |
return our internal time step: | |
float | logsig (const float x, const float o, const float b) const |
get the logistic sigmoid of the input value | |
void | setNewVth (const float salVal, const float VfireVal, const float dist) |
change the threshold for firing |
A leaky integrate & fire neuron, used by standard winner-take-all (WTA).
This is the integrate & fire neuron used in conjunction with WTA which is a 2D array of LeakyIntFire. It has a slightly more complicated Euler equation then LeakyIntegrator used by SM but the basic idea is the same. All parameters are in MKSA (SI) units (i.e., volts, amperes, siemens, etc). This neuron uses an Euler integration of the following form:
At each time step,
V is also clamped to never become smaller than and a spike is generated when (and V is then reset to zero).
Definition at line 60 of file LeakyIntFireAdp.H.
LeakyIntFireAdp::LeakyIntFireAdp | ( | const SimTime | timeStep = SimTime::SECS(0.0001) , |
|
const float | El = 0.0F , |
|||
const float | Ee = 100.0e-3F , |
|||
const float | Ei = -20.0e-3F , |
|||
const float | Gl = 5.0e-8F , |
|||
const float | Ge = 0.0F , |
|||
const float | Gi = 0.0F , |
|||
const float | Vth = 0.001F , |
|||
const float | C = 1.0E-9F , |
|||
const float | VthMod = 1.0F , |
|||
const float | VthDec = 0.01F , |
|||
const float | VthBase = 0.001F , |
|||
const float | Vfire = 0.0F | |||
) | [inline] |
constructor
Constructor with default params
timeStep | is the integration time step, in s. See the general description for the other params. |
Definition at line 148 of file LeakyIntFireAdp.H.
SimTime LeakyIntFireAdp::getTimeStep | ( | ) | const [inline] |
return our internal time step:
Definition at line 248 of file LeakyIntFireAdp.H.
float LeakyIntFireAdp::getV | ( | ) | const [inline] |
get current membrane potential (in V)
Definition at line 224 of file LeakyIntFireAdp.H.
Referenced by WinnerTakeAllTempNote::integrate().
float LeakyIntFireAdp::getVfire | ( | ) | const [inline] |
get current membrane potential at time of fire
Definition at line 232 of file LeakyIntFireAdp.H.
Referenced by WinnerTakeAllTempNote::integrate().
float LeakyIntFireAdp::getVth | ( | ) | const [inline] |
get current membrane potential threshold
Definition at line 228 of file LeakyIntFireAdp.H.
void LeakyIntFireAdp::input | ( | const float | current | ) | [inline] |
set input current (A)
Definition at line 167 of file LeakyIntFireAdp.H.
bool LeakyIntFireAdp::integrate | ( | const SimTime & | t | ) | [inline] |
integrate for up to given time (in s)
Returns true if a spike was generated.
Definition at line 171 of file LeakyIntFireAdp.H.
References SimTime::computeDeltaT(), and SimTime::secs().
float LeakyIntFireAdp::logsig | ( | const float | x, | |
const float | o, | |||
const float | b | |||
) | const [inline] |
get the logistic sigmoid of the input value
Definition at line 252 of file LeakyIntFireAdp.H.
void LeakyIntFireAdp::setG | ( | const float | Exc, | |
const float | Inh | |||
) | [inline] |
set excitatory and inhibitory conductances (S)
Definition at line 236 of file LeakyIntFireAdp.H.
void LeakyIntFireAdp::setGleak | ( | const float | Leak | ) | [inline] |
set leak conductance (S)
Definition at line 240 of file LeakyIntFireAdp.H.
void LeakyIntFireAdp::setNewVth | ( | const float | salVal, | |
const float | VfireVal, | |||
const float | dist | |||
) | [inline] |
change the threshold for firing
We change the fire threshold based on three primary factors (1) How salient is this location - salVal (2) At what voltage did the winner fire at - VfireVal (3) How far am I from the winner - dist
Thus, the new Vth is increased based on these three factors
Definition at line 259 of file LeakyIntFireAdp.H.
void LeakyIntFireAdp::setV | ( | const double | val | ) | [inline] |
set membrane potential to given value relative to Ei (in Volts)
Definition at line 220 of file LeakyIntFireAdp.H.