sigmoid_rate_ipn#
- class brainpy.state.sigmoid_rate_ipn(in_size, tau=Quantity(10., 'ms'), lambda_=1.0, sigma=1.0, mu=0.0, g=1.0, beta=1.0, theta=0.0, mult_coupling=False, linear_summation=True, rectify_rate=0.0, rectify_output=False, rate_initializer=Constant(value=0.0), noise_initializer=Constant(value=0.0), name=None)#
NEST-compatible
sigmoid_rate_ipnnonlinear rate neuron with input noise.Description
sigmoid_rate_ipnimplements NEST’ssigmoid_rate_ipnmodel:\[\tau\,dX(t)= \left[-\lambda X(t)+\mu+\phi(\cdot)\right]dt +\left[\sqrt{\tau}\,\sigma\right]dW(t),\]where the gain function is
\[\phi(h)=\frac{g}{1+\exp[-\beta(h-\theta)]}.\]This model corresponds to NEST’s input-noise rate neuron template instantiated with
sigmoid_ratenonlinearity. Multiplicative coupling factors are fixed to one for this model (the flag is kept for compatibility).Update ordering (matching NEST ``rate_neuron_ipn`` with sigmoid nonlinearity)
Per simulation step:
Store outgoing delayed value as current
rate.Draw
noise = sigma * xi.Propagate intrinsic dynamics with stochastic exponential Euler (Euler-Maruyama for
lambda=0).Read delayed and instantaneous buffers.
Apply input contributions: -
linear_summation=True: apply sigmoid to branch sums. -linear_summation=False: apply sigmoid per event before summation.Apply rectification when
rectify_output=True.Store outgoing instantaneous value as updated
rate.
- Parameters:
in_size (
Size) – Population shape.tau (
Quantity[ms], optional) – Time constant of rate dynamics. Default10 ms.lambda_ (
float, optional) – Passive decay rate \(\lambda\). Default1.0.sigma (
float, optional) – Input noise scale. Default1.0.mu (
float, optional) – Mean drive. Default0.0.g (
float, optional) – Gain (amplitude) of the sigmoid nonlinearity. Default1.0.beta (
float, optional) – Slope parameter of sigmoid nonlinearity. Default1.0.theta (
float, optional) – Threshold (horizontal shift) of sigmoid nonlinearity. Default0.0.mult_coupling (
bool, optional) – Kept for NEST compatibility. Forsigmoid_ratethis switch has no effect because multiplicative coupling factors are identically 1.linear_summation (
bool, optional) – IfTrueapply sigmoid to summed branch inputs; ifFalseapply sigmoid to each event before weighted summation.rectify_rate (
float, optional) – Lower bound whenrectify_output=True. Default0.0.rectify_output (
bool, optional) – IfTrueclamp updated rate to>= rectify_rate.rate_initializer (
Callable, optional) – Initializer forrate. DefaultConstant(0.0).noise_initializer (
Callable, optional) – Initializer fornoise. DefaultConstant(0.0).name (
str, optional) – Module name.
Notes
Runtime events:
instant_rate_eventsare applied in the current step.delayed_rate_eventsuse integerdelay_steps.Event format supports dict or tuple:
(rate, weight),(rate, weight, delay_steps),(rate, weight, delay_steps, multiplicity).