浅读《联邦学习》(杨强、刘洋等)笔记整理

联邦学习是一种分布式机器学习方法,旨在在保护数据隐私的同时构建全局模型。它允许数据在本地训练,仅交换模型信息,而非原始数据。安全多方计算、同态加密和差分隐私是隐私保护的关键技术,用于保护模型训练和推理阶段的数据安全。这些技术在医疗图像分析、自然语言处理等领域有广泛应用,同时也解决了数据孤岛和企业间数据共享的挑战。
摘要由CSDN通过智能技术生成

文章目录

第一章

数据孤岛问题

数据孤岛分为物理性和逻辑性两种。

  • 物理性:数据在不同组织相互独立存储,独立维护,彼此间相互孤立。
  • 逻辑性:不同组织站在各自角度,对相同数据可能赋予不同理解和含义,造成数据合作时的沟通成本。

联邦(机器)学习

联邦学习

旨在建立一个基于分布数据集的联邦学习模型

联邦:使拥有碎片化小数据集的各方 联合 构建一个机器学习模型(因为这些碎片化小数据集不方便一下子聚合到一起处理。)⚠️⚠️⚠️一开始各方都有各自的学习模型,根据自己的数据训练,然后各方的模型 聚合 (通过各方交换模型信息(B2B)、或将模型信息上传聚合服务器,服务器统一聚合(B2C))成一个全局模型,然后各方再训练全局模型。不断循环 此过程直到全局模型收敛。这个收敛的全局模型就是训练得到的最终机器学习模型。各方都共享这个收敛的最终全局模型。⚠️:各自的模型和聚合模型的结构是一模一样的,只是参数不同而已。

联邦学习算法设计中,一个重要的变化就是,在各站点间(各方),以安全方式传输 模型信息,而不是数据本身。

但是虽共享一个模型,各方 侧重点不同,即各方拥有数据不同,训练时完善的具体细节不同,可能在全局模型中,各方所负责的功能模块不同。

即 把羊带到各个草场去吃草,这样既保证草(数据)不出本地,又实现了模型用所有数据进行训练。 这样,联邦学习既完成了构建一个学习模型,处理数据的目的,又实现了数据安全和隐私保护。

联邦学习重要特征和要求
  1. 两个或以上参与方协作构建一个共享的机器学习模型。每个参与方都拥有可训练的数据集。
  2. 联邦学习模型训练时,各参与方原始数据都不会离开本地。
  3. 训练时,模型信息需以加密方式在各方间交换,保护模型信息。且要保证任一方不能 推测出 其他方的原始数据。
  4. 联邦学习模型性能充分逼近(近似于)集中训练模型的性能,略差但还是要努力近似等于(精度换隐私和安全性)。
  • ⚠️⚠️⚠️:联邦学习模型性能 略差 于集中训练。
  • ⚠️⚠️⚠️:在联邦学习模型训练时,各方传送的是模型信息(权重等),而不像集中训练时传送原始数据,因此减少了 通信开销。
联邦学习系统两种架构
  • 涉及协调方(聚合服务器、参数服务器)。服务器(初始模型)➡️参与方(更新参数)➡️服务器(聚合成新的模型)➡️参与方。直到模型训练完成。服务器和参与方之间可通过 加密对模型信息进行保护。
  • 不涉及协调方。各方(初始模型、训练)➡️相互交换(聚合成新模型、再训练)➡️相互交换。直到模型训练完成。不需要第三方,各参与方可以直接交换模型信息。更安全,但是需要更多计算操作对交换内容进行加密解密。

联邦学习发展动机

  • **(B2B:类似于不需要协调方架构,各参与方就是各企业,直接交换模型信息)**企业与企业之间。人工智能安全问题备受关注。联邦学习是主要研究AI安全中的隐私保护和数据安全问题。

  • **(B2C:类似于需要协调方架构。消费者相当于各参与者,企业相当于第三方,即聚合服务器)**企业与消费者之间。另外,联邦学习也为了最大化利用云系统下终端设备的计算能力。 在各设备和服务器之间传送的是中间计算结果,而不是原始数据。即终端设备本身可以处理许多计算任务。

