《联邦学习》阅读笔记

高质量、大数据的训练数据通常是很难获得的,我们不得不面对难以桥接的数据孤岛。由于数据是由不同组织的不同部门产生并拥有的,传统的方法是收集数据并传输至一个中心点(例如一个数据中心),这个中心点拥有高性能的计算集群并且能够训练和建立机器学习模型,然而由于数据孤岛的出现,这种方法近来已经不再有效或者适用了

随着人工智能在各行各业的应用落地,人们对于用户隐私和数据的安全度也在不断提高。用户开始更加关注自己的隐私信息是否未经自己允许就被利用,甚至滥用。人们对于数据失去掌控的担忧,以及对于增益分配效果的不透明,加剧了所谓数据碎片化和孤岛分布的严重性

随着物联网和边缘计算的兴起,大数据往往不会拘泥于单一的整体,而是分布在许多方面。例如对于自动驾驶汽车,每辆汽车必须能够在本地使用机器学习模型处理大量信息,同时需要在全球范围内与其他汽车和计算中心协同工作

联邦学习概述

各种原因造成的数据孤岛正阻碍着训练人工智能模型所必须的大数据的使用。一种可行的方法是由每一个拥有数据源的组织训练一个模型,之后让各个组织在各个模型上彼此交流沟通,最终通过模型聚合得到一个全局模型。为了确保用户隐私和数据安全,各组织间交换模型信息的过程将会被精心设计,使得没有组织能够猜测到其他任何组织的隐私数据内容。同时,当构建全局模型时,各数据源仿佛已被整合在一起,这边是联邦学习的核心思想

联邦学习旨在建立一个基于分布数据集的联邦学习模型。联邦学习包括两个过程,分别是模型训练和模型推理。在模型训练过程中,模型相关的信息能够在各方之间交换(或者以加密形式进行交换),但数据不能。这一交换不能暴露各个站点上数据的任何受保护的隐私部分。已训练好的联邦学习模型可以置于联邦学习系统的各参与方,可以在多方之间共享。在推理时,模型可以应用于新的数据实例

联邦学习是一种具有以下特征的用来建立机器学习模型的算法框架。其中机器学习模型是指将某一方的数据实例映射到预测结果输出的函数:

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

理论上来说,如果使用安全的联邦学习在分布式数据源上构建机器学习模型,这个模型在未来数据上的性能近似于把所有数据集中到一个地方训练所得到的的模型的性能。

联邦学习系统可能涉及也可能不涉及中央协调方,也能被设计为对等(P2P)网络的方式(即不需要协调方,这种体系结构的优点是提高了安全性,但需要更多的计算操作来对消息内容进行加密和解密)

联邦学习带来了许多益处,由于它被设计为不需要直接数据交换或者收集的形式,所以保护了用户的隐私和数据安全。联邦学习还允许若干参与方系统训练一个机器学习模型,从而使各方都能得到一个比自己训练的更好的模型。

联邦学习有巨大的商业应用潜力,但同时也面临着诸多挑战。参与方(比如智能手机)和中央聚合服务器之间的通信链接可能是慢速且不稳定的,因为同一时间可能有非常多的参与方在通信。还有,在联邦学习系统中,来自不同参与方的数据可能会导致出现非独立同分布的情况。并且不同的参与方可能有数量不均的训练数据样本,这可能导致联邦模型产生偏差,甚至会使得联邦模型训练失败。联邦学习模型也容易遭到恶意攻击,即只要有一个或者更多的参与者发送破坏性的模型更新信息,就会使得联邦模型的可用性降低,甚至损失整个联邦学习系统或者模型性能

联邦学习的分类

