Page 362 - 《软件学报》2025年第5期
P. 362
2262 软件学报 2025 年第 36 卷第 5 期
γ res 之间的距离不大于预设定的阈值
修改都会将步长减半来使计算更加精细, 当 γ 值与当前得到的最佳放大因子
τ 时即停止计算, 并将当前得到的 γ res 作为该轮的放大因子. 使用算法 2 计算最佳放大因子时, 尝试的放大因子数
量与设定的初始放大因子和阈值 τ 相关, 由此算法中使用不同的放大因子所需的计算代价相同, 可以通过比较欺
诈激励来比较欺诈效果.
算法 2. Refiner 第 t 轮计算最佳放大因子 (以恶意参与者 j 为例).
t−1
t−1
t−1
输入: 第 t −1 轮各参与者的本地模型信息 w t−1 = {w ,w ,...,w } , 验证数据集 D V , 初始放大因子 γ init , 放大因
{i∈{N}} 1 2 N
子阈值 τ ;
γ res .
输出: 最佳放大因子
1. γ res = 1; R max = 0; γ = γ init ; step = γ init /2
2. while |γ res −γ| > τ
3. 使用 γ 放大 w t−1 得到 ˜ w t−1
j
j
t−1
t−1
t−1
4. ˜ w t−1 = {w ,..., ˜w ,...,w }
{i∈{N}} 1 j N
t
5. if ˜ w t−1 能通过防御机制且所得激励 R = incentive( ˜w t−1 ,D V ) > R max
j
j
{i∈{N}}
6. R max = R t j
7. γ res = γ
8. γ = (γ + step/2)
9. else
10. γ = (γ − step/2)
11. end if
step = step/2
12
13. end while
14. return γ res
FLDetector 通常在联邦学习运行了一定轮数后开始检测恶意参与者, 检测时会基于之前上传的模型梯度对该
轮模型梯度一致性进行检验, 因此使用的放大因子不能与前几轮使用的放大因子差距过大. 在联邦学习前期
FLDetector 未运行时可以使用算法 2 计算放大因子, 也可以选用固定的放大因子, FLDetector 运行时计算放大因
子的具体伪代码如算法 3 所示, 主要围绕上一轮的放大因子 γ pre 进行实验, 从较小的 γ 值开始, 如梯度放大后的恶
意性评分满足要求, 即采用当前 γ 值作为最佳放大因子, 不再继续实验计算, 尽可能减少计算代价, 当实验的所有
γ 值都无法满足要求时则继续使用上一轮的放大因子作为本轮的放大因子.
算法 3. FLDetector 第 t 轮计算最佳放大因子 (以恶意参与者 j 为例).
t−1
t−1
t−1
输入: 第 t −1 轮各参与者的本地模型信息 w t−1 = {w ,w ,...,w } , 第 t −2 轮各参与者上传的模型信息 ˜ w t−2 =
{i∈{N}} 1 2 N {i∈{N}}
t−2 t−2 t−2 ε ;
{w ,..., ˜w ,...,w } , 上一轮使用的放大因子 γ pre , 放大因子范围限制 τ , 合格区间扩大范围
j
N
1
γ res .
输出: 最佳放大因子
1. γ res = γ pre ; γ = γ pre −τ; step = τ/5
2. while γ ⩽ γ pre +τ
3. 使用 γ 放大 w t−1 得到 ˜ w t−1
j
j
t−1
t−1
t−1
4. ˜ w t−1 = {w ,..., ˜w ,...,w }
{i∈{N}} 1 j N
5. 计算各参与者的恶意性评分 S {i∈{N}} = {s 1 , s 2 ,..., s N }, s = mal_score( ˜w t−1 , ˜w t−2 )
{i∈{N}} {i∈{N}}
[min(S {i∈{N},i,j} )−ε,max(S {i∈{N},i, j} )+ε]
6. 根据其他参与者的恶意性评分计算合格的评分区间