Files
openmlsys-zh/chapter_federated_learning/privacy_encryption_algorithm.md
2022-03-11 16:25:37 +08:00

3.3 KiB
Raw Blame History

隐私加密算法

联邦学习过程中用户数据仅用于本地设备训练不需要上传至中央FL-Server。这样可以避免用户个人数据的直接泄露。然而联邦学习框架中模型的权重以明文形式上云仍然存在间接泄露用户隐私的风险。敌手获取到用户上传的明文权重后可以通过重构、模型逆向等攻击恢复用户的个人训练数据导致用户隐私泄露。

MindSpore Federated Learning框架提供了基于本地差分隐私LDP和基于多方安全计算MPC的安全聚合算法在本地模型的权重上云前对其进行加噪或加扰。在保证模型可用性的前提下解决联邦学习中的隐私泄露问题。

基于LDP的安全聚合

差分隐私differential privacy是一种保护用户数据隐私的机制。差分隐私定义为


Pr[\mathcal{K}(D)\in S] \le e^{\epsilon} Pr[\mathcal{K}(D) \in S]+\delta

对于两个差别只有一条记录的数据集$D, D$,通过随机算法$\mathcal{K}$,输出结果为集合$S$子集的概率满足上面公式。$\epsilon$为差分隐私预算,$\delta$扰动,$\epsilon$和$\delta$越小,说明$\mathcal{K}$在$D$和$D$上输出的数据分布越接近。

在联邦学习中假设FL-Client本地训练之后的模型权重矩阵是$W$,由于模型在训练过程中会“记住”训练集的特征,所以敌手可以借助$W$还原出用户的训练数据集。

MindSpore Federated Learning提供基于本地差分隐私的安全聚合算法防止本地模型的权重上云时泄露隐私数据。

FL-Client会生成一个与本地模型权重$W$相同维度的差分噪声矩阵$G$,然后将二者相加,得到一个满足差分隐私定义的权重W_p:


W_p=W+G

FL-Client将加噪后的模型权重$W_p$上传至云侧FL-Server进行联邦聚合。噪声矩阵$G$相当于给原模型加上了一层掩码,在降低模型泄露敏感数据风险的同时,也会影响模型训练的收敛性。如何在模型隐私性和可用性之间取得更好的平衡,仍然是一个值得研究的问题。实验表明,当参与方的数量$n$足够大时一般指1000以上大部分噪声能够相互抵消本地差分机制对聚合模型的精度和收敛性没有明显影响。

基于MPC的安全聚合

尽管差分隐私技术可以适当保护用户数据隐私但是当参与FL-Client数量比较少或者高斯噪声幅值较大时模型精度会受较大影响。为了同时满足模型保护和模型收敛这两个要求MindSpore Federated Learning提供了基于MPC的安全聚合方案。

在这种训练模式下假设参与的FL-Client集合为$U$对于任意FL-Client $u$和$v$ 它们会两两协商出一对随机扰动$p_{uv}$、$p_{vu}$,满足


\label{puv}
    p_{uv}=
    \begin{cases}
    -p_{vu}, &u{\neq}v\\
    0, &u=v
    \end{cases}

于是每个FL-Client u 在上传模型权重至FL-Server前会在原模型权重$x_u$加上它与其它用户协商的扰动:


x_{encrypt}=x_u+\sum\limits_{v{\in}U}p_{uv}

从而FL-Server聚合结果$\overline{x}$为:

上面的过程只是介绍了聚合算法的主要思想基于MPC的聚合方案是精度无损的代价是通讯轮次的增加。