设矩阵 D i D_i Di表示第 i i i个参与方的数据;设矩阵 D i D_i Di的每一行代表一个数据样本,每一列代表一个具体的数据特征;一些数据集可能包含标签信息,将特征空间设为 X X X,数据标签空间设为 Y Y Y,并用 I I I表示数据样本ID空间。特征空间 X X X,数据标签空间 Y Y Y和样本id空间 I I I组成了一个训练集 ( I , X , Y ) (I,X,Y) (I,X,Y)。根据训练数据在不同参与方之间的数据特征空间和样本ID空间的分布情况,将联邦学习划分为横向联邦学习、纵向联邦学习和联邦迁移学习

  • 横向联邦学习。适用于联邦学习的参与方的数据有重叠的数据特征,即数据特征在参与方之间是对其的,但是参与方拥有的数据样本也是不同的
  • 纵向联邦学习。适用于联邦学习参与方的训练数据有重叠的数据样本,即参与方之间的数据样本是对齐的,但是在数据特征上有所不同
  • 联邦迁移学习适用于参与方的数据样本和数据特征重叠都很少的情况
威胁与安全模型

我们关注机器学习中的三种主要攻击类型:

  • 完整性,对完整性的攻击可能导致机器学习系统出现检测错误,例如将入侵点检测为正常(假阴性)
  • 可用性,对可用性的攻击可能会导致系统出现分类错误(假阴性和假阳性),即系统会变成不可用的
  • 机密性,对机密性的攻击可能导致一些机器学习系统中的敏感信息(如训练数据或者训练模型)出现泄漏

对机器学习系统的攻击可能会在任何阶段发生,包括数据发布、模型训练和模型推理。在模型阶段发生的攻击叫做重构攻击。在模型推理阶段,一个敌对的结果方可能会使用反向工程技术来获取模型的额外信息,以此实施模型反演攻击成员推理攻击特征推理攻击则发生在数据发布阶段

  • 重构攻击。敌手的目标是在模型的训练期间抽取训练数据,或抽取训练数据的特征向量。为了抵御重构攻击,应当避免使用存储显示特征值的机器学习模型,例如支持向量机(SVM)和k近邻(kNN)模型。在模型训练过程中,安全多方计算和同态加密可以被用来通过保护计算中间结果来抵御重构攻击。在模型推断过程中,计算方只应当被授予对模型的黑盒访问权限
  • 模型反演攻击。敌手被假设为对模型拥有白盒访问权限或黑盒访问权限。对于白盒访问,敌手不需要存储特征向量便能获取模型的明文内容。对于黑盒访问,敌手只能查询模型的数据和收集返回结果。敌手的目的是从模型中抽取训练数据或训练数据的特征向量。为了抵御模型反演攻击,应当向敌手暴露尽可能少的关于模型的信息。对模型的访问应当被限制为黑盒访问,模型输出同样应当受限
  • 成员推理攻击。敌手对模型至少有黑盒访问权限,同时拥有一个特定的样本作为其先验知识。敌手的目标是判断模型的训练集中是否包含特定的样本。敌手通过机器学习模型的输出试图推断此样本是否属于模型的训练集
  • 特征推理攻击。敌手出于恶意目的,将数据去匿名化或者锁定记录的拥有者。在数据被发布之前,通过删除用户的个人可识别信息(也称为敏感特征)来实现匿名化,使用户保护隐私的一种常用方法。这种方法已被证明并非十分有效
隐私保护技术

隐私保护技术,包括三种方法,分别是安全多方计算、同态加密和差分隐私

  • 安全多方计算,最初是针对一个安全两方计算问题,目的是协同地从每一方的隐私输入中计算函数的结果,而不用将这些输入展示给其他方
  • 同态加密,逐渐被认为是在PPML中实现安全多方计算的一种可行方法。同态加密方法分为三类:部分同态加密(PHE),些许同态加密(SHE)和全同态加密(FHE)
  • 差分隐私,其中心思想是,当敌手视图从数据库中查询个体信息时将其混淆,使得敌手无法从查询结果中辨别个体级别的敏感性。主要有两种方法通过通过给数据加上噪声实现差分隐私,一种是根据函数的敏感性增加噪声,一种是根据离散值的指数分布选择噪声
分布式机器学习

分布式机器学习也称为分布式学习,是指利用多个计算节点(也称为工作者worker)进行机器学习或者深度学习的算法和系统,旨在提高性能,保护隐私并可扩展至更大规模的训练数据和更大的模型。同步或者异步的分布式梯度下降(SGD)算法都适用于分布式机器学习

