这个项目实现了一个健壮的联邦学习系统,能够检测并防御不同类型的后门攻击和恶意客户端行为。
联邦学习作为一种分布式机器学习范式,允许多个客户端在不共享原始数据的情况下协作训练模型。然而,这种分布式性质也使其容易受到恶意参与者的攻击。本项目专注于:
- 后门攻击检测:识别恶意客户端注入的后门
- 异常行为检测:使用多种距离度量方法识别异常客户端参数
- 健壮聚合:实现排除恶意客户端的聚合机制
-
多种攻击类型支持:
- 标签翻转攻击(Label Flipping)
- 后门攻击(Backdoor)
- 模型替换攻击
-
异常检测机制:
- 余弦相似度
- 欧氏距离
- 多维异常检测
-
可视化分析:
- 异常检测过程可视化
- 混淆矩阵分析
- 性能指标图表
robust_federated_learning.py:主要实现健壮联邦学习流程server/backdoor_detector.py:后门检测机制client/poisoned_client.py:模拟恶意客户端行为analyze_attacks.py:分析攻击效果和防御性能
-
异常检测性能:
- 精确率:100%(无误报)
- 召回率:初始50%提升至100%(最终检测所有恶意客户端)
- 平均F1分数:约94%
-
防御效果:
- 标准聚合(使用所有客户端)模型准确率:8.92%
- 健壮聚合(剔除恶意客户端)模型准确率:84.75%
- 最佳性能提升:75.83%
./run_experiment.sh./run_backdoor_detection.sh./run_anomaly_detection.shpython fl_example/test_model_accuracy.py- Python 3.8+
- PyTorch 1.8+
- NumPy
- Matplotlib
- scikit-learn
欢迎通过Pull Request或Issue提交贡献和建议。