Skip to content

Bioinspired memories in the CA3 region of the hippocampus implemented with SNN technology in the SpiNNaker hardware.

License

Notifications You must be signed in to change notification settings

dancasmor/Spike-based-computational-models-of-bio-inspired-memories-in-the-hippocampal-CA3-region-in-SpiNNaker

Repository files navigation

Spike-based computational models of bio-inspired memories in the hippocampal CA3 region in SpiNNaker

Description

Code on which the paper entitled "Spike-based computational models of bio-inspired memories in the hippocampal CA3 region in SpiNNaker" is based, accepted and awaiting publication at the congress International Joint Conference on Neural Networks of 2022 (IJCNN 2022).

Two hippocampal bio-inspired memory models implemented on the SpiNNaker hardware platform using the technology of the Spiking Neuronal Network (SNN) are presented. The code is written in Python and makes use of the PyNN library and their adaptation for SpiNNaker called sPyNNaker. In addition, the necessary scripts to replicate the tests and plots carried out in the paper are included.

Please go to section cite this work to learn how to properly reference the works cited here.

Table of contents

Article

Title: Spike-based computational models of bio-inspired memories in the hippocampal CA3 region on SpiNNaker

Abstract: The human brain is the most powerful and efficient machine in existence today, surpassing in many ways the capabilities of modern computers. Currently, lines of research in neuromorphic engineering are trying to develop hardware that mimics the functioning of the brain to acquire these superior capabilities. One of the areas still under development is the design of bio-inspired memories, where the hippocampus plays an important role. This region of the brain acts as a short-term memory with the ability to store associations of information from different sensory streams in the brain and recall them later. This is possible thanks to the recurrent collateral network architecture that constitutes CA3, the main sub-region of the hippocampus. In this work, we developed two spike-based computational models of fully functional hippocampal bio-inspired memories for the storage and recall of complex patterns implemented with spiking neural networks on the SpiNNaker hardware platform. These models present different levels of biological abstraction, with the first model having a constant oscillatory activity closer to the biological model, and the second one having an energy-efficient regulated activity, which, although it is still bio-inspired, opts for a more functional approach. Different experiments were performed for each of the models, in order to test their learning/recalling capabilities. A comprehensive comparison between the functionality and the biological plausibility of the presented models was carried out, showing their strengths and weaknesses. The two models, which are publicly available for researchers, could pave the way for future spike-based implementations and applications.

Keywords: Hippocampus model, CA3, Neuromorphic engineering, spiking neural networks, SpiNNaker, spike-based memory

Author: Daniel Casanueva-Morato

Contact: dcasanueva@us.es

Instalation

  1. Have or have access to the SpiNNaker hardware platform. In case of local use, follow the installation instructions available on the official website

  2. Python version 3.8.10

  3. Python libraries:

To run any script, follow the python nomenclature: python script.py

Repository content

  • CA3_oscilatory.py: script responsible for building and simulating the oscillating memory model, as well as storing the simulation data in a file.

  • CA3_pc_inhibitory.py and CA3_pc_inhibitory_static_syn.py: scripts similar to the above but for the regulated activity model. The former works with the dynamic model (train) and the latter with the static model (test).

  • simulation_and_plot_CA3_oscilatory.py and simulation_and_plot_CA3_pc_inhibitory.py: scripts in charge of carrying out the simulation of the models and the plotting of the necessary graphics on these simulations.

  • utils.py: set of functions used as tools for the collection, storage, processing and plotting of information from the neuronal network.

  • data and plot: folders where the data files from the network simulation are stored and where the plots of these data are stored respectively.

Usage

In order to replicate the results of both memory models shown in the paper, it is necessary to select the configuration with which you want to build the memory within the model (comment or uncomment the block of parameters of the experiment you want to replicate) and adjust the time parameter simTime for the duration of the simulation based on this configuration (if the last input of information reaches the model at ms 75, give, for example, a value of 85 ms to this parameter). Once the model has been configured, the simulation_and_plot script corresponding to the model to be tested must be run.

In the case of the regulated activity model (CA3_pc_inhibitory), the model must first be trained to learn the patterns, and the result of this training must be passed to the static model to test the recall of the patterns. Therefore, the above steps must first be applied to the dynamic version of the model (CA3_pc_inhibitory.py) for pattern learning. This will generate a text file in the data folder with all the simulation information, including the weights of the trained synapses. Next, you have to apply the previous steps again on the static memory model (CA3_pc_inhibitory_static_syn.py), but changing the value of the w_path parameter to the full path to the previously generated file. This way, both phases of the model can be tested separately.

