We present an implementation of the celebrated FedProx algorithm as introduced in [1] to tackle client heterogeneity in federated networks. The pseudocode is as follows:
Input: K, T,
for
Server selects a subset
Server sends
Each chosen device
Each device
Server aggregates the
end for
In essence, the addition of the
Further, we perform experiments on i.i.d. (sampling from MNIST) and non-i.i.d. data (sampling from MNIST, fixing labels for each class) and visualize the effect of the the regularization coefficient
To reproduce the results: Clone the repo and run the following command:
python3 fedprox.py
TODO:
- Model partial participation by choosing random subset of clients.
- Model system heterogeneity / stragglers.
Contributors
[1] Li, T., Sahu, A. K., Zaheer, M., Sanjabi, M., Talwalkar, A., & Smith, V. (2020). Federated optimization in heterogeneous networks. Proceedings of Machine learning and systems, 2, 429-450.
[2] McMahan, B., Moore, E., Ramage, D., Hampson, S., & y Arcas, B. A. (2017, April). Communication-efficient learning of deep networks from decentralized data. In Artificial intelligence and statistics (pp. 1273-1282). PMLR.