本项目为联邦学习+差分隐私的实现(暂且记为myFed)。支持同步、异步、半异步(默认)机制。

项目仓库:https://github.com/yunsaijc/Federated-Learning-and-Differential-Privacy

本代码基于以下仓库实现:https://github.com/wenzhu23333/Differential-Privacy-Based-Federated-Learning

主要参考文献:

FedSA: A Semi-Asynchronous Federated Learning Mechanism in Heterogeneous Edge Computing

Federated Learning With Differential Privacy: Algorithms and Performance Analysis

重要参数定义与说明

1
2
3
4
5
M		//每一轮参与全局训练的客户数量
N //客户数量
K //全局更新的轮数
tau //陈旧度
epsilon //隐私预算

项目目的

本项目主要目的是学习理解联邦学习的工作过程。探究联邦学习加上差分隐私后的效果;同时考察在半异步机制下,不同M值对于准确率和收敛时间带来的影响。

项目结构

项目文件结构及说明如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
myFed
│ myFed.py //项目main文件
│ requirements.txt //依赖包与版本

├─data //存放数据集文件
├─log //代码运行记录
├─models //网络模型相关文件
│ │ Fed.py //全局更新函数
│ │ Nets.py //网络模型定义函数
│ │ test.py //测试准确率函数
│ │ Update.py //本地更新函数

├─utils //存放一些使用到的函数
│ │ dataset.py //数据集有关函数
│ │ dp_mechanism.py //与dp有关的函数
│ │ Functions.py //其他函数
│ │ language_utils.py //与特定语言模型有关的函数
│ │ options.py //命令行参数设置函数
│ │ sampling.py //数据集划分函数

实验设置

本项目中,我进行了多次实验。各个实验设置如下:(数据分布:IID/Non-IID;数据集:MNIST/CIFAR-10)

  1. 半异步机制联邦学习+差分隐私,设置不同N值。
  2. 半异步机制联邦学习+差分隐私,设置不同M值。
  3. 五种机制对比:myFed, FedSA, FedAsync, FedAP, FedAF;

实验结果分析

1. 设置不同N值

在不同的N值之下,各个客户端陈旧度的最大值随着N值的增大而增加。如下图所示:

2. 设置不同M值

令N的值固定,变量为M的值。在IID数据集下的实验结果如下图所示(图例中的值为\(\frac{M}{N}\))。可以发现,当M的值较小时,收敛速度更快,并且准确率也有略微的领先。

在Non-IID数据集下的实验结果如下图所示。可以发现,当数据分布为Non-IID时,仍然是M的值较小时,准确率上升地更快;但是M较小时的准确率波动程度较大,甚至会无法收敛;而M的值较大时虽然准确率上升更慢,但准确率是较为稳定,并且能够收敛的。

3. 五种机制对比

本实验将myFed(半异步), FedSA(半异步), FedAsync(异步), FedAP(同步), FedAF(同步)五种机制的性能进行了对比。

MNIST数据集,IID分布下。

MNIST数据集,Non-IID分布下。

CIFAR-10数据集,IID分布下。

CIFAR-10数据集,Non-IID分布下。

参考

Q. Ma, Y. Xu, H. Xu, Z. Jiang, L. Huang and H. Huang, "FedSA: A Semi-Asynchronous Federated Learning Mechanism in Heterogeneous Edge Computing," in IEEE Journal on Selected Areas in Communications, vol. 39, no. 12, pp. 3654-3672, Dec. 2021, doi: 10.1109/JSAC.2021.3118435.

K. Wei et al., "Federated Learning With Differential Privacy: Algorithms and Performance Analysis," in IEEE Transactions on Information Forensics and Security, vol. 15, pp. 3454-3469, 2020, doi: 10.1109/TIFS.2020.2988575.

https://blog.csdn.net/qq_36018871/article/details/121361027

https://zhuanlan.zhihu.com/p/263959892?utm_source=wechat_session

https://blog.csdn.net/m0_54487794/article/details/121674633

https://blog.csdn.net/wenzhu2333/article/details/124556920?spm=1001.2014.3001.5501

https://zhuanlan.zhihu.com/p/348290670

https://blog.csdn.net/Lyn_S/article/details/119661088

https://www.zhihu.com/question/354819140

https://zhuanlan.zhihu.com/p/142597513

https://blog.csdn.net/qq_41769289/article/details/87694955

https://blog.fangzhou.me/posts/20190224-gradient-descent/#l-smooth-and-%CE%BC-strongly-convex-function

https://blog.fangzhou.me/posts/20190217-convex-function-lipschitz-smooth-strongly-convex/#strongly-convex

https://blog.csdn.net/qsczse943062710/article/details/76423509

https://blog.csdn.net/qq_42589613/article/details/110296048

https://blog.csdn.net/PanYHHH/article/details/107361827

https://zhuanlan.zhihu.com/p/40761721