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

Add link to 3.7 whats new page in docs #3153

Merged
merged 6 commits into from
Mar 22, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions doc/htmldoc/whats_new/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ versions of NEST. On the linked pages, you will find both information about new
features, as well as quick guides on how to transition your simulation code to
the new versions.

* :ref:`NEST 3.7 <release_3.7>`
* :ref:`NEST 3.6 <release_3.6>`
* :ref:`NEST 3.5 <release_3.5>`
* :ref:`NEST 3.4 <release_3.4>`
Expand Down
107 changes: 86 additions & 21 deletions doc/htmldoc/whats_new/v3.7/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,27 @@ If you transition from an earlier version, please see our extensive
:ref:`transition guide from NEST 2.x to 3.0 <refguide_2_3>` and the
:ref:`list of updates for previous releases in the 3.x series <whats_new>`.

E-prop plasticity in NEST
-------------------------

NEST requires C++17
-------------------
Another new NEST feature is eligibility propagation (e-prop) [1]_, a local and
online learning algorithm for recurrent spiking neural networks (RSNNs) that
serves as a biologically plausible approximation to backpropagation through time
(BPTT). It relies on eligibility traces and neuron-specific learning signals to
compute gradients without the need for error propagation backward in time. This
approach aligns with the brain's learning mechanisms and offers a strong
candidate for efficient training of RSNNs in low-power neuromorphic hardware.

For further information, see:

* :doc:`/auto_examples/eprop_plasticity/index`
* :doc:`/models/index_e-prop plasticity`

.. [1] Bellec G, Scherr F, Subramoney F, Hajek E, Salaj D, Legenstein R,
Maass W (2020). A solution to the learning dilemma for recurrent
networks of spiking neurons. Nature Communications, 11:3625.
https://doi.org/10.1038/s41467-020-17236-y

From NEST 3.7 on, we use some C++17 features in NEST code. Therefore,
NEST needs to be built with a compiler that supports C++17. Most
recent C++ compilers should do so.

Tripartite connectivity in NEST
-------------------------------
Expand All @@ -42,23 +56,74 @@ See connectivity documentation:
* :ref:`tripartite_connectivity`


E-prop plasticity in NEST
-------------------------
Ignore-and-fire neuron model
----------------------------

Another new NEST feature is eligibility propagation (e-prop) [1]_, a local and
online learning algorithm for recurrent spiking neural networks (RSNNs) that
serves as a biologically plausible approximation to backpropagation through time
(BPTT). It relies on eligibility traces and neuron-specific learning signals to
compute gradients without the need for error propagation backward in time. This
approach aligns with the brain's learning mechanisms and offers a strong
candidate for efficient training of RSNNs in low-power neuromorphic hardware.
A neuron model for generating spikes at fixed intervals, irrespective of inputs.

For further information, see:
The ``ignore_and_fire`` neuron is primarily used for neuronal-network model verification and validation purposes
("benchmarking"), in particular, to evaluate the correctness and performance of connectivity generation and inter-neuron
communication. It permits an easy scaling of the network size and/or connectivity without affecting the output spike
statistics.

* :doc:`/auto_examples/eprop_plasticity/index`
* :doc:`/models/index_e-prop plasticity`
See documentation for more information:

.. [1] Bellec G, Scherr F, Subramoney F, Hajek E, Salaj D, Legenstein R,
Maass W (2020). A solution to the learning dilemma for recurrent
networks of spiking neurons. Nature Communications, 11:3625.
https://doi.org/10.1038/s41467-020-17236-y
* :doc:`/models/ignore_and_fire`

Neuron model with integrated short-term plasticity
--------------------------------------------------

The new ``iaf_tum_2000`` neuron model incoroporates the ``tsodyks_synapse`` directly
into the neuron model. In particular,
``iaf_tum_2000`` implements short-term depression and short-term facilitation based on Tsodyks et al. [2]_.
It is based on the ``iaf_psc_exp`` model.

.. [2] Tsodyks M, Uziel A, Markram H (2000). Synchrony generation in recurrent
networks with frequency-dependent synapses. Journal of Neuroscience,
20 RC50. URL: http://infoscience.epfl.ch/record/183402


New connection rule: ``pairwise_poisson``
------------------------------------------

The number of synapses between pre- and post-synaptic neurons is drawn from a Poisson distribution.
The ``pairwise_poisson`` method is adapted from the ``pairwise bernouilli`` method.


See more information:

* :ref:`connection_management`

New parameter for compartmental model
-------------------------------------

In the compartmental model ``cm_default``, the voltage initialisation of each compartment
can now be specified by the user, by adding a `v_comp` entry to the compartment parameter dictionary.

See the model documentation:

* :doc:`/models/cm_default`
heplesser marked this conversation as resolved.
Show resolved Hide resolved

New interface for NEST Extension Modules
----------------------------------------

The interface for NEST Extension Modules has been thoroughly revised. Key changes are

* All extention modules must be derived from class ``nest::NESTExtensionInterface`` provided in ``nest_extension_interface.h``.

* In your class, you must override the ``initialize()`` method with one that registers all components provided by your module.
* The ``nest_extension_interface.h`` header provides a large set of NEST includes, so once including it you should no longer need to include other NEST headers in most cases.

* Modules are now unloaded upon ``ResetKernel()`` and new versions of modules can be loaded after ``ResetKernel()``.
* Modules can now also register connection builders and growth curves with the kernel.

For more information, see the extension module documentation:

* :doc:`NEST Extension Module Documentation <extmod:index>`

NEST requires C++17
-------------------

From NEST 3.7 on, we use some C++17 features in NEST code. Therefore,
NEST needs to be built with a compiler that supports C++17. Most
recent C++ compilers should do so.
Loading