This repository contains the code, data and analysis discussed in the distance-based delay networks paper Exploiting Signal Propagation Delays to Match Task Memory Requirements in Reservoir Computing.
Analysis for the paper Memory–Non-Linearity Trade-Off in Distance-Based Delay Networks is based on the same evolved networks, and can be found in IPC-Analysis.ipynb, with examples on how to generate the paper figures.
- Analysis for the initial 2022 paper on DDNs is shown in the 2022-paper branch as it requires an older version of the code.
- Analysis for the 2023 paper on ADDNs is shown in the 2023-paper branch as it requires an older version of the code.
pip install requirements.txt
Code for CMA-ES hyperparameter optimisation is included for two benchmark tasks
Optimizing DDNs or baseline ESNs for NARMA tasks can be done by running NARMA_experiment.py with the appropriate parameters. Results from previous optimization runs can be found in NARMA-10_results_23 and NARMA-30_results_23, also used in the analysis notebook to generate paper figures.
Optimizing DDNs, ADDNs, adaptive ESNs or baseline ESNs for Mackey-Glass tasks can be done by running mg_experiment.py with the appropriate parameters. Results from previous optimization runs can be found in ADDN_further_experiments, also used in the analysis notebook to generate paper figures.
Example code for how to test best optimized networks shown in testOptimized.py
All paper figures can be reproduced using the included notebooks:
- Exploiting Signal Propagation Delays to Match Task Memory Requirements in Reservoir Computing: analysis notebook.
- Memory–Non-Linearity Trade-Off in Distance-Based Delay Networks: analysis notebook
See visual_example.py for a DDN or ESN (either random or optimized) simulated with a GUI, visually showing differences in network responses to various inputs.
Information processing capacity (IPC) is used in the 2024 paper. To understand how this is computed, and how the capacities tools are used for DDNs, have a look at capacitiesDDNExample.ipynb.
Code for computing IPC can be found in Capacities folder, written by prof. dr. Joni Dambre, published in Dambre, Joni, David Verstraeten, Benjamin Schrauwen, and Serge Massar. “Information Processing Capacity of Dynamical Systems.” Scientific Reports 2, no. 1 (July 19, 2012): 514. . An example for how the original capacities code is used can be seen in Capacity example.ipynb.