"Federated Machine Learning : Concept and Applications"粗略笔记

1.联邦学习定义

假设N个数据拥有者{F1, ... ,FN}想要使用他们各自的数据{D1, ... ,DN}来训练一个更好的机器学习模型

  • 传统的方法是整合所有的数据为D=D1∪D2∪ ... ∪DN,并使用数据集D来训练出模型MSUM,记其准确性为VSUM
  • 而联邦学习则是各个数据拥有者使用各自的数据协作训练出模型MFED的过程,其准确性为VFED,在该过程中,任何数据拥有者Fi不暴露自己的数据Di给其他数据拥有者。
  • 此外,模型MFED的性能应该接近模型MSUM,即VFED接近VSUM。记δ为非负实数,则 | VFED-VSUM | < δ ,则记联邦学习算法有δ精度损失。

2.联邦学习可能中用到的技术

  • 安全多方计算(secure multi-party computation)
  • 差分隐私(differential privacy)
  • 同态加密(homomorphic encryption)
  • 区块链(blockchain)

3.联邦学习分类

  • 记矩阵Di为被数据拥有者i所拥有的数据,每一行代表一个样本(sample),每一列代表一个特征(feature),某些数据集(data sets)可能包含了标签数据(label data)。
  • 记特征空间(feature space)为X,标签空间(label space)为Y,样本ID空间(sample ID space)为I,则特征(feature)X、标签(label)Y以及样本Ids(sample Ids)I构成了完整的训练数据集(X,Y,I)。
  • 基于各方数据在特征和样本ID空间的分布规律,联邦学习被分为横向联邦学习(horizontally federated learning)、纵向联邦学习(vertically federated learning)和联邦迁移学习(federated transfer learning,FTL)
    • 横向联邦学习
      • 基于样本的联邦学习
      • 数据集享有相同的特征空间,但其样本有差别。即Xi=Xj , Yi=Yj , Ii ≠ Ij , ∀Di , Dj , i ≠ j (这个公式是论文上看见的,没太明白,感觉和上面的叙述有点不一致)
      • 训练结束后,整个模型和所有参数都暴露给所有参与者

 

 

    • 纵向联邦学习
        • 基于特征的联邦学习
        • 数据集享有共同的样本ID空间,但特征空间有差别。即Xi≠Xj , Yi≠Yj , I= Ij , ∀Di , Dj , i ≠ j
        • 训练结束后,每一方只拥有与自己数据相关的模型参数
    • 联邦迁移学习
      • 数据集在样本空间和特征空间都有差异,即Xi≠Xj , Yi≠Yj , I≠ Ij , ∀Di , Dj , i ≠ j

  

4.联邦学习系统结构

  • 横向联邦学习
    • 拥有相同数据结构的K个参与者,在云服务器或参数的协助下,进行模型训练
    • 无论服务器是否诚实但好奇(honest-but- curious),数据拥有者都是诚实的,即从数据拥有者到服务器的信息泄露是不被允许的
    • 重复执行以下步骤,直到损失函数收敛,完成训练
      • 数据拥有者在本地计算训练梯度,使用加密、差分隐私或者秘密共享等技术来修饰(mask,暂时没想好咋翻译)梯度的选择,然后将被修饰的结果发送到服务器
      • 服务器在不获取数据拥有者信息的条件下进行安全整合
      • 服务器发送整合结果给数据拥有者
      • 数据拥有者根据接收信息更新各自的模型
    •  

       

  • 纵向联邦学习
    • 假设各自拥有己方数据的公司A和B合作训练一个模型
    • 公司B拥有模型需要预测的标签数据
    • A和B之间不能之间交换数据,所以需要一个诚实且没有与A或B勾结的第三方协作者C
    • 整个联邦学习系统由以下两部分构成
      • 加密整个联盟:由于双方数据不相同,为确保A和B不暴露自己的数据给对方,使用基于加密的用户(来自于A和B的数据)ID联盟来筛选共同用户
      • 加密模型训练:筛选出共同用户后,我们使用这些共同用户的数据来训练模型。主要步骤如下
        • 协作者C创建密钥对,发送公钥给A和B
        • A和B加密并交换梯度和损失计算的中间结果
        • A和B分别计算加密的梯度并增加修饰(mask),同时B计算加密的损失;A和B将加密后的结果发送给C
        • C解密接收到的数据并将解密后的梯度和损失发送给A和B;A和B解释(unmask)梯度,并相应地更新模型参数
    •  

       

  • 联邦迁移学习 

 

 

posted @ 2022-01-13 11:34  wasua  阅读(73)  评论(0编辑  收藏  举报