联邦学习

什么是联邦学习

机器学习在人工智能领域的飞速发展无一不是建立在大量有效数据的的基础上完成的。通过使用这些大数据,深度学习系统能够在许多领域执行人类难以完成的任务

但在许多应用领域,想满足训练人工智能应用模型所需要的巨大的数据量是很困难的,现实生活中能得到的数据都是“小数据”,一方面是规模较小,另一方面是缺少部分关键的特征数值等,这都算是数据孤岛问题

同时,人们对用户隐私和数据保护安全也越来越重视,数据是属于用户的,企业既不能不作申请的使用它们,还要保护数据的私密性,所以想安全高效的实现数据合作,即解决数据孤岛问题,变得越来越重要

联邦学习应运而生,即让由每一个拥有数据源的组织训练一个模型,之后让各个组织在各自的模型上彼此交流沟通,最终通过模型聚合得到一个全局模型。为了确保用户用户隐私和数据安全,各组织间交换模型信息的过程将会被精心地设计,使得没有组织能够猜测到其他任何组织的隐私数据内容。同时,当构建全局模型时,各数据源仿佛已被整合在一起,这便是联邦机器学习的核心思想。

联邦学习是想建立一个基于分布数据集的联邦学习模型,包括模型训练和模型推理两个过程

在模型训练的过程中,模型相关的信息可以在各方之间交换(或者是以加密形式进行交换),但数据不能。这一交换不会暴露每个站点上数据的任何受保护的隐私部分。已训练好的联邦学习模型可以置于联邦学习系统的各参与方,也可以在多方之间共享。

当推理时,模型可以应用于新的数据实例。当接受到一个来自不同方的新的数据实例后,在这种情况下,各方将协作进行预测。最终,应该有一个公平的价值分配机制来分配协同模型所获得的收益。激励机制设计应该以这种方式进行下去,从而使得联邦学习过程能够持续。

具体来讲,联邦学习是一种具有以下特征的用来建立机器学习模型的算法框架:

  • 有两个或以上的联邦学习参与方协作构建一个共享的机器学习模型。 每一个参与方都拥有若干能够用来训练模型的训练数据。
  • 在联邦学习模型的训练过程中, 每一个参与方拥有的数据都不会离开该参与方,即数据不离开数据拥有者
  • 联邦学习模型相关的信息能够以加密方式在各方之间进行传输和交换,并且需要保证任何一个参与方都不能推测出其他方的原始数据。
  • 联邦学习模型的性能要能够充分逼近理想模型的性能。

联邦学习的分类

我们根据训练数据在不同参与方之间的数据特征空间和样本ID空间的分布情况,将联邦学习划分成横向联邦学习、纵向联邦学习、联邦迁移学习

横向联邦学习HFL

横向联邦学习也称为按样本划分的联邦学习,可以应用于联邦学习的各个参与方的数据集有相同的特征空间和不同的样本空间的场景

例如,两个不同地区的银行,在客户集上的交集很少,但是都有着几乎相同的业务,即数据集的样本空间不同,但是特征空间相同。那这两家银行可以联合起来进行横向联邦学习来构建更好的一些模型,比如风控模型

image-20230624210749700

客户-服务器架构

在客户-服务器的横向联邦学习架构中,具有同样数据结构的K个客户在服务器的帮助下,协作地训练一个机器学习模型,模型图如下:

image-20230624211249972

  1. 各个客户端利用自己的数据训练模型,在本地计算模型梯度,并使用同态加密、差分隐私或秘密共享的加密技术,对梯度信息进行加密,并将加密后的结果发送给聚合服务器
  2. 服务器进行安全聚合,将所有客户端送来的各个梯度进行聚合,例如使用基于同态加密的加权平均
  3. 服务器将聚合后的结果加密后发给各个参与方
  4. 各个参与方对收到的梯度进行解密,并使用解密后的梯度结果更新各自的模型参数

上述步骤将会持续迭代进行,直到损失函数收敛或者达到允许的迭代次数的上限或允许的训练时间,这种架构独立于特定的机器学习算法,并且所有参与方将会共享最终的模型参数

对等网络架构

即去中心化,不存在中央服务器

在这种架构中,同样是有K个具有相同数据结构的训练方,每一个训练方负责使用本地数据来训练同一个机器学习模型,然后通过使用安全链路在相互之间传输模型参数信息

为了保证任意两方之间的通信安全,需要使用一些加密手段

由于对等网络架构中不存在中央服务器,所以训练方们必须提前商定发送和接受的模型参数信息的顺序,例如循环传输、随机传输

