Distributed Learning for Random Vector Functional-Link Networks

The paper details two algorithms for training a Random-Vector Functional Link neural network, in the case where training data is distributed throughout a network of agents. It will appear in Information Sciences (download the paper). Below you will find detailed instructions on how to repeat the experiments taken from the paper. If you use this code or any derivative thereof in your research, please cite the original paper as:

 

Step 1 – Install Lynx

Download the latest version from the master branch of the toolbox:

https://github.com/ispamm/Lynx-Toolbox/

After downloading it, install it using the “install” script in the root folder. Refer to Chapter 3 of the user manual for more information on the guided procedure.

Step 2 – Download the datasets

Lynx comes with a small set of preinstalled datasets. To download all the datasets required by the article, run the “download_datasets” script. Please check that the following datasets are installed: garagebandsylva, uci_skills, g50c.

Step 3 – Define the configuration

Lynx works by defining the details of a simulation in a configuration file. To this end, create a file called “config_dist.m” in the “configs” folder. Below is the code for running a simulation on the Garageband dataset, with 20 nodes:

Step 4 – Run the simulation

To run the simulation, execute the script “run_simulation” and select the file you created previously. If you change the dataset (line 22) please remember to change accordingly the parameters of the RVFL (lines 5 and 6). Please refer to Section 3.1 of the user manual for details on the syntax of the function “add_dataset”, and to Table 3 of the paper for details on the optimal parameters. The topology is changed by modifying line 27: refer to the help of the NetworkTopology class for more information on the possible topologies.