联邦学习包括两个过程

模型训练阶段(训练模型),各方只能交换模型相关信息(例如参数),但不能交换数据。

模型推理阶段(测试模型),模型应用于新的数据实例。

联邦学习面临挑战

  • B2C架构中,若同一时间有过多参与方与服务器进行通信,可能使系统变得不稳定、速度慢。
  • 不同参与方待训练数据集可能不均等,使模型训练出现偏差,甚至可能训练失败。
  • 参与方难以被认证,使模型容易遭受恶意攻击。

联邦学习分类

  • 横向联邦学习(按样本划分的联邦学习)HFL
  • 纵向联邦学习(按特征划分的联邦学习)VFL
  • 联邦迁移学习 FTL

一个矩阵代表一个参与方所拥有的数据。每一行代表一个数据样本,每一列代表数据特征或标签。因此,类似于一个坐标轴, 纵向是数据样本为单位,横向是数据特征或标签。 ⚠️⚠️⚠️

根据不同参与方之间,数据的数据特征空间和样本ID空间分布情况划分。

  1. 横向联邦学习(即是参与方数据之间, 数据特征 部分交集比较多)。可视图中看到,以水平为划分,那就是以y=a为直线划分,那就是 以样本为划分 ,横向特征部分交集多。
  2. 纵向联邦学习(即是参与方数据之间, 数据样本 部分交集比较多)。可视图中看到,以垂直为划分,那就是以x=a为直线划分,那就是 以特征为划分 ,纵向样本部分交集多。
  3. 联邦迁移学习(即是参与方数据之间,样本和特征重叠都很少,既看不出来是横向,也看不出来是纵向)

联邦学习发展

提升树系统架构 SecureBoost :提升 纵向联邦学习 的安全性。其针对于分布式数据集与集中训练的梯度提升树有相同准确度。

梯度提升树:一种迭代的决策树算法,每次迭代都会使损失函数尽量小。

联邦学习已被应用于医学图像分析、自然语言处理、推荐系统领域。

开源平台

PyTorch 使用PySyft 实现联邦学习系统。

第二章

面向隐私保护的机器学习(PPML)

增加隐私保护技术的机器学习系统。 防止敏感信息泄漏(保证机密性)。

主要方法

  • 安全多方计算 MPC
  • 同态加密 HE
  • 差分隐私 DP

威胁模型

  1. 重构攻击(模型训练阶段):模型训练阶段,(集中式训练)会把各方原始数据收集起来,大型企业可能会把这些原始数据未经允许给其他人;(分布式)各方会把自己模型权重和梯度互相交换,但明文梯度可能被利用导致泄露某方的训练数据信息(根据梯度反推 原始数据信息)。

    解决:安全多方计算MPC和同态加密HE可通过保护计算 中间结果,抵御重构攻击。

  2. 模型反演攻击(模型推理阶段):模型推理阶段(应用于新数据),攻击方通过白盒或黑盒访问,实施方程求解攻击(“查询-回应“方法),获取训练模型的额外明文信息,可反演出相似的模型。

    解决:限制设置对模型访问仅为黑盒访问,模型输出也同样受限,尽可能少暴露模型信息。

    ​ 同态加密的贝叶斯网络。

  3. 成员推理攻击(模型推理阶段):模型推理阶段(应用于新数据),攻击方至少有黑盒访问权限,且有一个样本。攻击方将样本喂入模型,得到输出后,根据输出推理该样本是否属于模型的 训练集

  4. 特征推理攻击(数据发布阶段):数据发布阶段,一般为保护用户隐私会把用户匿名化,攻击方则根据其他资料(其他资料可能带有显性用户资料),由其他资料推出用户特征,并由此特征与匿名用户比对,实现 去匿名化,重新识别出用户。

隐私保护技术

  • 安全多方计算 MPC
  • 同态加密 HE
  • 差分隐私 DP

安全多方计算 MPC

将一个私有数值 x 分给各共享方,各方只能获取自己xi的内容, 协同计算出 各自的yi(即y1,···,yn),不知道其他各方xi、yi。

三种框架实现安全多方计算
  • 不经意传输(即秘密拆分,实现安全多方计算第一步,即实现各方共享x,获得自己的xi,且不知道其他任何信息)

n 取1的不经意传输:A方有一个输入表(x1,···,xn)作为输入,B方有 i 属于1,···,n作为输入。B选择一个i,学习到xi。但也只能学习到xi。而A方也不了解B选择了哪个i,不知道B学习了哪个xi。

⚠️**原理:A不知道其他方到底学习了哪个Xi(所以说是不经意传输**);B只能学到Xi,而不知道其他X的内容。因此,他们只能用自己的xi来获知yi,协同计算,不知道其他信息。

问题:::A一开始有所有的输入Xi,他计算哪个Xi?他不是就知道其他方有哪些Xi了么(只是不知道具体哪方有着哪个xi而已)

不经意传输定义如上,那么如何构造?

⚠️一种构造方法:Bellare-Micali 构造实现不经意传输:接收方B给A发送n个公钥(每个公钥对应加密一个Xi,发送方A用公钥分别对每个Xi加密),但B只有对应其中一个的私钥。**发送方A不知道B具体是有哪一个私钥。**A用所有公钥分别对X1,···Xn加密,把n个密文都发给B,B使用唯一私钥解密得到Xi,因此B也只能学习到Xi,不知道其他加密的Xn。

不经意传输实现了秘密拆分,秘密计算可使用 姚氏混淆电路、同态加密等。

  • 秘密共享

分为秘密拆分、秘密恢复。

将秘密值分割成随机多份,分发给 n方来隐藏秘密值(各方拥有的只是 秘密值一部分),如果有需要则将这些分割内容 重新构造 成原始的秘密值。

⚠️在秘密拆分时,将秘密值分发给n个参与方。而在恢复秘密时,多于特定t个参与者合作才可以重新构造计算出或是恢复原秘密,而少于t个参与者则不可以重新得到有关秘密。 (t<=n)!!!

这样的好处:1、安全性:攻击者必须同时获得一定数量的秘密碎片才能获取原秘密值。

​ 2、可靠性:当少量秘密碎片丢失或损毁时,利用剩余的秘密碎片仍可得到原秘密值。

秘密拆分时,怎么确保各参与方只知道自己的内容,而不知道其他内容呢?在算数秘密共享中,将一个秘密值分割时,随机采样n-1个值,然后用S分别对n-1个值处理,分别得出Sn。既然是随机采样,那么各方只能知道自己内容,无法推导计算出其他参与方的sn的值。

秘密共享的同态特性

秘密共享体系还具有同态的特性。如下图所示:有特征A和B,他们的值被随机分成碎片(X1,···,Xn)和(Y1,···,Yn),并分给n个参与方。**每个节点(参与方)运算结果的加和(乘和,是和!!),等同于原始A与B的加和(乘积)。**同样通过增加其他计算机制,也能满足 乘积 的效果,这就是秘密共享具备的“同态性”,各参与者可以在 不交换任何数据(只需算好各自部分,然后节点数据合起来即可) 的情况下直接对密码数据求和、乘积。

0e29efef3953676eeed37071ad08ab3b.png.jpeg

⚠️:欲实现 线性 安全乘法的同态,可使用乘法三元组。

秘密共享包括算数秘密共享、Shamir秘密共享、二进制秘密共享。(不同方法,其针对的数据类型不同、秘密拆分和恢复方法不同)

算数秘密共享:将一个数字按照一些数学代数运算进行分解、共享(个人理解)。

  • 阈值同态加密

一般同态加密(非对称),一个公钥一个私钥,一般同态密钥在隐私保护场景下的应用受到限制,且安全风险较大,扛攻击性低(多参与方使用一套公私钥时,只要有一方被攻击成功,私钥就会泄漏)。而阈值同态加密算法,支持多个私钥,多个公钥。

一般同态加密和阈值同态加密都是多参与方。只不过前者各方拥有同一套公私钥,后者各方各自生成公私钥各自保存,且可通过计算密钥 ek 相互转换。

不同公钥加密的密文,可通过计算密钥ek相互转换,以方便进行同态计算。

❗️❗️❗️阈值则代表:当对密文结果进行解密时,只有当参与解密的 私钥数量 达到一个阈值时,才可以解密成功,否则无法得到正确明文。

安全多方计算应用

安全多方计算主要分为离线阶段和在线阶段。离线阶段,可信第三方产生乘法三元组(提高计算效率),之后在线阶段使用已产生好的乘法三元组对机器学习模型进行训练。若离线阶段没有可信第三方产生乘法三元组,则可使用SPDZ、MASCOT等协议。

同态加密 HE

对相关密文操作(不需获知解密密钥),即可以 直接在密文上 进行特定代数运算的 加密方法

一种不需要访问数据本身就可以加工数据的方法,因此实现隐私数据的保护。

何为同态

这里可理解为,可直接对密文处理,等于先对明文处理再加密。即同态加密这种加密方法 满足运算的同态性

同态加密组成

四元组(KeyGen,Enc,Dec,Eval)

  1. KeyGen:密钥生成函数。对于非对称同态加密,输入一个密钥生成元g,KeyGen(g)=「pk,sk」。pk是加密密钥,sk是解密密钥;对于对称同态加密,只生成一个公共密钥 sk=KeyGen(g)
  2. Enc:加密函数。对于非对称同态加密,Enc以公钥pk和明文m为输入,密文c为输出;对于对称同态加密,Enc以公共密钥sk和明文m为输入,密文c为输出。
  3. Dec:解密函数。对于非对称和对称,都以sk和密文c为输入,明文m为输出。
  4. Eval:评估函数。将密文c和公钥pk(对称同态加密则输入sk)输入,输出与明文对应的密文c。即是对密文处理的函数,对密文c进行 f 处理,相当于先对明文 f 处理,再加密的输出密文。
同态加密

是指满足 密文同态运算性质 的加密算法,即数据经过同态加密之后,对密文进行特定的计算(先加密后对密文进行处理),得到的密文计算结果 等同于对明文数据直接进行相同的计算后再同态加密(先对明文处理,再加密),实现数据的“可算不可见”。

三类同态加密
  • 部分同态加密(PHE):该加密方法只能做无限次同态加法(additive-only)或者只能做无限次同态乘法(multiplicative-only)操作。因此只能对密文(也即是对明文做无限次加、或无限次乘运算,只能是其中一种运算)。

  • 些许同态加密(SHE):该加密方法可以对密文做有限次同态加法 和 同态乘法(加、乘法都可以)。但是只能有限次,因此不能同态计算任意函数(即由于同态加法和同态乘法运算次数有限,对密文处理函数 **f 函数**不可能任意,因此些许同态加密方法只能对数据进行部分函数形式处理。)

    因为SHE使用了噪声数据。每次对密文做运算操作,都会增加密文噪声量,当噪声量超过上限值后,解密密文得不到正确结果(失去同态性),因此只能有限次运算。

  • 全同态加密(FHE):该加密方法可以对密文做无限次同态操作(同态加法和同态乘法运算)。因此可以同态计算任意函数(因为任意函数都可以由无限次加法、乘法实现)

    FHE可以实现任意函数功能。即全同态加密方法,可以对数据进行任何函数形式的处理。

    FHE使用了自助法 Bootstrap 对密文重加密,以减少密文后续计算中的噪声量,才能实现 无限次操作。但Bootstrap计算开销很大,FHE速度十分缓慢。

差分隐私 DP

用来防范 个体级别 差分攻击。

例如:100人有10个人生病,攻击者想了解第100个人的健康状况。攻击者会先查询前99个人生病个数,再查询100个人生病个数,对比即可知道第100个人的情况。

差分隐私实现

在查询结果中加入 满足某种分布噪声,使查询结果加入随机性,使 数据模糊

即对于只有一个记录不同(即欲攻击的那个个体的数据不同)的两个数据集D和D‘,攻击者在这两个数据集 (以隐私预算∈约束下) 查询结果相同的 概率很接近(即第100人生病和健康的两个数据集中,攻击者在这两个数据集查询第100人状况概率很接近),这样攻击者无法判断真实结果,造成混淆。

