Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Flower Baseline: StatAvg #3812

Open
14 tasks done
paulBooz opened this issue Jul 16, 2024 · 2 comments
Open
14 tasks done

Add Flower Baseline: StatAvg #3812

paulBooz opened this issue Jul 16, 2024 · 2 comments
Labels

Comments

@paulBooz
Copy link

paulBooz commented Jul 16, 2024

Paper

Pavlos S. Bouzinis, Panagiotis Radoglou-Grammatikis, Ioannis Makris, Thomas Lagkas, Vasileios Argyriou, Georgios Th. Papadopoulos, Panagiotis Sarigiannidis, George K. Karagiannidis (2024): "StatAvg: Mitigating Data Heterogeneity in Federated Learning for Intrusion Detection Systems"

Link

https://arxiv.org/abs/2405.13062

Maybe give motivations about why the paper should be implemented as a baseline.

StatAvg is a method for mitigating feature shift in FL. StatAvg allows the FL clients to share their individual data statistics with the server, which then aggregates this information to produce global statistics. The latter are shared with the clients and used for universal data normalization. The technique is evaluated through applications aimed at training intrusion detection systems in a federated fashion. In the context of Flower, it demonstrates how the clients and server can exchange and aggregate arbitrary metrics, instead of just the training parameters.

Is there something else you want to add?

No response

Implementation

To implement this baseline, it is recommended to do the following items in that order:

For first time contributors

Prepare - understand the scope

  • Read the paper linked above
  • Decide which experiments you'd like to reproduce. The more the better!
  • Follow the steps outlined in Add a new Flower Baseline.
  • You can use as reference other baselines that the community merged following those steps.

Verify your implementation

  • Follow the steps indicated in the EXTENDED_README.md that was created in your baseline directory
  • Ensure your code reproduces the results for the experiments you chose
  • Ensure your README.md is ready to be run by someone that is no familiar with your code. Are all step-by-step instructions clear?
  • Ensure running the formatting and typing tests for your baseline runs without errors.
  • Clone your repo on a new directory, follow the guide on your own README.md and verify everything runs.
@jafermarq
Copy link
Contributor

Hi @paulBooz , it's great you opened this issue to add your StatAvg as a Flower Baseline! Normally, baselines in Flower can reproduce the "main results of the paper". Now, this is a bit up to interpretation and varies a bit between papers... what are the experiments you'd like people be able to reproduce when running the StatAvg baseline?

@paulBooz
Copy link
Author

Hi @jafermarq! I am planning to reproduce the StatAvg curve from Fig.3 in the paper. The implementation with Flower is complete and follows the baseline guidelines. I'am almost ready to submit a PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants