FedDM: Iterative Distribution Matching for Communication-Efficient Federated Learning

Yuanhao Xiong, Ruochen Wang, Minhao Cheng, Felix Yu, Cho-Jui Hsieh
7/20/2022
cs.LGcs.CR

No official code found. Best implementation: anonymifish/fed-distribution-matching (20 stars, last commit 2024-01-04).

Abstract

Federated learning~(FL) has recently attracted increasing attention from academia and industry, with the ultimate goal of achieving collaborative training under privacy and communication constraints. Existing iterative model averaging based FL algorithms require a large number of communication rounds to obtain a well-performed model due to extremely unbalanced and non-i.i.d data partitioning among different clients. Thus, we propose FedDM to build the global training objective from multiple local surrogate functions, which enables the server to gain a more global view of the loss landscape. In detail, we construct synthetic sets of data on each client to locally match the loss landscape from original data through distribution matching. FedDM reduces communication rounds and improves model quality by transmitting more informative and smaller synthesized data compared with unwieldy model weights. We conduct extensive experiments on three image classification datasets, and results show that our method can outperform other FL counterparts in terms of efficiency and model performance. Moreover, we demonstrate that FedDM can be adapted to preserve differential privacy with Gaussian mechanism and train a better model under the same privacy budget.

View on arXivView PDF

Code Implementations(1)

Implementation of FedDM: Iterative Distribution Matching for Communication-Efficient Federated Learning

201Shell, PythonDec 25, 20232 years ago

Similar Papers

Cite this paper

@article{xiong2022feddm,
  title  = {FedDM: Iterative Distribution Matching for Communication-Efficient Federated Learning},
  author = {Yuanhao Xiong and Ruochen Wang and Minhao Cheng and Felix Yu and Cho-Jui Hsieh},
  year   = {2022},
  eprint = {2207.09653},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2207.09653v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2207.09653.svg)](https://codeofpaper.com/paper/2207.09653)

Discussion