Skip to content
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

Improve documentation of rate-based models #1484

Merged
merged 4 commits into from
Apr 1, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion models/gauss_rate.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,25 @@ Name: gauss_rate - rate model with Gaussian gain function
gauss_rate is an implementation of a nonlinear rate model with input
function
@f[ input(h) = g * \exp( -( x - \mu )^2 / ( 2 * \sigma^2 ) ) @f].
ddahmen marked this conversation as resolved.
Show resolved Hide resolved
It either models a rate neuron with input noise (see rate_neuron_ipn)
or a rate transformer (see rate_transformer_node).
Input transformation can either be applied to individual inputs
or to the sum of all inputs.

The model supports connections to other rate models with either zero or
non-zero delay, and uses the secondary_event concept introduced with
the gap-junction framework.

Nonlinear rate neurons can be created by typing
nest.Create('gauss_rate_ipn'). Nonlinear rate transformers can be
created by typing nest.Create('rate_transformer_gauss').


Parameters:

The following parameters can be set in the status dictionary.
The following parameters can be set in the status dictionary. Note
that some of the parameters only apply to rate neurons and not to rate
transformers.

\verbatim embed:rst
================= ======= ==============================================
Expand Down
42 changes: 27 additions & 15 deletions models/lin_rate.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,23 +42,34 @@ Name: lin_rate - Linear rate model

Description:

lin_rate is an implementation of a linear rate model with
input function \f$ input(h) = g * h \f$.
The model supports multiplicative coupling which can
be switched on and off via the boolean parameter mult_coupling
(default=false). In case multiplicative coupling is actived
the excitatory input of the model is multiplied with the function
\f$ mult\_coupling\_ex(rate) = g_{ex} * ( \theta_{ex} - rate ) \f$
and the inhibitory input is multiplied with the function
\f$ mult\_coupling\_in(rate) = g_{in} * ( \theta_{in} + rate ) \f$.

The model supports connections to other rate models with either zero or
non-zero delay, and uses the secondary_event concept introduced with
the gap-junction framework.
lin_rate is an implementation of a rate model with linear input
function \f$ input(h) = g * h \f$. It either models a rate neuron with
input noise (see rate_neuron_ipn), a rate neuron with output noise
(see rate_neuron_opn) or a rate transformer (see
rate_transformer_node).

Linear rate neurons support multiplicative coupling which can be
switched on and off via the boolean parameter mult_coupling
(default=false). In case multiplicative coupling is actived the
ddahmen marked this conversation as resolved.
Show resolved Hide resolved
excitatory input of the model is multiplied with the function \f$
mult\_coupling\_ex(rate) = g_{ex} * ( \theta_{ex} - rate ) \f$ and the
inhibitory input is multiplied with the function \f$
mult\_coupling\_in(rate) = g_{in} * ( \theta_{in} + rate ) \f$.

The model supports connections to other rate models with either zero
or non-zero delay, and uses the secondary_event concept introduced
ddahmen marked this conversation as resolved.
Show resolved Hide resolved
with the gap-junction framework.

Linear rate neurons can be created by typing
nest.Create('lin_rate_ipn') or nest.Create('lin_rate_opn') for input
noise or output noise, respectively. Linear rate transformers can be
created by typing nest.Create('rate_transformer_lin').

Parameters:

The following parameters can be set in the status dictionary.
The following parameters can be set in the status dictionary. Note
that some of the parameters only apply to rate neurons and not to rate
transformers.
\verbatim embed:rst
=============== ======= ==================================================
rate real Rate (unitless)
Expand Down Expand Up @@ -97,7 +108,8 @@ DataLoggingRequest

Author: David Dahmen, Jan Hahne, Jannis Schuecker

SeeAlso: rate_connection_instantaneous, rate_connection_delayed
SeeAlso: rate_connection_instantaneous, rate_connection_delayed,
rate_neuron_ipn, rate_neuron_opn
*/

class nonlinearities_lin_rate
Expand Down
10 changes: 8 additions & 2 deletions models/rate_transformer_node.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,17 @@ Name: rate_transformer_node - Rate neuron that sums up incoming rates

Description:

Base class for rate transformer model of the form
@f[
X_i(t) = \phi( \sum w_{ij} \cdot \psi( X_j(t-d_{ij}) ) )

@f]
The rate transformer node simply applies the nonlinearity specified in the
input-function of the template class to all incoming inputs. The boolean
parameter linear_summation determines whether the input function is applied to
the summed up incoming connections (True, default value) or to each input
individually (False).
the summed up incoming connections (True, default value, input
represents phi) or to each input individually (False, input represents psi).

An important application is to provide the possibility to
apply different nonlinearities to different incoming connections of the
same rate neuron by connecting the sending rate neurons to the
Expand Down
11 changes: 10 additions & 1 deletion models/sigmoid_rate.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,25 @@ Name: sigmoid_rate - rate model with sigmoidal gain function

