Skip to content

Official implementation of the paper "From Optimization to Generalization: Fair Federated Learning against Quality Shift via Inter-Client Sharpness Matching"

Notifications You must be signed in to change notification settings

wnn2000/FFL4MIA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Fair Federated Learning for Medical Image Analysis

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.

Project Overview

About

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.

Requirements

We recommend using conda to setup the environment. See code/requirements.txt for the environment configuration.

Datasets Preparation

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

Run

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

Citation

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}
}

Contact

If you have any questions, please contact wnn2000@hust.edu.cn.

About

Official implementation of the paper "From Optimization to Generalization: Fair Federated Learning against Quality Shift via Inter-Client Sharpness Matching"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published