CorrFL: Correlation-based Neural Network Architecture for Unavailability Concerns in a Heterogeneous IoT Environment.
This code provides the implementation of a Correlation Neural Network in Federated Learning to address model heterogeneity and unavailability concern in the Federated Learning environment. All the code documentation and variable definition is in accordance with the content of the manuscript published in IEEE Transactions on Network and Service Management: I. Shaer and A. Shami, "CorrFL: Correlation-based Neural Network Architecture for Unavailability Concerns in a Heterogeneous IoT Environment, " IEEE Transactions on Network and Service Management, doi: 10.1109/TNSM.2023.3278937.
Before experimenting with the code, the following steps need to be implemented:
- Download the data employed for this work, which can be found using this link: https://zenodo.org/record/3774723#.ZGEhAHbMKUl. Since we only ran out experiments on room00, retain the data of this room, which can be found by following
data_cleaning/dirty_room/room00
directory. - Create the
datasets
folder in the root directory (on the same level assrc
) and its sub-foldersdirty_data
- Relocate the remaining files in the directory
datasets/dirty_data/room00_preprocessed
, which is defined in thedataset_dir
variable insrc/generate_granular_data.py
. Make sure to rename thecsv
files to their corresponding node names. For example,room00_THP-CO2_924_20190101-20191231.csv
tonode_924
. - Create
datasets/dirty_data/room00_gran5_fine
folder directory as declared ingenerate_granular_data.py
. - Run the
generate_granular_data.py
using the following command:python generate_granular_data.py
. This results in creating datasets in thedatasets/dirty_data/room00_gran5_fine
folder, which will be used throughout the experiments. - Create the
results
folder in the root directory and its sub-foldersfigures
,insights
,models
, andstats
- Run
driver.py
using the following commandpython driver.py
.
This paper highlights the problem of Oblique Federated Learning, which is halfway the Vertical Federated Learning and Horizontal Federated Learning, featuring non-uniformity in the feature space of local agents while these local agents share some and not all of the feature space. Therefore, this paper and code expose a novel problem in the space of Federated Learning and propose exciting research questions for practitioners and researchers to address.
The requirements are included in the requirements.txt
file. To install the packages included in this file, use the following command: pip install -r requirements.txt
Please feel free to contact me for any questions or research opportunities.
- Email: [email protected]
- Gihub: https://github.com/ibrahimshaer and https://github.com/Western-OC2-Lab
- LinkedIn: Ibrahim Shaer
- Google Scholar: Ibrahim Shaer and OC2 Lab