通常来说,DML可以分为两类:面向扩展性的DML和面向隐私保护的DML。面向扩展的DML是指用来解决不断增长的扩展性和计算需求问题的机器学习系统。当内存限制和算法复杂度是主要障碍时,面向扩展性的DML方法变为大规模ML提供了可行的解决方案。除了克服训练数据的集中存储需求,DML系统还能够使用更弹性化和更廉价的计算资源,例如增加计算单元的数量。与面向扩展性的DML不同,面向隐私保护的DML的主要目的是保护用户隐私和数据安全,在面向隐私保护的DML系统中,有多个参与方且每一方都拥有一些训练数据。也就是说,面向隐私保护的DML适用于具有纵向划分数据集的场景,不同参与方各自持有的训练数据具有相同的训练样本ID和不同的数据特征

面向扩展性的DML

在大数据时代,ML面临的主要问题已经从训练样本过小转移到了如何处理大规模的高纬度数据集上,随着大趋势的变化,ML社区正面临着计算性能和耗时与数据规模不匹配的挑战

  1. 内存短缺
    传统ML方法只在一块独立内存中对训练样本进行所有的操作。因此如果训练样本的规模超过了单块内存的容量,可能出现问题:训练模型可能不能收敛或者性能低下;在最糟糕的情况下,ML模型将因为内存短缺而不能被成功训练
  2. 不合理的训练时间
    ML算法中一些优化过程可能不能匹配训练样本的规模,例如高斯混合模型(GMM)和多项式回归。如果训练过程耗时过长,就会导致没有充足的时间试验较多的超参数,最终很难获得性能优越的模型

面向扩展性的DML方法

  1. 数据并行
    DML的第一种方法便是先将训练数据划分为多个子集(也称为分片或者切片)然后将各子集置于多个计算实体,之后并行地训练同一个模型。这种方法被称为数据并行方法,也被称为以数据为中心的方法
    目前主要有两种基于数据并行的分布式训练方法,即同步训练和异步训练。在同步训练中,所有的计算节点在训练数据的不同分片上同步地训练同一个模型的副本,在各计算节点每执行完一个模型更新步骤后,每个计算节点产生的梯度(或者模型参数)就会被发送给服务器,服务器在收到所有计算节点的结果后再进行聚合操作。而在异步训练中,所有计算节点独立地使用其本地的训练数据集在训练同一个模型的副本,并将本地获得的模型梯度及时地推动给服务器,以便服务器更新全局模型
    数据并行能用于解决训练数据过大以至于不能存于单一计算节点中的问题,或者用于满足使用并行计算节点实现更快速的计算的要求

  2. 模型并行
    随着DNN模型(深度神经网络)变得越来越大,可能会面临一个模型不能加载到单一计算节点内存中的问题,对于这种情况,我们需要分割模型,并把各部分置于不同的计算节点中。拥有大量参数的模型由于对内存有很高的要求,所以不能放于单一计算设备中,但可以通过这种模型并行策略,内存限制也就不复存在了。例如DNN模型的一个层可以被放入单一设备的内存中,且前向和后向传播意味着一台计算设备的输出以串行方式传输至另一台计算设备

  3. 图并行
    图并行方法,也称为以图为中心的方法,是一种用于划分和分配训练数据和执行ML算法的新技术,其执行速度比基于数据并行的方法要快几个数量级

  4. 任务并行
    任务并行也叫作以任务为中心的方法,指的是计算机程序在同一台或者多台机器上的多个处理器上执行。它着力并行执行不同的操作以最大化利用处理器或内存等计算资源。任务并行的一个例子是一个应用程序创建多个线程进行并行处理,每个线程负责不同的操作

  5. 混合并行和交叉并行
    在DML系统的实践中,我们经常需要结合不同类型的并行方法,从而形成混合并行的方案。混合并行的覆盖范围可以进一步扩展,形成更加灵活的较差并行,例如按层选择并行方式

