Page 361 - 《软件学报》2025年第5期
P. 361
乐紫莹 等: 基于梯度放大的联邦学习激励欺诈攻击与防御 2261
算法 1. 模拟联邦学习计算最佳放大因子 (以恶意参与者 j 为例).
输入: 本地训练数据 D j , 验证数据集 D V , 多个不同的放大因子值集合 γ_list ;
输出: 最佳放大因子 γ res .
1 2 N
1. 将本地训练数据集 D j 分为 N 个子数据集 D = {D ,D ,...,D }
j j j
k
2. 随机选择子数据集 D 作为攻击者
j
3. 最高激励值 R max = 0
4. for γ in γ_list
5. //模拟联邦学习
6. 总激励值 R k = 0
t = 1,2,...
7. for 每一轮
t
t
t
8. 使用子数据集 D 分别训练模型得到 w t = {w ,w ,...,w }
{i∈{N}} 1 2 N
t t
9. 使用 γ 放大 w 得到 ˜ w
k k
t
t
t
10. ˜ w t = {w ,..., ˜w ,...,w }
{i∈{N}} 1 k N
˜ w 能通过防御机制
t
11. if
k
t
12. 计算参与者 k 的激励 R = incentive( ˜w t ,D V )
k {i∈{N}}
13. else
t
14. R = 0
k
15. end if
t
16. R k = R k +R
k
17. end for
18. if R k > R max
19. γ res = γ
20. R max = R k
21. end if
22. end for
23. return γ res
(2) 在联邦学习中的每一轮计算该轮适用的放大因子, 使用上一轮所有参与者的本地模型信息模拟这一轮的
欺诈攻击, 多次尝试不同的放大因子对上一轮攻击者持有的诚实模型梯度进行放大, 选择梯度放大后可以通过防
御机制并且欺诈效果最佳的放大因子应用于本轮的激励欺诈攻击. 这类方法比较适用于通过对模型梯度进行检验
来排查恶意参与者的防御机制下的联邦学习.
这类计算放大因子的方法的思想是基于联邦学习相邻两轮之间各参与者训练所得的模型梯度较为相近, 如果
上一轮的诚实模型梯度使用放大因子放大后能够得到最大的激励成本比, 那么使用该放大因子对这一轮的本地模
型梯度进行放大也能够得到最佳的欺诈效果.
该方法是在联邦学习运行的过程中计算放大因子, 由于联邦学习运行时服务器一般对参与者训练并上传模型
梯度有一定的时间限制, 不会无期限的等待参与者上传梯度, 同时, 尝试的放大因子数量越多, 攻击所需的计算代
价越大, 因此攻击者需要尽可能减少实验的放大因子数量并能够从中找到合适的放大因子.
在 Refiner 的模型评估机制下计算放大因子的伪代码如算法 2 所示, 从中等大小的 γ 值开始实验, 根据梯度放
大后能否通过防御 (即通过 Refiner 的模型梯度检验) 并提高激励来决定增加或是减小 γ 值, 如果梯度放大后能够
通过防御并提高激励, 则意味着目前使用的 γ 值是满足攻击要求的, 可以尝试更大的 γ 值来获得更高的激励; 否则,
说明目前使用的 γ 值过大, 导致梯度放大后偏差过大, 需要减小 γ 值继续实验. 修改 γ 值时以 step/2 为步长, 每次