In this repository, code is for our ICML 2021 paper CRFL: Certifiably Robust Federated Learning against Backdoor Attacks
conda.shell
conda create -n crfl python=3.6
source activate crfl
torch and torchvision according to your CUDA Version and the instructions at PyTorch. For example,shell
conda install pytorch cudatoolkit=10.1 torchvision -c pytorch
shell
pip install -r requirements.txt
MNIST and EMNIST:
MNIST and EMNIST datasets will be automatically downloaded into the dir ./data during training or testing.
LOAN: Download the raw dataset loan.csv from Google Drive into the dir ./data.
Run
shell
python utils/loan_preprocess.py
We will get 51 csv files in ./data/loan/.
python main.py --params configs/mnist_params.yaml
python main.py --params configs/emnist_params.yaml
python main.py --params configs/loan_params.yaml
Hyperparameters can be changed according to the comments in those yaml files (configs/mnist_params.yaml,configs/emnist_params.yaml, configs/loan_params.yaml) to reproduce our experiments.
python smooth_mnist.py
python smooth_emnist.py
python smooth_loan.py
The filepaths of models can be changed in those yaml files (configs/mnist_smooth_params.yaml,configs/emnist_smooth_params.yaml, configs/loan_smooth_params.yaml) .
python certify_mnist.py
python certify_emnist.py
python certify_loan.py
If you find our work useful in your research, please consider citing:
@InProceedings{pmlr-v139-xie21a,
title = {CRFL: Certifiably Robust Federated Learning against Backdoor Attacks},
author = {Xie, Chulin and Chen, Minghao and Chen, Pin-Yu and Li, Bo},
booktitle = {Proceedings of the 38th International Conference on Machine Learning},
pages = {11372--11382},
year = {2021},
volume = {139},
series = {Proceedings of Machine Learning Research},
month = {18--24 Jul},
publisher = {PMLR},
pdf = {http://proceedings.mlr.press/v139/xie21a/xie21a.pdf},
url = {http://proceedings.mlr.press/v139/xie21a.html},
}