世界第一本“联邦学习”专著——《联邦学习》。作者阅读数书籍《联邦学习实战》。
1.联邦学习概述
-
在构件全局模型时,其效果与数据被整合在一起进行集中式训练的效果几乎一致,这便是联邦学习提出的动机和核心思想。
核心理念:数据不动模型动,数据可用不可见。 -
传统训练范式又称为集中式训练/中心化训练。
-
了解联邦学习性能损失概念,
- 狭义联邦学习性能损失 ∣ V S U M − V F E D ∣ < δ | \mathcal{V}_{SUM} - \mathcal{V}_{FED} | < \delta ∣VSUM−VFED∣<δ
- 广义联邦学习性能损失 V S U M − V F E D < δ \mathcal{V}_{SUM} - \mathcal{V}_{FED} < \delta VSUM−VFED<δ
-
联邦学习的分类(按照特征和样本空间的不同):
- 横向联邦学习:数据特征在参与方之间是对齐的,数据样本不同。样本划分的联邦学习
- 纵向联邦学习:数据样本在参与方式对齐的,但数据特征不同。特征划分的联邦学习
- 联邦迁移学习:适用参与方的数据样本和数据特征都很少重叠的情况。适合处理异构数据的联邦问题
-
如何有效协调数据参与方协同构建模型?
- 集中式拓扑
- 对等网络拓扑
2.联邦学习的安全机制
了解隐私保护技术。
同态加密HE
最早1978年提出。
允许对密文进行计算并生成加密结果的加密技术。
目前联邦学习系统里最常用的隐私保护机制。
能够在不对密文进行解密的情况下计算密文。
-
同态加密方案 H \mathcal{H} H。由一个四元组组成, H = { k e y G e n , E n c , D e c , E v a l } \mathcal{H} = \{ keyGen, Enc, Dec, Eval \} H={ keyGen,Enc,Dec,Eval}
-
同态加密分类:
- 部分同态加密PHE
- 些许同态加密SHE
- 全同态加密FHE
差分隐私DP
-
由Dwork在2006年首次提出。
-
差分隐私采用了一种随机机制,使得当输入中的单个样本改变之后,输出的分布不会有太大的改变。
-
提供了一种信息理论安全性保障,即函数的输出结果对数据集里的任何特定记录都不敏感。差分隐私能够用于抵抗成员推理攻击。
-
按照数据收集方式的不同,分为:
- 中心化差分隐私
- 本地化差分隐私
-
差分隐私的实现机制,主流方法是添加扰动噪声数据。
-
何时添加噪声数据
- 输入扰动
- 目标扰动
- 算法扰动
- 输出扰动
安全多方MPC
- 多个参与方协同地从每一方的隐私输入中计算某个函数的结果,而不用将输入数据展示给其他方。
- 三种常用的隐私计算框架,
- 秘密共享
- 不经意传输
- 混淆电路
基于python的安全计算库
pycrypto
提供了常用的加、解密算法实现,更加丰富的pycryptodome
- 最常用的隐私保护机制是同态加密,开源的
python-paillier
- 差分隐私主要实现机制是在输入输出上加入随机化的噪声,开源程序包
differential-privacy
提供了常用差分隐私的实现。还有diffprivlib
MPyC
提供了基于python的安全多方计算的实现
3.实现横向联邦图像分类
Pytorch基础
- FaceBook开源的基于Python的机器学习库
- 创建某种初始分布的,例如标准正态分布
randn
、服从均匀分布的rand
、服务高斯分布的normal
等。
例如高斯分布:
# torch.normal(2, 3) # 没有指定均值和标准差
torch.normal