Реализация ванильной федеративной учебной статьи: экономичное обучение глубоким сетям из децентрализованных данных.
Эксперименты проводятся на MNIST, Fashion MNIST и CIFAR10 (как IID, так и без IID). В случае без IID данные среди пользователей могут быть разделены одинаково или неравномерно.
Поскольку цель этих экспериментов состоит в том, чтобы проиллюстрировать эффективность федеративной учебной парадигмы, используются только простые модели, такие как MLP и CNN.
Установите все пакеты с требований.txt
Базовый эксперимент обучает модель обычным способом.
python src/baseline_main.py --model=mlp --dataset=mnist --epochs=10
python src/baseline_main.py --model=mlp --dataset=mnist --gpu=0 --epochs=10
Федеративный эксперимент включает в себя обучение глобальной модели с использованием многих местных моделей.
python src/federated_main.py --model=cnn --dataset=cifar --gpu=0 --iid=1 --epochs=10
python src/federated_main.py --model=cnn --dataset=cifar --gpu=0 --iid=0 --epochs=10
Вы можете изменить значения по умолчанию других параметров для моделирования различных условий. См. Раздел «Параметры».
Значения по умолчанию для различных параметров, проведенных в эксперименте, приведены в options.py . Подробности даются некоторые из этих параметров:
--dataset: по умолчанию: 'mnist'. Варианты: 'mnist', 'fmnist', 'cifar'--model: по умолчанию: 'MLP'. Параметры: 'MLP', 'cnn'--gpu: по умолчанию: нет (работает на процессоре). Также может быть установлен на конкретный идентификатор графического процессора.--epochs: количество раундов обучения.--lr: скорость обучения по умолчанию установлена 0,01.--verbose: подробные выходы журнала. Активируется по умолчанию, установите на 0 для деактивации.--seed: Случайное семя. Установка по умолчанию в 1. --iid: распределение данных среди пользователей. По умолчанию установлено в IID. Установите 0 для не IID.--num_users: количество пользователей. По умолчанию 100.--frac: доля пользователей, которые будут использоваться для федеративных обновлений. По умолчанию 0,1.--local_ep: количество локальных эпох обучения у каждого пользователя. По умолчанию 10.--local_bs: размер партии локальных обновлений у каждого пользователя. По умолчанию 10.--unequal: используется в не настройке IID. Возможность разделения данных между пользователями одинаково или неравномерно. По умолчанию установлено в 0 для равных расколов. Установите на 1 для неравных расколов. Эксперимент включает в себя обучение одной модели обычным способом.
Параметры:
Optimizer: SGDLearning Rate: 0,01 Table 1: Точность теста после тренировки на 10 эпох:
| Модель | Тестовый акк |
|---|---|
| MLP | 92,71% |
| CNN | 98,42% |
Эксперимент включает в себя обучение глобальной модели в федеративной обстановке.
Федеративные параметры (значения по умолчанию):
Fraction of users (C) : 0,1Local Batch size (B) : 10Local Epochs (E) : 10Optimizer : SGDLearning Rate : 0,01 Table 2: Точность теста после обучения для 10 глобальных эпох с:
| Модель | IID | Не |
|---|---|---|
| MLP | 88,38% | 73,49% |
| CNN | 97,28% | 75,94% |