本文主要是介绍文献阅读--Federated Learning with Unreliable Clients: Performance Analysis and Mechanism Design,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文讲述了在联邦学习中,如何确定上传异常梯度的 Unreliable Clients,并提出了DeepSA算法,用来屏蔽Unreliable Clients上传的本地模型参数。除此以外,本文还推算了在异常场景下中心模型损失函数收敛的上界,并得到了最佳本地训练epoch的数量。
创新点:使用卷积神经网络鉴别异常参数(通过观察发现针对同一用户,其第k轮的数据及其领域几轮的数据具有相关性,这样的相关性可以被卷积层识别并呈现相关度)
目录
- 收敛分析
- 如何鉴别 Unreliable Clients ?
- 二分类DNN模型的训练方式
- 为什么要添加卷积层?
- 实验设置
我们先来看一下存在 Unreliable Clients 的联邦学习场景:
注:在本文的联邦学习框架中,各 client 在本地进行多轮epoch 的训练,再上传本地模型参数,而不是上传梯度。
本文把 abnormal behaviors 分成了两种:
1.intentional:此种行为的 malicious clients 蓄意破坏中心模型的性能,因此可能会上传反向梯度。
2.unintentional:这种情形下的 clients 收集到的本地数据可能很不准确(含有噪声)。
上述 abnormal behaviors 情况下,上传的 abnormal parameter可以表示为:
α ∈ [ − 1 , 1 ] α ∈ [−1, 1] α∈[−1,1], n n n表示噪声。
收敛分析
先定义符号:
令 F ( w T ˉ ) F(\bar{w^{T}}) F(wTˉ) 为中心模型在一共训练 T T T 轮的情况下的损失函数, F ( w ∗ ) F(w^{*}) F(w∗) 是使损失函数最小的 w ∗ w^{*} w∗。
本文给出的收敛上界如下:
从上述的收敛情况,我们可以得到以下结论:
1.本地训练次数 τ \tau τ 会影响收敛情况,在没有 unreliable client 的情况下,本地训练次数 τ \tau τ 越大,系统(中心模型)的收敛情况越差。
2. 参与者个数越多,异常行为出现的越少,系统的性能会越好。
3. 存在一个最佳 τ \tau τ ,可以使得系统达到最佳收敛——损失函数最小。
如何鉴别 Unreliable Clients ?
和别的方法一样,这里引入了异常检测,通过构建一个二分类的异常检测 DNN 模型。首先,利用 normal 数据训练一个DNN模型(就当作训练好了),然后,用 测试数据作为 DNN 模型的输入,如果DNN接受了这个输入,则为 normal 数据,否则为 abnormal 数据。
二分类DNN模型的训练方式
在 Fl 框架中,server端在第 k k k 轮聚合,收集到的参数可以表示为:
所以对应的检测结果可以表示为:
其中,0表示异常,1表示 normal 。
所以,从第1轮到第k轮的检测结果可以表示为:
注意:每一个 o o o 都是一个向量,因此,上式是一个由0和1组成的二维矩阵,而这个二维矩阵的输入,即参数矩阵,第 k k k轮到第 k − d k-d k−d 轮的所聚合的参数可以表示为:
以往的异常检测算法是直接对某一轮的参数进行异常检测,但是本文的算法还考虑了过去几轮参数,即进行了纵向比对。
同样啊,这个 O d O^d Od 矩阵可以看作是一个 ( U ∗ 1 ∗ d ∗ s w ) (U*1*d*s_w) (U∗1∗d∗sw) 的多维矩阵。 s w s_w sw 表示每个本地模型所有参数的个数。
本文提出的 DNN二分类鉴别器如下图:
第 k k k轮到第 k − d k-d k−d 轮的所聚合的参数 ( U ∗ 1 ∗ d ∗ s w ) (U*1*d*s_w) (U∗1∗d∗sw) 的多维矩阵作为 DNN 模型输入,输出是第k轮的结果,只要满足上部的DNN或下面的卷积层中有一个1,就判定为normal。中间的是
为什么要添加卷积层?
这也是本文的异常检测模型优于其他AE类型模型的巧妙之处,针对添加了噪声的异常参数w,卷积层可以检测出 noised 和 normal parameter 的低关联性,从而更加有效。并且通过实验观察到,每一个 sub-vector 和前后相邻的 sub-vector (即 第n轮和 第 n±1轮的 w w w)的有非常强的联系,这样的联系可以被卷积层很好地发掘。
当检测到在某轮更新时出现 abnormal client时,设计一个安全的聚合算法如下:
实验设置
本文模拟了三种 abnormal behavior,如下:
we set the total number of clients M = 50 and the total learning iterations T(kτ ) = 300. We run each experiment for 20 times and record the average results.
这篇关于文献阅读--Federated Learning with Unreliable Clients: Performance Analysis and Mechanism Design的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!