DBE icon indicating copy to clipboard operation
DBE copied to clipboard

NeurIPS 2023 accepted paper, Eliminating Domain Bias for Federated Learning in Representation Space

Introduction

This is the implementation of our paper Eliminating Domain Bias for Federated Learning in Representation Space (accepted by NeurIPS 2023). It can improve bi-directional knowledge transfer between the server and clients. We show the code of the representative FedAvg+DBE (FedDBE).

  • [NeurIPS] DBE.pptx
  • DBEPoster.pdf

Takeaway: By eliminating domain bias in the feature extractor, we address catastrophic forgetting during local training, enhancing the generalization ability. Consequently, the global module can swiftly adapt to a new client.

Citation

@inproceedings{zhang2023eliminating,
  title={Eliminating Domain Bias for Federated Learning in Representation Space},
  author={Jianqing Zhang and Yang Hua and Jian Cao and Hao Wang and Tao Song and Zhengui XUE and Ruhui Ma and Haibing Guan},
  booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
  year={2023},
  url={https://openreview.net/forum?id=nO5i1XdUS0}
}

Datasets and Environments

Due to the file size limitation, we only upload the fmnist dataset with the default practical setting ($\beta=0.1$). Please refer to our project PFLlib for other datasets and environments settings.

System

  • main.py: configurations of FedDBE.
  • run_me.sh: command lines to start FedDBE.
  • env_linux.yaml: python environment to run FedDBE on Linux.
  • ./flcore:
    • ./clients/clientDBE.py: the code on the client.
    • ./servers/serverDBE.py: the code on the server.
    • ./trainmodel/models.py: the code for models.
  • ./utils:
    • data_utils.py: the code to read the dataset.

Training and Evaluation

All codes corresponding to FedDBE are stored in ./system. Just run the following commands.

cd ./system
sh run_me.sh