Welcome to the official repository for the paper titled "From Optimization to Generalization: Fair Federated Learning against Quality Shift via Inter-Client Sharpness Matching". This paper has been accepted for presentation at the IJCAI'24
main technical track.
In this repository, we provide the implementation of our proposed FedISM approach, along with other baseline methods including FedAvg (AISTATS'17), Agnostic-FL (ICML'19), q-FedAvg (ICLR'20), FairFed (AAAI'23), FedCE (CVPR'23) and FedGA (CVPR'23).
Our goal is to advance the development of fair federated learning in medical image analysis and related fields.
We recommend using conda to setup the environment. See code/requirements.txt
for the environment configuration.
Please download the ICH dataset from kaggle. Please download the ISIC 2019 dataset from this link.
Training-testing partition can be found in the /data
.
Take ICH for example, you should put images into /data/ICH_20/train/clean
and /data/ICH_20/test/clean
. After it, generate corrupted images with /data/ICH_20/add_noise.ipynb
. You may finally get directories, like the following example.
└── data
├── ICH_20
│ │
│ ├── test
│ │ ├── clean
│ │ ├── gaussian_1
│ │ ├── gaussian_2
│ │ ├── gaussian_3
│ │ ├── gaussian_4
│ │ └── gaussian_5
│ │
│ └── train
│ ├── clean
│ └── gaussian3_16_4_dir1.0
│
└── ISIC2019_20
If everything is ready, you may try:
python code/train_Baseline.py --dataset ICH_20 --noise 1 --alg FedISM --corrupted_num 4 --q 2.0 --beta 0.5
You may also run other baseline methods, like:
python code/train_Baseline.py --dataset ICH_20 --noise 1 --alg q_FedAvg --corrupted_num 4 --q 1.0
If this repository is useful for your research, please consider citing:
@inproceedings{FedISM,
title={From Optimization to Generalization: Fair Federated Learning against Quality Shift via Inter-Client Sharpness Matching},
author={Wu, Nannan and Kuang, Zhuo and Yan, Zengqiang and Yu, Li},
booktitle={IJCAI},
year={2024}
}
If you have any questions, please contact wnn2000@hust.edu.cn.