FIFL: A Fair Incentive Mechanism for Federated Learning
FL公平激励机制(多中心FL,无区块链)
论文资源已免费上传
问题
1)没有与其花费的资源相匹配的奖励,设备就没有兴趣参加训练。
2)防范恶意员工——上传无意义的更新进行破坏,防范低水平与搭便车者——获得奖励大于为系统带来的收入。
本文设计
公平奖励员工,以吸引可靠高效的员工;同时基于动态实时员工评估机制惩罚和消除恶意员工。根据两个指标表征工人的评估结果:1)贡献和2)声誉。贡献衡量员工对系统的效用,声誉是员工在一段时间内产生有用更新的概率,两者结合决定奖励诚实员工(或惩罚攻击者)的金额。
系统模型
1联邦学习
多中心FL,在所有设备都中选择M个设备成为服务器 。其基本训练流程为
1.1)局部训练以获得局部梯度;
1.2)局部梯度分为M个切片;
1.3)工作者将并行的局部梯度切片发送到相应的服务器;
2.1)每个服务器聚合一个梯度切片;
2.2)服务器并行地计算全局梯度切片;
1.4)服务器广播全局梯度切片,工作人员下载它们;
1.5)工人重组全局梯度切片以获得完整的全局梯度;
1.6)工人用全局梯度更新局部模型。
2攻击检测-信誉-贡献-奖励四大模块
攻击检测模块接收工人的梯度并消除有害的梯度。其次,声誉模块基于工人的历史检测结果的序列来测量工人的声誉。之后,贡献模块计算工人的效用。最后,激励模块基于声誉指标和贡献指标确定员工奖励的份额。所有中间结果和执行人的签名都存储在区块链中。
1)攻击检测模块:旨在识别和消除攻击者,通过检查异常梯度识别攻击者。
工人i的局部梯度表示为
其中N为工人数,Di为工人i的训练数据集包含样本数ni ,(x,y)为特定训练样本的对应特征和标签,θ为模型参数,Li为i的损失,一个损失函数,用于测量预测标签F(θ,x)和真实标签y之间的距离。
工人i的检测分数:
其中Lt为测试损耗,Gi是要检测的梯度;,G为诚实工人的基准梯度,Gi是i的局部梯度,〈G,Gi〉 是梯度的相似距离。
由于每个服务器聚合一个梯度切片,我们聚合来自服务器的检测分数以生成无偏检测结果。具体而言,工人i的全局检测分数为:
其中 是评估工作者i的服务器j的检测分数, 是由工作者i产生并由服务器j聚合的梯度切片。
设置一个超参数阈值Sy来筛选攻击者,即
Sy在检测攻击者时控制检测精度和误报率之间的权衡,建议任务发布者在FL培训之前,通过验证集上的简短测试过程来确定Sy。
2)信誉模块:SLM方法
使用 即(积极事件、消极事件和不确定事件)衡量员工的信誉。
由攻击检测模块可知,ri=1则为积极事件;ri=0则是一个负事件;不确定事件包括网络传输故障和无法识别的梯度。服务器统计每个周期内积极事件、消极事件和不确定事件的数量,我们用Pn表示负面事件的数量,用Pt表示正面事件的数量。在工人i的梯度Gi的检测结果为ri=0,则Pni=Pni+1,否则Pti=Pti+1。
工人i信任和不信任分数计算为:
其中St表示可信分数,Sn表示不可信分数,Su是梯度传输错误率。
工人i在一个时间间隔内的声誉计算为:
其中αt、αn、αu是加权参数。
为了动态和客观地衡量员工的声誉,我们通过考虑时间衰减来扩展SLM。具体而言,较旧的事件权重较小,而最近的事件权重较大。将声誉的时间衰减因子设置为γ。工人i在时间t+1的声誉计算如下:
其中Ri(t)是工人i在时间t的声誉,γ控制声誉对当前事件Ri(t+2)的敏感性
3)贡献模块:基于局部梯度和全局梯度之间的距离来计算工人的贡献
其中Dis()是欧几里德范数 。
假设G0是所有值都为0的梯度,对系统没有效用,为了计算相对贡献,我们设置阈值,以区分正贡献和负贡献。
工人i的贡献为:
其中如果bi≤ bh,贡献为正,如果bi>bh,贡献为负。
对于阈值的设置,我们可以选择一个合适工人i作为基准,则贡献高于工人i的任何工人j可以获得利润,而其他工人无法获得利润。这一门槛有效地阻止了搭便车和效用低于要求的工人加入联盟。
4)激励模块:信誉×奖励
贡献是衡量每个迭代中工人效用的指标。声誉是反映工人在产生有用梯度方面的可信度的指标。任务发布者将奖励份额确定为贡献和声誉的乘积,工人i的奖励份额为
其中, 符号决定是否奖励或惩罚工人, 是训练迭代中的总正贡献, 是工人i贡献的权重。