/federated-learning-1

A Keras implementation of FederatedAvergaing [McMahan, Brendan, et al. 2017] and Lazily Aggregated Stochastic Gradients [Chen, Tianyi, Yuejiao Sun, and Wotao Yin. 2020]

Primary LanguageJupyter Notebook

federated-learning

Overview

A Keras implementation of FederatedAvergaing [McMahan, Brendan, et al. 2017] and Lazily Aggregated Stochastic Gradients [Chen, Tianyi, Yuejiao Sun, and Wotao Yin. 2020]

This repository implements a simulated environment for comparing the performance of federated learning algorithms.

Currently supported:

  • Vanilla SGD
  • FederatedAveraging
  • LASG (using LASG-WK2 condition)

Federated Learning Simulation

Presentation slides & problem set

Presentation slides: https://docs.google.com/presentation/d/12jUREcnDRW5Y1KSwwKtV8Z1VbaPSPOCtcdpUC38d3nY/edit?usp=sharing

Problem set (jupyter): problem_set.ipynb

Problem set (pdf): problem_set.pdf

Dependencies

Tensorflow 2.3 or greater

Directions

  1. Set desired hyperparameters for Vanilla SGD, FederatedAveraging, and LASG-WK2 within mnist.py or nietzsche.py
  2. Execute the script
python mnist.py

or

python nietzsche.py
  1. When the experiments complete, results will be saved to the current working directory.