การดำเนินการตามรายงานการเรียนรู้ของวานิลลาสหพันธรัฐ: การเรียนรู้การสื่อสารที่มีประสิทธิภาพของเครือข่ายลึกจากข้อมูลการกระจายอำนาจ
การทดลองเกิดขึ้นกับ MNIST, MNIST แฟชั่นและ CIFAR10 (ทั้ง IID และไม่ใช่ IID) ในกรณีที่ไม่ใช่ IID ข้อมูลระหว่างผู้ใช้สามารถแยกได้อย่างเท่าเทียมกันหรือไม่เท่ากัน
เนื่องจากจุดประสงค์ของการทดลองเหล่านี้เพื่อแสดงให้เห็นถึงประสิทธิภาพของกระบวนทัศน์การเรียนรู้แบบสหพันธรัฐจึงใช้แบบจำลองง่าย ๆ เช่น MLP และ CNN เท่านั้น
ติดตั้งแพ็คเกจทั้งหมดจาก chantment.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 py รายละเอียดจะได้รับพารามิเตอร์เหล่านั้นบางส่วน:
--dataset: ค่าเริ่มต้น: 'MNIST' ตัวเลือก: 'mnist', 'fmnist', 'cifar'--model: ค่าเริ่มต้น: 'MLP' ตัวเลือก: 'MLP', 'CNN'--gpu: ค่าเริ่มต้น: ไม่มี (รันบน CPU) สามารถตั้งค่าเป็นรหัส 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 EPOCHS:
| แบบอย่าง | ทดสอบ 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 | ไม่ใช่ IID (เท่ากัน) |
|---|---|---|
| MLP | 88.38% | 73.49% |
| ซีเอ็นเอ็น | 97.28% | 75.94% |