Esta é parcialmente a reprodução do artigo de aprendizado eficiente em comunicação de redes profundas a partir de dados descentralizados
Apenas experimentos em MNIST e CIFAR10 (IID e não IID) são produzidos de longe.
Nota: Os scripts serão lentos sem a implementação da computação paralela.
python> = 3.6
pytorch> = 0,4
Os modelos MLP e CNN são produzidos por:
python main_nn.py
A aprendizagem federada com MLP e CNN é produzida por:
python main_fed.py
Veja os argumentos no options.py.
Por exemplo:
python main_fed.py -DataSet mnist --iid --num_channels 1 -Model cnn --epochs 50 - -gpu 0
--all_clients para média em todos os modelos de clientes
NB: Para CIFAR-10, num_channels devem ser 3.
Os resultados são mostrados na Tabela 1 e na Tabela 2, com os parâmetros c = 0,1, b = 10, e = 5.
Tabela 1. Resultados de 10 épocas treinando com a taxa de aprendizado de 0,01
| Modelo | Acc. de iid | Acc. de não-IID |
|---|---|---|
| Fedavg-MLP | 94,57% | 70,44% |
| Fedavg-cnn | 96,59% | 77,72% |
Tabela 2. Resultados de 50 épocas treinando com a taxa de aprendizado de 0,01
| Modelo | Acc. de iid | Acc. de não-IID |
|---|---|---|
| Fedavg-MLP | 97,21% | 93,03% |
| Fedavg-cnn | 98,60% | 93,81% |
Agradecimentos dão a Youkaichao.
McMahan, Brendan, Eider Moore, Daniel Ramage, Seth Hampson e Blaise Aguera y Arcas. Aprendizagem com eficiência de comunicação de redes profundas a partir de dados descentralizados. Em Inteligência e Estatística Artificial (Aistats), 2017.
Shaoxiong ji. (2018, 30 de março). Uma implementação de Pytorch da aprendizagem federada. Zenodo. http://doi.org/10.5281/zenodo.4321561