实用性和隐私性(可用性和随机性)

攻击者两个数据集查询结果相同的概率只能非常接近,不能一样。一样就代表完全随机化,完全随机意味着无法验证真实结果,隐私保护没意义,数据不可用了。因此,要权衡实用性和隐私性。

隐私预算

隐私预算∈,代表对查询者的 信任程度,可以近似理解为 所允许的查询次数。每次查询,查询者都有可能根据概率反推出数据, 因此每次查询后,都会扣除一些预算。当信任程度为0,不能在查询,否则很大概率就会反推暴露出数据。 ⚠️⚠️⚠️隐私预算越小越好,越小,隐私保护越好

示意图

加入噪声后,两个数据集的概率分布。

v2-2347afd41dd62fad9e9cfac91452b705_720w.jpg

噪声加入越多,即随机性增加,可用性下降,函数图像趋于扁平,隐私预算减小。

v2-2064bb311ba476f0cf6d9f3c3e94c54c_720w.jpg

如何在随机性和可用性权衡情况下减小隐私预算呢?

加入松弛项。即允许有较小的差距。

v2-37cc48e2aa2d9da99c5aa28a3d4e733f_720w.jpg

加入松弛项,不引入更多噪声情况下,减小隐私预算。

差分隐私分类
  • 根据函数敏感性增加噪声。针对 数值型 数据,一般采用拉普拉斯或高斯、二项式分布的噪声。查询结果往往是 一个确定的数值结果。 **直接在数值结果中加入噪声实现差分隐私。**采用拉普拉斯,得到严格的(∈-0)差分隐私;采用高斯或二项式,得到松弛的(∈-松弛项)差分隐私。

  • 根据离散值的指数分布选择噪声。针对 非数值型 数据,采用质量函数q进行打分。指数机制整体的思想就是,当接收到一个查询之后,不是确定性的输出一个结果,而是以**一定的概率值返回结果,从而实现差分隐私。例如:对应输出概率为
    { 红 色 : 3 e − 7 , 绿 色 : 4 e − 5 , 紫 色 : 0.999 } \{红色:3e-7,绿色:4e-5,紫色:0.999\} {3e7绿4e50.999}
    而这个概率值则是由打分函数确定,
    得分高的输出概率高,得分低的输出概率低。**

差分隐私在PPML应用

LDP:本地差分隐私。 中心思想:随机回应(RR)

一般在联邦学习中使用本地化差分隐私

传统的差分隐私是将原始数据集中到一个数据中心,然后在此对数据施加差分隐私算法,并对外发布,称之为中心化差分隐私(Centralized Differential Privacy)。因此,中心化差分隐私有一个前提:可信的第三方数据收集者

本地化差分隐私:只有不可信的第三方收集者。其将数据隐私化的工作转移到每个用户,用户自己对自己的数据施加差分隐私算法,再将差分隐私后的 扰动数据 发送给不可信第三方。极大地降低了隐私泄露的可能性。

中心化和本地化最大的区别是 在哪个地方扰动。本地化是用户的数据在自己的本地化扰动后,将 扰动的值 发送给 聚合器,聚合器收集大量的数据后再反推频数或者均值。而在中心化时,我们是信任聚合器的,因为我们将自己**真实的数据** 直接发送给聚合器,聚合器收集大量的数据再扰动,再返回频数/均值等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHe9str8-1646467645454)(D:\Typora\笔记配图\v2-08ba5f31513ab6acfddd6f955226a186_r.jpg)]

第三章

分布式机器学习(Distributed Machine Learning,DML)

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

分布式机器学习分类

  • 面向扩展性的DML:用来解决不断增长的扩展性(内存容量)和计算需求(训练处理时间)问题的ML系统。目前一段时间,ML和DL的规模以指数级增长,训练该模型已超出单一计算单元(计算节点)的传统ML能力范围。

    当内存限制和算法复杂度是主要障碍时,面向扩展性的DML可通过引入多个计算单元(计算节点),把大量训练数据分散存储在不同计算单元实体中,克服内存问题。多计算节点 并行处理 可以克服计算速度问题。且DML还可提供弹性化、廉价化的计算资源。例如计算单元、CPU、GPU、TPU(Tensor Processing Unit,张量处理单元)。

  • 面向隐私保护的DML:保护用户隐私和数据安全。

