Learning from Distributed Data Sources using Random Vector Functional-Link Networks

The paper details an algorithm for training a Random Vector Functional-Link Network in a decentralized fashion, when the features of every pattern are distributed over a set of agents. Below you will find detailed instructions on how to repeat the experiments taken from the paper. If you use this code or any derivatives thereof in your research, please cite the following paper:

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, 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_heterogeneous.m” in the “configs” folder. Below is the code for running a simulation on the G50C dataset, with 8 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 1 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.