sigmoid_rate is an implementation of a nonlinear rate model with input
function \f$ input(h) = g / ( 1. + \exp( -\beta * ( h - \theta ) ) ) \f$.
It either models a rate neuron with input noise (see rate_neuron_ipn)
or a rate transformer (see rate_transformer_node).
Input transformation can either be applied to individual inputs
or to the sum of all inputs.

The model supports connections to other rate models with either zero or
non-zero delay, and uses the secondary_event concept introduced with
the gap-junction framework.

Nonlinear rate neurons can be created by typing
nest.Create('sigmoid_rate_ipn'). Nonlinear rate transformers can be
created by typing nest.Create('rate_transformer_sigmoid').


Parameters:

The following parameters can be set in the status dictionary.
The following parameters can be set in the status dictionary.Note
ddahmen marked this conversation as resolved.
Show resolved Hide resolved
that some of the parameters only apply to rate neurons and not to rate
transformers.
\verbatim embed:rst
================== ======= ==============================================
rate real Rate (unitless)
Expand Down
11 changes: 10 additions & 1 deletion models/sigmoid_rate_gg_1998.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,25 @@ as defined in [1].

sigmoid_rate_gg_1998 is an implementation of a nonlinear rate model with
input function \f$ input(h) = ( g * h )^4 / ( .1^4 + ( g * h )^4 ) \f$.
It either models a rate neuron with input noise (see rate_neuron_ipn)
or a rate transformer (see rate_transformer_node).
Input transformation can either be applied to individual inputs
or to the sum of all inputs.

The model supports connections to other rate models with either zero or
non-zero delay, and uses the secondary_event concept introduced with
the gap-junction framework.

Nonlinear rate neurons can be created by typing
nest.Create('sigmoid_rate_gg_1998_ipn'). Nonlinear rate transformers can be
created by typing nest.Create('rate_transformer_sigmoid_rate_gg_1998').


Parameters:

The following parameters can be set in the status dictionary.
The following parameters can be set in the status dictionary. Note
that some of the parameters only apply to rate neurons and not to rate
transformers.

\verbatim embed:rst
================== ======= ==============================================
Expand Down
20 changes: 15 additions & 5 deletions models/tanh_rate.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,28 @@ Name: tanh_rate - rate model with hyperbolic tangent non-linearity

Description:

tanh_rate is an implementation of a nonlinear rate model with input function
\f$ input(h) = \tanh(g * (h-\theta)) \f$.
Input transformation can either be applied to individual inputs
or to the sum of all inputs.
tanh_rate is an implementation of a nonlinear rate model with input
function \f$ input(h) = \tanh(g * (h-\theta)) \f$. It either models a
rate neuron with input noise (see rate_neuron_ipn), a rate neuron with
output noise (see rate_neuron_opn) or a rate transformer (see
rate_transformer_node). Input transformation can either be applied to
individual inputs or to the sum of all inputs.

The model supports connections to other rate models with either zero or
non-zero delay, and uses the secondary_event concept introduced with
the gap-junction framework.

Nonlinear rate neurons can be created by typing
nest.Create('tanh_rate_ipn') or nest.Create('tanh_rate_opn') for input
noise or output noise, respectively. Nonlinear rate transformers can
be created by typing nest.Create('rate_transformer_tanh').


Parameters:

The following parameters can be set in the status dictionary.
The following parameters can be set in the status dictionary. Note
that some of the parameters only apply to rate neurons and not to rate
transformers.

\verbatim embed:rst
================== ======= ==============================================
Expand Down
16 changes: 13 additions & 3 deletions models/threshold_lin_rate.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,26 @@ Name: threshold_lin_rate - rate model with threshold-linear gain function

threshold_lin_rate is an implementation of a nonlinear rate model with input
function \f$ input(h) = min( max( g * ( h - \theta ), 0 ), \alpha ) \f$.
Input transformation can either be applied to individual inputs
or to the sum of all inputs.
It either models a rate neuron with input noise (see rate_neuron_ipn),
a rate neuron with output noise (see rate_neuron_opn) or a rate
transformer (see rate_transformer_node). Input transformation can
either be applied to individual inputs or to the sum of all inputs.

The model supports connections to other rate models with either zero or
non-zero delay, and uses the secondary_event concept introduced with
the gap-junction framework.

Nonlinear rate neurons can be created by typing
nest.Create('threshold_lin_rate_ipn') or
nest.Create('threshold_lin_rate_opn') for input noise or output noise,
respectively. Nonlinear rate transformers can be created by typing
nest.Create('rate_transformer_threshold_lin').

Parameters:

The following parameters can be set in the status dictionary.
The following parameters can be set in the status dictionary. Note
that some of the parameters only apply to rate neurons and not to rate
transformers.

\verbatim embed:rst
================== ======= ==============================================
Expand Down