面向扩展性的DML多应用于横向划分数据集(类似于横向联邦学习)场景中,即各参与方持有不同的样本数据(把大量数据划分开,分给不同参与方协同训练),但是有相同的数据特征。

面向隐私保护的DML多应用于纵向划分数据集(类似于纵向联邦学习)场景中,即各参与方持有相同的样本ID数据,但是各参与方数据的数据特征不同。

面向扩展性的DML

传统ML处理大规模数据和模型的挑战
  1. 内存短缺

    传统ML只在 一块独立内存 中对数据样本进行训练。当数据样本规模超过单块内存容量可能导致训练失败。

  2. 不合理的训练时间

    模型训练中,ML模型 超参数调校 需大量时间。但当处理大规模数据样本时,计算复杂度高,训练处理过程耗费时间过长( 因此要想着优化提速 ),留给调参的时间不多,导致试验超参数时间过少,难以获得高性能模型。

面向扩展性DML的一些方法(并行技术)

数据并行、模型并行、图并行、任务并行、混合并行和交叉并行

数据并行

数据并行:不同计算节点(计算设备)输入不同数据,运行 相同的完整的模型

将总的训练数据划分为多个分片,分别置于多个计算设备中,每个设备使用统一模型的多个副本(即每个设备训练的模型都是完整且相同的),并行 训练,定期交换各自训练模型的参数,以聚合成全局模型参数。

由于模型的一个副本必须完整位于单一设备上,因此数据并行不能处理具有 高内存占用特性DNN模型

基于数据并行的两种分布式训练方法:同步训练和异步训练。

同步:ps 会同时充当 reducer 的角色,等待所有 worker (计算节点)都发来梯度和参数更新请求后,ps 会对梯度取平均(reduce mean),并用平均过后的梯度更新一次参数(聚合得到新的全局模型参数)。各个 worker 在从 ps 读取最新参数的过程中,以及等待 ps 更新参数的过程中,都是处于 空闲状态

异步:与同步更新不同,异步更新中 ps 在收到一个worker 的梯度以及更新请求的时候,会立即对参数发起更新,而不等待其他 worker。在完成梯度的计算后,worker 会立刻从 ps 上读取参数,进行下一步的迭代。

可以理解为,只需要收到一个节点的更新梯度,就开始聚合。。这时候就会有问题,如果在聚合更新某一个节点参数时,又收到另一个节点更新梯度,可能更新一半就没了。

模型并行

模型并行:不同计算节点输入 相同数据 ,运行模型的不同部分。

如数据并行中,DNN具有高内存占用特性。当一个模型过大,不能加载到单一节点内存中时,需要分割模型。

将一个模型分割成若干部分,分别置于不同计算节点中(例如DNN模型,一些层放在一个部分,其他层放在其他部分)。

模型并行主要目的是解决内存容量限制问题,即 一个模型不能放入单一设备,并不是为了加速训练,只能加速一点点。

并不能大幅提速是因为,虽然是并行,但是是模型并行。例如DNN模型,每个层在不同计算设备中,那在前向传播时,各计算设备一定是串行(以符合前向传播/后向传播),因此实际上并不能大幅提速。

图并行

以图为中心的DML。

任务并行

计算机程序在同一台或多台机器上的 多个处理器 上执行。对于一个程序来说,并行执行程序中的 不同操作 以最大化利用处理器或内存等计算资源。

DML常将任务并行和数据并行结合起来。

混合并行和交叉并行

混合并行:结合不同类型的并行方法,形成混合并行。

例如:数据并行和任务并行;数据并行和模型并行。

交叉并行:比混合并行覆盖范围更广,更细。例如可能是 按层混合,即不同层选择不同并行方法进行混合。对一些层采用数据并行,对另一些层采用模型并行。

面向隐私保护的DML

隐私保护决策树(Decision Tree)

分类树(决策树)是一种十分常用的 分类 方法。它是一种监督学习,所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对 新出现的对象 给出正确的分类。 即:先学习样本内容,构造出一个决策树,再根据决策树对新的数据进行分类。

决策树中,每个结点表示样本的 一种属性,每个结点根据不同属性值扩展出多个子结点(边代表属性值),每个叶结点代表 一个类别。决策树实现分类就是从根结点开始 向下遍历,到叶结点的一个路径代表一个实例。

为了能对未知新数据进行分类,构造出的决策树在正确的前提上应 尽可能小 ,每次为结点选取代表的 属性 时都要保证这个属性赋予给这个结点是最优的。

分布式决策树。由于样本集可能存在划分情况,决策树也可以分为分布式决策树(因为决策树就是要学习所有样本数据,才能构造完成,当样本划分时,决策树学习也要分布式)。

基于数据划分类型,决策树分为:基于横向划分数据集的隐私保护分布式决策树;基于纵向划分数据集的隐私保护分布式决策树。

❓❓❓**question:那么隐私保护用到决策树,实现隐私保护的决策树,有什么用呢???对什么分类呢????**

隐私保护方法
  • 模糊处理

    随机化、添加噪声或修改数据,对数据进行模糊处理,使系统拥有某一级别的隐私。例如第二章学过的差分隐私方法,实现个体级别的隐私。

  • 密码学方法

    分布式各方只了解自己的输入值,或输入值不以明文方式传输,使分布式计算过程 安全化。例如第二章学过的安全多方计算,同态加密。

基于模糊的面向隐私保护的DML:计算效率高,实现简单。但是由于加入随机扰动,影响了数据精度和模型性能,要在隐私保护和性能之间做取舍(也就是差分隐私中学到的,加入噪声越大,隐私预算越小,隐私保护越好,但是数据可用性减小,随机性增大) 例如差分隐私

基于密码学的面向隐私保护的DML:需要很多额外计算,实现复杂,计算复杂度高 。但是隐私保护更好,安全性更好。 例如安全多方计算、同态加密

面向隐私保护的梯度下降方法

面向隐私保护的梯度下降能够提升隐私保护强度。

朴素联邦学习中的梯度下降

即是一般联邦学习中的梯度下降方法,涉及隐私保护。

前提是联邦学习系统中的 协调方(参数服务器)是诚实的,与其他各参与方没有勾结。

水平划分数据集:联邦平均方法。每一方给一个协调方独立地上传 明文形式 的梯度,最后协调方将 明文形式 的聚合后的更新模型发送给每一方。

纵向划分数据集:目标函数分解。在梯度下降中,目标函数分解为一个可微函数和一个线性可分函数。纵向划分数据集时,模型分配给各方,各方根据局部模型,将训练的中间结果发给协调方。协调方评估可微函数以计算损失和梯度。协调方将更新好的模型再拆分成局部模型发给各方。

代数方法实现隐私保护的梯度下降

旨在利用传输数据的代数特性保护原始训练数据。

例如上述说的,纵向划分数据集的目标函数分解;还有基于安全多方计算(算术秘密共享)的梯度下降。

稀疏梯度更新 方法

通过只更新梯度的子集来更新模型,实现隐私保护。但是此方法用精度换效率,且梯度是明文方式传输,隐私保护程度较低。

模糊处理方法

通过随机化、泛化、压缩使得数据模糊。改善了隐私性。用精度换隐私保护和效率。

密码学方法

利用同态加密和安全多方计算,在梯度下降过程中,保护每一方梯度信息隐私。

密码学方法用效率换高的隐私保护性。目前也使用非线性函数的近似方法,用精度换效率,防止计算过于低效。

DML挑战与展望

安全多方计算、同态加密、差分隐私是面向隐私保护的DML系统里常用隐私保护技术。目前,面向隐私保护的梯度下降方法也广泛用于DML系统中(梯度下降也大多都是基于安全多方、同态、差分这几种基础技术思想)。

联邦学习是DML一种 特殊类型,可进一步解决传统DML系统问题,例如数据孤岛问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值