Skip to content

Add Flower Baseline: FedRDF #6039

@francordel

Description

@francordel

Type

Feature

Description

Paper

Enrique Mármol Campos, Aurora Gonzalez-Vidal, José L. Hernández-Ramos, and Antonio Skarmeta
"FedRDF: A Robust and Dynamic Aggregation Function Against Poisoning Attacks in Federated Learning"
IEEE Transactions on Emerging Topics in Computing, vol. 13, no. 1, pp. 48–67, 2025.
DOI: 10.1109/TETC.2024.3474484


Motivation

FedRDF introduces a robust and dynamic aggregation function designed to mitigate poisoning attacks in federated learning.
Unlike static robust aggregators such as Krum or Trimmed Mean, FedRDF dynamically adjusts the contribution of each client based on similarity relationships derived from the clients’ model updates.

The function models client relationships using a Discrete Fourier Transform (DFT) over client updates to compute spectral similarities, applying a dynamic rejection and weighting process to minimize malicious influence without requiring an external threshold.

This baseline would strengthen Flower’s library of robust federated learning strategies, complementing ongoing work on client detection and defense mechanisms (see FedDefender and FLDetector).

Planned Implementation

Implementation Plan

  1. New Strategy:
    Implement a new aggregation strategy in:
    flwr/server/strategy/fedrdf.py

  2. New Baseline Example:
    Add a new baseline under:
    baselines/fedrdf/

  • Example dataset: MNIST or CIFAR-10
  • Compare FedRDF vs FedAvg, TrimmedMean, and Krum
  • Include example plots for accuracy and convergence
  1. Integration:
    The new FedRDF strategy can leverage the client-results split mechanism introduced in
    PR #5453,
    enabling post-aggregation filtering and client-level scoring.

  2. Testing and Documentation:

  • Minimal test in baselines/tests/test_fedrdf.py
  • Add section to baselines/README.md
  • Confirm linting (make format), tests (make test), and documentation pass (make check)

Additional Context

Dependencies
Only standard libraries: torch, numpy, flwr, and optionally scipy for distance metrics.


Labels
New Baseline · Feature · Good First Issue

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions