1、FLTrust: Byzantine-robust Federated Learning via Trust Bootstrapping
1、概要
拜占庭式的鲁棒联邦学习方法中没有信任的根(即不知道服务器的任务),所以在服务器看来,每个客户端都可能是恶意的。
本文提出FLTrust来引导客户端进行训练。即服务提供者自己为学习任务收集一个干净的小型训练数据集(称为根数据集),并在此基础上维护一个模型(称为** **)来引导信任。
在每次迭代中,服务提供者首先为来自客户端的每个本地模型更新分配一个信任分数,其中,如果本地模型更新的方向偏离服务器模型更新的方向更多,则本地模型更新的信任分数更低。然后,服务提供者将本地模型更新的大小归一化,使其与向量空间中的服务器模型更新处于同一超球体中。标准化限制了大规模恶意本地模型更新的影响。最后,服务提供者计算标准化局部模型更新的平均值,并将其加权作为全局模型更新,该更新用于更新全局模型。
2、提出的拜占庭鲁棒性的聚合规则
一个模型的更新可以看作是一个矢量,其特征是它的方向和大小。攻击者可以操纵恶意客户端的本地模型更新的方向和大小。
服务器首先给本地模型更新分配一个信任评分(TS),如果本地模型更新的方向与服务器模型更新的方向更相似,则信任评分更大。形式上,我们使用局部模型更新和服务器模型更新之间的余弦相似度来度量它们方向的相似度。因为余弦相似度可能为负,通过RELU函数修正余弦相似度,以此得到信任评分。
然后将每个本地模型更新进行归一化,限制了大量有毒局部模型更新的影响。
最后,FLTrust计算归一化局部模型更新的平均值,并将其加权作为全局模型更新,用于更新全局模型。
3、不同的基础聚合函数
本文下的联邦学习上传的是本地模型与全局模型之间的差异,即 g i = w i − w g_i=w_i-w gi=wi−w;聚合聚合函数即怎么得到 g g g。
1)FedAvg(即对训练样本数的加权平均)
g = ∑ i = 1 n ∣ D i ∣ N g i g=\sum_{i=1}^{n}\frac{\left| D_i\right|}{N}g_i g=i=1∑nN∣Di∣gi
2)拜占庭鲁棒函数
-
Krum:Krum在若干个局部模型中选择一个与其他模型都相似的模型作为全局模型。具体而言,将梯度与其他梯度的范数距离的和作为该梯度的得分,然后选取得分最低者,即和大多数梯度都相似的梯度作为聚合梯度。
Krum算法不会影响模型的正常收敛,并且在攻击者控制客户端的占比不超过50%的情况下能保证模型的鲁棒性。
形式化定义如:假设有 f f f个恶意的客户端,则第 i i i个客户但的评分为:
s i =