Skip to content

reservoir computing toolbox for neuroscientists

License

Notifications You must be signed in to change notification settings

anaston/conn2res

 
 

Repository files navigation

Development Status: 3 - Alpha. Some features still need to be added and tested.

images/conn2res_logo.png

In a nutshell, conn2res is a reservoir computing toolbox designed for neuroscientists to train connectome-informed reservoirs to perform cognitive tasks. The main advantages of the toolbox are its flexibility in terms of the connectivity matrix used for the reservoir, the local dynamics of the nodes and the possibility to select the input and output nodes, as well as a comprehensive corpus of supervised neuroscience tasks provided by NeuroGym.

The accompanying manuscript has been uploaded to bioRxiv.

Brief primer on Reservoir Computing

Reservoir computing is a computational paradigm that essentially exploits the rich dynamics of complex dynamical systems, such as artificial recurrent neural networks (RNNs), to compute with time-varying input data (Lukoševičius, M. and Jaeger, H, 2009). The conventional reservoir computing architecture consists of an input layer, followed by the reservoir and a readout module. Typically, the reservoir is a randomly connected RNN and the readout module a linear model. In contrast to traditional RNNs, the connections of the reservoir are fixed; only the weights that connect the reservoir to the readout module are trained, which correspond to the parameters of the linear model. These weights are trained in a supervised manner to learn the representations of the external stimuli constructed by the reservoir, and can be adapted to a wide range of tasks, including speech recognition, motor learning, natural language processing, working memory and spatial navigation. Because arbitrary network architecture and dynamics can be superimposed on the reservoir, implementing biologically plausible network architectures allows to investigate how brain network organization and dynamics jointly support learning.

images/rc.png

conn2res: an overview

The conn2res toolbox provides a general use-case driven workflow that takes as input (1) either the type of task to be performed (see NeuroGym), or a supervised dataset of input- label pairs can also be provided; (2) a binary or weighted connectome, which serves as the reservoir’s architecture; (3) the input nodes (i.e., nodes that receive the external signal); (4) the readout nodes (i.e., nodes from which information will be read and used to train the linear model); and (5) the type of dynamics governing the activation of the reservoir’s units (continuous or discrete time nonlinear dynamics can be implemented, including spiking neurons or artificial neurons with different activation functions such as ReLU, leaky ReLU, sigmoid or hyperbolic tangent). Depending on the type of dynamics, the output is either a performance score, or a performance curve as a function of the parameter that controls for the qualitative behavior of the reservoir’s dynamics (i.e., stable, critical or chaotic).

images/conn2res.png

The toolbox has been extended to simulate physical connectome-informed memristive reservoirs, a newly type of neuromorphic hardware that, thanks to its high computational and energy efficiency, has the potential to replace conventional computer chips and revolutionize artificial intelligence algorithms (Tanaka, G., et al., 2019).

Installation requirements

Currently, conn2res works with Python 3.8+ and requires a few dependencies:

  • numpy (>=1.22)
  • scipy (>=1.7)
  • pandas (>=1.4)
  • scikit-learn (>=1.1)
  • matplotlib (>=3.5)
  • seaborn (>=0.11)
  • bctpy (>=0.5)
  • reservoirpy (>=0.3)
  • gym (==0.21.0)
  • neurogym (==0.0.1)

You can get started by installing conn2res from the source repository with:

git clone https://github.com/netneurolab/conn2res.git
cd conn2res
pip install .
cd ..
git clone -b v0.0.1 https://github.com/neurogym/neurogym.git
cd neurogym
pip install -e .

You are ready to go!

Citation

If you use the conn2res toolbox, please cite our paper.

License information

This work is licensed under a BSD 3-Clause "New" or "Revised" License. The full license can be found in the LICENSE file in the conn2res distribution.

About

reservoir computing toolbox for neuroscientists

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%