Skip to content

About

Repository for Wavelet Scattering Autoencoders for Malicious Clients detection in Federated Learning

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Federated Coffee Disease Detection with Wavelet Scattering Transform

This repository contains the code for Wavelet Scattering AutoEncoders, a Byzantine-robust federated learning method for coffee disease detection, evaluated against standard aggregation baselines on the JMuBEN Kenya Coffee Disease dataset.

Dataset

JMuBEN Kenya Coffee Disease — 5 classes:

Class Description
Cerscospora Cerscospora leaf spot
Healthy Healthy leaf
Leaf rust Coffee leaf rust
Miner Leaf miner damage
Phoma Phoma leaf spot

Place the dataset under data/coffee/JMuBEN/ (one subfolder per class, following torchvision.datasets.ImageFolder convention).


Files

File Description
wasa_coffee.py Main WaSA experiment: FedAvg, Oracle, WaSA-Boltzmann, WaSA-Deterministic
baselines_common.py Shared data loading, model, client generation, and evaluation utilities
coffee_krum.py Krum aggregation baseline
coffee_multikrum.py Multi-Krum aggregation baseline
coffee_trimmedmean.py Coordinate-wise Trimmed Mean baseline
coffee_fldetector.py FLDetector-inspired cosine-consistency baseline
coffee_safefl.py SafeFL cosine-similarity filtering baseline
wasa_test.ipynb Exploratory notebook for result analysis

Requirements

torch
torchvision
kymatio
numpy
scikit-learn

Install with:

pip install torch torchvision kymatio numpy scikit-learn

Usage

Wavelet Scattering Autoencoders

# Default (80% malicious clients)
python wasa_coffee.py

# Custom malicious fraction
python wasa_coffee.py --malicious_frac 0.6
python wasa_coffee.py --malicious_frac 0.9

Baselines

python coffee_krum.py          --malicious_frac 0.6
python coffee_multikrum.py     --malicious_frac 0.6
python coffee_trimmedmean.py   --malicious_frac 0.6
python coffee_fldetector.py    --malicious_frac 0.6
python coffee_safefl.py        --malicious_frac 0.6

Results are saved as JSON files (e.g. wasa_coffee_results_42_60pct.json).


Key Hyperparameters

Parameter Default Description
ROUNDS 500 Total federated rounds
CLIENTS_PER_ROUND 10 Clients sampled per round
LOCAL_EPOCHS 1 Local training epochs per client
AE_EPOCHS 100 Autoencoder pre-training epochs
AE_LATENT_DIM 32 Autoencoder bottleneck size
BOLTZMANN_TEMPS [0.01, 0.1, 0.5, 1.0, 2.0, 5.0] Temperatures swept for WaSA-Boltzmann
DET_EPSILONS [0.05, 0.1, 0.3, 0.5, 1.0, 2.0] Thresholds swept for WaSA-Deterministic

About

Repository for Wavelet Scattering Autoencoders for Malicious Clients detection in Federated Learning

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages