虽然联邦学习避免直接共享原始数据,但模型更新本身仍可能泄露有关客户端底层数据集的敏感信息。观察这些更新的攻击者可能推断出数据的属性,甚至重构部分数据。为了针对此类威胁提供数学上可靠的隐私保障,我们引入差分隐私(DP)。
差分隐私提供一套严格的隐私保护标准。其主要思想是,它保证分析结果(例如在联邦学习中计算聚合模型更新)在统计上与数据集中是否包含任何特定个体的数据相似。这能防止攻击者通过观察输出,从而有把握地推断出任何单个参与者数据的存在或具体细节。
差分隐私的定义
形式上,如果一个随机化算法 M \mathcal{M} M 满足 ( ϵ , δ ) (\epsilon, \delta) ( ϵ , δ ) -差分隐私,那么对于任何两个相邻数据集 D 1 D_1 D 1 和 D 2 D_2 D 2 (它们仅相差一个个体的数据),以及对于任何可能的输出集 S S S ,以下不等式成立:
P [ M ( D 1 ) ∈ S ] ≤ e ϵ P [ M ( D 2 ) ∈ S ] + δ P[\mathcal{M}(D_1) \in S] \leq e^{\epsilon} P[\mathcal{M}(D_2) \in S] + \delta P [ M ( D 1 ) ∈ S ] ≤ e ϵ P [ M ( D 2 ) ∈ S ] + δ
我们来分析一下各组成部分:
M \mathcal{M} M : 随机化算法。在联邦学习中,这可以指客户端计算更新以及服务器聚合这些更新的整个过程。通常通过添加噪声来引入随机性。
相邻数据集 D 1 , D 2 D_1, D_2 D 1 , D 2 : 两个数据集,一个数据集可以通过添加或删除单个个体的数据(或单个数据点,取决于保护的粒度)而从另一个数据集形成。
ϵ \epsilon ϵ (Epsilon): 隐私损失参数,常被称为“隐私预算”。这是一个非负值,用于限制当单个个体的数据被修改时,任何给定输出的概率可能改变的程度。较小的 ϵ \epsilon ϵ 表示更强的隐私保护,意味着输出分布变化不那么剧烈,从而使得区分 D 1 D_1 D 1 和 D 2 D_2 D 2 变得更困难。如果 ϵ = 0 \epsilon = 0 ϵ = 0 ,则输出分布必须相同,提供完美的隐私,但可能没有实用性。
δ \delta δ (Delta): 表示严格的 ϵ \epsilon ϵ -隐私保障可能被打破的概率。它通常应该是一个非常小的值,通常小于数据集大小的倒数(例如,1 / N 1/N 1/ N ,其中 N N N 是参与者的数量)。当 δ = 0 \delta = 0 δ = 0 时,算法满足纯 ϵ \epsilon ϵ -差分隐私 。当 δ > 0 \delta > 0 δ > 0 时,通常称之为近似 ( ϵ , δ ) (\epsilon, \delta) ( ϵ , δ ) -差分隐私 。
其主要思想是,如果 ϵ \epsilon ϵ 和 δ \delta δ 都很小,观察者在看到输出 M ( D ) \mathcal{M}(D) M ( D ) 后,无法有把握地判断计算中是否使用了任何特定个体的数据。
通过添加噪声实现差分隐私
使算法满足差分隐私的最常见方法是向其输出注入经过精心校准的随机噪声。所需噪声量取决于当单个个体的数据不同时,输出可能改变的程度。这种最大可能改变被称为函数的敏感度 。
考虑一个将数据集映射到实值向量的函数 f f f (例如计算平均梯度)。
L 1 L_1 L 1 敏感度 (Δ 1 f \Delta_1 f Δ 1 f ): 当单个个体的数据改变时,输出的 L 1 L_1 L 1 范数可能发生的最大改变 :
Δ 1 f = max D 1 , D 2 ∥ f ( D 1 ) − f ( D 2 ) ∥ 1 \Delta_1 f = \max_{D_1, D_2} \| f(D_1) - f(D_2) \|_1 Δ 1 f = D 1 , D 2 max ∥ f ( D 1 ) − f ( D 2 ) ∥ 1
L 2 L_2 L 2 敏感度 (Δ 2 f \Delta_2 f Δ 2 f ): 输出的 L 2 L_2 L 2 范数可能发生的最大改变 :
Δ 2 f = max D 1 , D 2 ∥ f ( D 1 ) − f ( D 2 ) ∥ 2 \Delta_2 f = \max_{D_1, D_2} \| f(D_1) - f(D_2) \|_2 Δ 2 f = D 1 , D 2 max ∥ f ( D 1 ) − f ( D 2 ) ∥ 2
为确保敏感度有界,联邦学习中一个常见的先决条件是梯度裁剪 。在添加噪声之前,如果每个客户端的更新向量 u i u_i u i 的范数超过预定义阈值 C C C ,则将其按比例缩小:u i ← u i / max ( 1 , ∥ u i ∥ 2 / C ) u_i \leftarrow u_i / \max(1, \|u_i\|_2 / C) u i ← u i / max ( 1 , ∥ u i ∥ 2 / C ) 。这确保了任何单个客户端更新对总和的最大影响受到限制(例如,如果我们考虑添加/删除一个客户端的整个裁剪更新,总和的 L 2 L_2 L 2 敏感度最多为 C C C )。
两种主要的噪声添加机制被广泛采用:
拉普拉斯机制: 添加从拉普拉斯分布 Lap ( b ) \text{Lap}(b) Lap ( b ) 中抽取的噪声,其中尺度参数 b b b 根据 L 1 L_1 L 1 敏感度和所需的 ϵ \epsilon ϵ 设置。为使函数 f f f 达到 ϵ \epsilon ϵ -DP,将尺度为 b = Δ 1 f / ϵ b = \Delta_1 f / \epsilon b = Δ 1 f / ϵ 的噪声添加到输出 f ( D ) f(D) f ( D ) 的每个分量中。
高斯机制: 添加从高斯分布 N ( 0 , σ 2 I ) \mathcal{N}(0, \sigma^2 I) N ( 0 , σ 2 I ) 中抽取的噪声,其中标准差 σ \sigma σ 取决于 L 2 L_2 L 2 敏感度、ϵ \epsilon ϵ 和 δ \delta δ 。为使函数 f f f 达到 ( ϵ , δ ) (\epsilon, \delta) ( ϵ , δ ) -DP,将 σ ≥ Δ 2 f 2 ln ( 1.25 / δ ) ϵ \sigma \ge \frac{\Delta_2 f \sqrt{2 \ln(1.25/\delta)}}{\epsilon} σ ≥ ϵ Δ 2 f 2 l n ( 1.25/ δ ) 的噪声添加到输出 f ( D ) f(D) f ( D ) 中。这常用于模型梯度等高维输出。
联邦学习中的应用模式
差分隐私在联邦学习中可以主要以两种方式应用,不同之处在于噪声添加的位置 :
中央差分隐私 (CDP):
客户端根据其本地数据计算其更新(例如梯度或模型权重)。
这些精确的敏感更新被发送到中央服务器(传输过程中可能受到TLS等标准加密的保护)。
服务器聚合这些更新(例如通过平均)。
在使用聚合结果或共享它(例如,更新全局模型)之前 ,服务器向聚合结果添加校准噪声(拉普拉斯或高斯噪声)。噪声量取决于聚合函数对于单个客户端 完整贡献的敏感度。
信任假设: 要求信任中央服务器在聚合和添加噪声之前不会滥用其接收到的未加噪的单个更新。
噪声水平: 相对于本地差分隐私,在相同的隐私水平下通常需要更少的噪声,因为噪声只对总和添加一次,这可能带来更高的模型效用。通常与安全聚合(SMC)结合使用,以保护更新在到达服务器进行聚合之前 的安全。
本地差分隐私 (LDP):
每个客户端根据其本地数据计算其更新。
在将更新发送到服务器之前 ,每个客户端单独向其自身更新添加校准噪声,以使其相对于其自身的本地数据 满足差分隐私。此处的敏感度与单个客户端数据集中发生的改变有关。
带噪声的更新被发送到服务器。
服务器聚合这些已经带有噪声的更新。服务器无需再为隐私添加额外噪声。
信任假设: 不要求信任服务器;隐私在数据离开设备之前在客户端级别强制执行。对恶意或受损服务器提供更强的保护。
噪声水平: 每个客户端需要显著更多的噪声。许多带噪声更新的聚合可能导致整体结果非常嘈杂,通常会显著影响模型收敛和最终准确性。“噪声抵消”效应不如噪声方差的累积那么明显。
中央差分隐私和本地差分隐私之间的选择涉及一个根本性的权衡,在隐私保障强度(尤其是在信任服务器方面)与模型性能影响之间。
联邦学习中中央差分隐私与本地差分隐私工作流程的比较。在CDP中,噪声在聚合后由中央添加。在LDP中,噪声在客户端发送更新之前由每个客户端本地添加。
了解这些差分隐私机制和应用模式对于构建联邦学习系统具有根本作用,这些系统在协作模型训练的同时,提供可量化的隐私保护。接下来的章节将研究这些原理的应用,特别是向梯度更新添加噪声以及在多个训练轮次中管理隐私预算。