在训练过程中,本地模型可以通过遍历部分数据样本执行更新,以小批量随机方式将数据集的标签和属性信息映射到模型中。为了保证通信参数的隐私性,本节介绍一种差分隐私联邦随机梯度下降算法 [16] (即DP-FedSGD算法)。该算法可在避免训练过程过度震荡的基础上,利用差分隐私算法 [17] 确保用户的隐私安全。
DP-FedSGD算法的框架如图3-3所示,参数及含义见表3-3。
图3-3 DP-FedSGD算法的框架
表3-3 DP-FedSGD算法的参数及含义
裁剪方式分2种,即水平裁剪和分层裁剪。
(1)水平裁剪。记参数更新量矢量为 Δ ,将其2-范数的上界设为 S ∈ R ,即:
(2)分层裁剪。面向神经网络模型,假设网络总共有 c 层,每一层的参数更新量矢量分别为 Δ (1),…, Δ ( c ),对应的2-范数上界分别为 S 1 ,…, S c ,通过水平裁剪的方法,分别对每一层的矢量进行裁剪:
总体的参数更新量裁剪上界定义为 。
关于加权聚合方式 (其中 Δ k 是参与方 k 的参数更新量)的有界灵敏度(Bounded-sensitivity)的估计量,分为以下2种。
(1) ,其中 ,是每个参与方的权重; 。
(2) 其中 D min 是预先设置的关于权重和的超参数。
DP-FedSGD算法的流程如算法流程3-3所示。
输入 :全局模型参数初始值 ω 0 ,各参与方的样本个数 m k ,每个参与方的样本个数上界 ,每轮通信中参与方的选择概率 q ,批样本大小 B ,局部模型学习率 η ,噪声规模 z ,时刻会计 。
输出 :最后一次迭代的全局模型参数 ω t +1 ,根据 计算得到的隐私成本值。
1.中央服务器初始化模型参数 ω 0 和时刻会计 ,并计算每个参与方的权重 , k =1,2,…, n ,记 。
2.对 t =0,1,2,…,迭代以下步骤直到参数 ω t +1 收敛。
(1)中央服务器将模型的初始参数 ω t 传输给各参与方,并根据概率 q 分别决定每个参与方是否参与本次迭代,记录参与迭代的参与方集合为 t 。
(2)对∀ k ∈ t ,通过以下步骤进行局部模型的相关参数更新:
①根据批样本大小 B 从本地数据集中选取一个批次 b 。
②计算局部模型的参数更新量并用选定的裁剪方式进行裁剪:
其中, l ( ω t ; b )是局部模型在参数 ω t 下,批次 b 的损失值。
③将局部模型参数更新量 传输给中央服务器。
(3)中央服务器通过以下步骤对局部模型参数更新量进行聚合:
①根据选定的有界灵敏度估计量,计算聚合结果:
②令 S ←裁剪方式ClipFn中的裁剪上界,根据选定的有界灵敏度估计量和噪声规模 z ,设置高斯噪声的方差:
③聚合全局模型的参数为
ω t +1 ← ω t + Δ t +1 + N (0, Iσ 2 )
其中, N (0, I σ 2 )是均值为0、方差为 σ 2 的高斯分布; I 是单位方阵,行数和列数都是参数的个数。
(4)根据 z 和 计算隐私损失值。
3.输出 计算得到的隐私成本值。