Thanks to visit codestin.com
Credit goes to github.com

Skip to content

QNate275/KDFL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KDFL: 联邦学习中的后门攻击检测与防御

这个项目实现了一个健壮的联邦学习系统,能够检测并防御不同类型的后门攻击和恶意客户端行为。

项目概述

联邦学习作为一种分布式机器学习范式,允许多个客户端在不共享原始数据的情况下协作训练模型。然而,这种分布式性质也使其容易受到恶意参与者的攻击。本项目专注于:

  1. 后门攻击检测:识别恶意客户端注入的后门
  2. 异常行为检测:使用多种距离度量方法识别异常客户端参数
  3. 健壮聚合:实现排除恶意客户端的聚合机制

主要特点

  • 多种攻击类型支持

    • 标签翻转攻击(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%

使用方法

1. 运行标准联邦学习实验

./run_experiment.sh

2. 运行后门检测

./run_backdoor_detection.sh

3. 运行异常检测

./run_anomaly_detection.sh

4. 测试模型性能

python fl_example/test_model_accuracy.py

环境要求

  • Python 3.8+
  • PyTorch 1.8+
  • NumPy
  • Matplotlib
  • scikit-learn

贡献

欢迎通过Pull Request或Issue提交贡献和建议。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published