面向隐私保护的DML

数据共享和分布式计算是当今大数据时代的趋势,因为它既能提升计算效率又能改善模型性能,但随着公众对隐私和数据安全越来越关注,DML需要考虑隐私保护问题。对于隐私保护的ML系统,它通常能保护以下信息:训练数据输入,预测标签输出,模型信息(模型参数、结构和损失函数)和身份识别信息(记录的数据来源站点,出处或者拥有者)

在面向隐私保护的DML中,常用的用于保护数据隐私的方法大概分为两个类别:

  • 模糊处理 随机化、添加噪声或者修改数据使其拥有某一级别的隐私,比如差分隐私
  • 密码学方法 通过不将输入值传给其他参与方的方式或者不以明文方式传输,使分布式计算过程安全化,如安全多方计算(MPC),包括不经意传输,秘密共享,混淆电路和同态加密
面向隐私保护的梯度下降

拥有更高效率,更低隐私保护级别的方法通常需要牺牲数据隐私以换取更好的计算效率。例如,梯度值以明文形式被发送给协调方,并以梯度平均方法更新模型,从而在不降低全局学习经度的情况下用隐私换取效率。旨在得到最高的数据精度和安全性的方法逐渐开始选用同态加密和安全多方计算,但这将会导致更高的计算复杂度和开销

典型的面向隐私保护的梯度下降方法包括朴素联邦学习、代数方法、系数梯度更新方法、模糊处理处理方法和密码学方法(如同态加密和安全多方计算)。模糊处理方法基于随机化、泛化或者抑制机制(如梯度分层话、差分隐私、k-匿名方法)。在朴素联邦学习、代数方法和系数梯度更新方法中,每一方发送给协调方明文形式的梯度信息以更新模型,而这只能保护数据的原始形式,即低隐私保护等级和非常高的效率。稀疏梯度更新方法还能通过更新梯度中的一个实体子集,用精度来换取效率和隐私。基于随机化机制的方法,如差分隐私和高斯随机映射,通过给数据或者梯度加入噪声的方式,用精度换取隐私。基于泛化和一致性的方法也通过特征归纳或者删除某些实例的方式,用精度换取隐私。

  • 代数方法旨在利用传输数据的代数特性保护原始训练数据。他通过保证每个诚实方对敌对方的输入和输出存在内部有效的输入-输出对,即受保护的原始输入数据形式,提供了对隐私的保护
  • 稀疏梯度更新方法通过只更新梯度的子集的方式来保护隐私。这类方法用精度来换取效率,并且保护隐私程度较低。梯度是以明文方式传输的,所以这类方法是用明文梯度方式传输的,所以这类方法是用隐私换取效率
  • 模糊处理方法通过随机化、泛化和压缩来使得数据模糊,虽然可以改善隐私性,但是会降低准确度。在联邦学习中,本地差分隐私(LDP)也可以用于给每一方的梯度加上噪声
  • 密码学方法利用了同态加密和安全多方计算,在梯度下降过程中,保护每一方的梯度信息隐私。密码学方法用效率换取隐私。由于这样可能会导致在计算或交流上变得过于低效,非线性函数的近似方法逐渐被使用,即用精度换取效率
横向联邦学习

横向联邦学习也称为按样本划分的联邦学习,可以应用于联邦学习,可以应用于联邦学习的各个参与方的数据集有相同的特征空间和不同的样本空间的场景,类似于在表格视图中对数据进行水平划分的情况。横向划分广泛用于传统的以表格形式展示数据库记录内容的场景,例如表格中的记录按照行被横向划分为不同的组,且每行都包含完整的数据特征。比如两个地区的城市银行可能在各自的地区拥有非常不同的客户群体,所以他们的客户交际非常小,但是数据集拥有不同的样本ID。然而,他们的业务模型非常相似,因此他们的数据集的特征空间是相同的。这两家银行可以联合起来进行横向联邦学习来构建更好的风控模型。横向联邦学习的条件总结为
X i = X j , Y i = Y j , I i ≠

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值