تنفيذ ورقة التعلم الفيدرالية الفانيليا: التعلم الفعال للاتصال للشبكات العميقة من البيانات اللامركزية.
يتم إنتاج التجارب على MNIST و MANTAL MNIST و CIFAR10 (كل من IID وغير IID). في حالة عدم IID ، يمكن تقسيم البيانات بين المستخدمين بالتساوي أو غير متساوٍ.
نظرًا لأن الغرض من هذه التجارب هو توضيح فعالية نموذج التعلم الفيدرالي ، يتم استخدام نماذج بسيطة فقط مثل MLP و CNN.
تثبيت جميع الحزم من المتطلبات
تدرب التجربة الأساسية النموذج بالطريقة التقليدية.
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: افتراضي: لا شيء (يعمل على وحدة المعالجة المركزية). يمكن أيضًا ضبطها على معرف 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 عصر:
| نموذج | اختبار ACC |
|---|---|
| MLP | 92.71 ٪ |
| سي إن إن | 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 ٪ |
| سي إن إن | 97.28 ٪ | 75.94 ٪ |