In order to carry out experiments different from the ones performed in the paper, it is enough to modify, instead of selecting, the configuration of the previous experiments to adapt them to the desired experimental conditions. For reference, the main parameters to be modified in the models are:

  • simTime: indicates how long the simulation will last.

  • networkSize: size of the network in number of neurons. It is directly proportional to the size of the input/output of the network and the size and number of patterns it can store.

  • DGLSpikes: the input spikes to the network. It is a 2d array where it is indicated for each input neuron (first dimension of the array) in which ms it should generate spikes (second dimension of the array).

The workflow for the network with oscilatory activity would be as follows:

  1. Change DGLSpikes on CA3_oscilatory.py to indicate the operations and content of the operations to be performed and adapt the simulation time to that input. For each operation, 5 units of time are required to maintain the spikes at the input and, between each operation, 10 units of time are required since the last input spike.

  2. Execute the simulation: python simulation_and_plot_CA3_pc_inhibitory.py.

  3. The results can be seen graphically in the plot folder.

The workflow for the network with regulated activity would be as follows:

  1. Start with the learning phase. Change DGLSpikes on CA3_pc_inhibitory.py to indicate the learning operation to be performed and adapt the simulation time to that input. For each learning operation, only 1 unit of time is required to maintain the spikes at the input and, between each operation, 10 units of time are required.

  2. Check that executeSTDPCA3 is true in the simulation_and_plot_CA3_pc_inhibitory.py file to execute the learning phase first. Execute the simulation: python simulation_and_plot_CA3_oscilatory.py. At the end of the training simulation, the script returns the full path to the generated data file.

  3. Start the recall/test phase. Indicate in w_path of the CA3_pc_inhibitory_static_syn.py file the full path taken from the simulation of the learning phase to pass the trained weights to the recall/test phase.

  4. Change DGLSpikes on CA3_pc_inhibitory_static_syn.py to indicate the recall operation to be performed and adapt the simulation time to that input. For each recall operation, the cue needs to be presented at the network input 2 times with a distance of 3 time units between them, i.e. if the first one was given in time unit 1, the next one will be given in 4. Moreover, between each operation, 10 units of time are required since the last input spike.

  5. Check that executeSTDPCA3 is false in the simulation_and_plot_CA3_pc_inhibitory.py file to execute the recall phase. Execute the simulation: python simulation_and_plot_CA3_oscilatory.py.

  6. The results can be seen graphically in the plot folder.

Cite this work

APA: Casanueva-Morato, D., Ayuso-Martinez, A., Dominguez-Morales, J. P., Jimenez-Fernandez, A., & Jimenez-Moreno, G. (2022). Spike-based computational models of bio-inspired memories in the hippocampal CA3 region on SpiNNaker. arXiv preprint arXiv:2205.04782.

ISO 690: CASANUEVA-MORATO, Daniel, et al. Spike-based computational models of bio-inspired memories in the hippocampal CA3 region on SpiNNaker. arXiv preprint arXiv:2205.04782, 2022.

MLA: Casanueva-Morato, Daniel, et al. "Spike-based computational models of bio-inspired memories in the hippocampal CA3 region on SpiNNaker." arXiv preprint arXiv:2205.04782 (2022).

BIBTEX: @article{casanueva2022spike, title={Spike-based computational models of bio-inspired memories in the hippocampal CA3 region on SpiNNaker}, author={Casanueva-Morato, Daniel and Ayuso-Martinez, Alvaro and Dominguez-Morales, Juan P and Jimenez-Fernandez, Angel and Jimenez-Moreno, Gabriel}, journal={arXiv preprint arXiv:2205.04782}, year={2022}}

Credits

The author of the original idea is Daniel Casanueva-Morato while working on a research project of the RTC Group.

This research was partially supported by the Spanish grant MINDROB (PID2019-105556GB-C33/AEI/10.13039/501100011033).

D. C.-M. was supported by a "Formación de Profesor Universitario" Scholarship from the Spanish Ministry of Education, Culture and Sport.

License

This project is licensed under the GPL License - see the LICENSE.md file for details.

Copyright © 2022 Daniel Casanueva-Morato
dcasanueva@us.es

License: GPL v3

About

Bioinspired memories in the CA3 region of the hippocampus implemented with SNN technology in the SpiNNaker hardware.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages