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

  • Post author:
  • Post category:其他


文章目录



第一章



数据孤岛问题

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

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



联邦(机器)学习



联邦学习



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

联邦:使拥有碎片化小数据集的各方


联合


构建一个机器学习模型(因为这些碎片化小数据集不方便一下子聚合到一起处理。)⚠️⚠️⚠️一开始各方都有各自的学习模型,根据自己的数据训练,然后各方的模型


聚合


(通过各方交换模型信息(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\}






    {












    3


    e













    7





    绿








    4


    e













    5














    0


    .


    9


    9


    9


    }







    而这个概率值则是由打分函数确定,


    得分高的输出概率高,得分低的输出概率低。

    **



差分隐私在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系统问题,例如数据孤岛问题。



版权声明:本文为BlackEg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。