image-20230624212240059

 

全局模型评估

在横向联邦学习中,模型训练和评估是在每个参与方中分布地执行的,并且任意方都不能获取其他方的数据集。所以,每个参与方都能轻易地使用自己的本地测试数据集来测试本地模型的性能,但得到全局模型的性能评价需要耗费更多资源。

对于客户-服务器架构的联邦学习系统,可以让K个客户端使用本地测试数据集对现有的全局模型进行测试,得到的测试结果发送给服务器端,服务器端再进行整合计算,得到全局模型的性能评价

而对于对等网络架构,我们可以考虑选择一个参与方担任临时的协调方,再按上述方法进行计算评估

纵向联邦学习VFL

我们把在数据集上具有相同的样本空间、不同的特征空间的参与方所组成的联邦学习归类为纵向联邦学习,也可以理解为按特征划分的联邦学习

例如在一个城市的两个不同公司,如银行与商场,二者具有相同的用户群体,但是所掌握的用户的数据的特征并不相同,数据集的样本空间相同,但是特征空间不同

纵向联邦学习,可以通过利用参与方收集的所有特征,协作地建立起一个共享的机器学习模型

image-20230624213726296

纵向联邦学习的架构

纵向联邦学习的架构分为两部分,一是加密实体对齐,二是加密模型训练

  • 加密实体对齐是指对齐具有相同ID,但分布于不同参与方的实体

    由于纵向联邦学习的数据是来自具有 相同的样本空间、不同的特征空间的参与方A和B,他们的用户群体不同,系统使用一种基于加密的用户ID对齐技术,使得在不暴露具体信息的基础上对齐双方用户。

  • 加密模型训练是指基于这些已经对齐的实体执行隐私保护的模型训练

    在确定共有实体后,各方可以使用这些共有实体的数据来协同地训练一个机器学习模型,训练过程包括下面四个步骤

    1. 协调者C创建密钥对,并将公共密钥发送给 A 方和B方
    2. A 方和 B方对中间结果进行加密和交换。中间结果用来帮助计算梯度和损失值。
    3. A 方和B 方计算加密梯度并分别加入附加掩码。B方还会计算加密损失。A 方和 B方将加密的结果发送给C方。
    4. C方对梯度和损失信息进行解密,并将结果发送回 A 方和B 方。A方和 B方解除梯度信息上的掩码,并根据这些梯度信息来更新模型参数。

image-20230624215027109

联邦迁移学习FTL

横向联邦学习要求参与方的样本有相同的特征空间纵向联邦学习要求各参与方有相同的样本空间和不同的特种空间,而在现实生活中,我们经常会面临各个参与方既没有足够的共同特征,也没足够的样本。这个时候,通过迁移学习技术,仍然可以建立一个拥有良好性能的联邦学习模型

联邦迁移学习系统一般包括两方,称为源域和目标域。一个多方的联邦迁移学习系统可以被认为是多个两方联邦迁移学习系统的结合。

联邦迁移学习的分类

基于实例的联邦迁移学习

对于横向联邦学习,参与方的数据通常来自不同的分布,这可能会导致在这些数据上训练的机器学习模型的性能较差。参与方可以有选择地挑选或者加权训练样本,以减小分布差异,从而可以将目标损失函数最小化。对于纵向联邦学习,参与方可能具有非常不同的业务目标。因此,对齐的样本及其某些特征可能对联邦迁移学习产生负面影响,这被称为负迁移。在这种情况下,参与方可以有选择地挑选用于训练的特征和样本,以避免产生负迁移。

基于特征的联邦迁移学习

参与方协同学习一个共同的表征空间。在该空间中,可以缓解从原始数据转换而来的表征之间的分布和语义差异,从而使知识可以在不同领域之间传递。对于横向联邦学习,可以通过最小化参与方样本之间的最大平均差异来学习共同的表征空间。对于纵向联邦学习,可以通过最小化对齐样本中属于不同参与方的表征之间的距离,来学习共同的表征空间。

基于模型的联邦迁移学习

参与方协同学习可以用于迁移学习的共享模型,或者参与方利用预训练模型作为联邦学习任务的全部或者部分初始模型。横向联邦学习本身就是一种基于模型的联邦迁移学习,因为在每个通信回合中,各参与方会协同训练一个全局模型,并且各参与方把该全局模型作为初始模型进行微调。对于纵向联邦学习,可以从对齐的样本中学习预测模型或者利用半监督学习技术,以推断缺失的特征和标签,然后,可以使用扩大的训练样本训练更准确的共享模型。

联邦迁移学习算法

pending…

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