Federated Machine Learning:Concept and Applications

https://www.cnblogs.com/lucifer1997/p/11223964.html
http://www.noobyard.com/article/p-eorqxucf-ky.html
https://blog.csdn.net/weixin_44774630/article/details/97529260?utm_source=app
html

关键技术:

差分隐私DP:
在数据中添加噪声,或者使用泛化方法对某些敏感属性进行模糊处理,直到第三方没法区分个体。但在root端可能会泄露数据。
定义:对于单个项目中不一样的任意两个数据集D和D ',和函数f的任意输出O,ε控制精度和隐私之间的权衡:
算法

多方安全计算SMC:
两方分别拥有各自的私有数据,在不泄漏各自私有数据的状况下,可以计算出关于公共函数 的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。
框架设计使模型只能获得输入这个模型的数据。彻底杜绝了不一样用户下相互传递信息的状况。
  cr:介绍 、百万富翁问题安全

同态加密HE:
数据和模型自己不传输,也不能经过对接收数据进行猜想来还原用户数据服务器

秘密共享:
将秘密以适当的方式拆分,拆分后的每个份额由不一样的参与者管理,单个参与者没法恢复秘密信息,只有若干个参与者一同协做才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍能够完整恢复。
1.秘密K 被拆分为n 个份额的共享秘密
2.利用任意 t(2≤t≤n)个或更多个共享份额就能够恢复秘密 K
3.任何t – 1或更少的共享份额是不能获得关于秘密SK的任何有用信息
4.强健性:暴露一个份额或多到t – 1个份额都不会危及密钥,且少于 t – 1个用户不可能共谋获得密钥,同时若一个份额被丢失或损坏,还可恢复密钥网络

姚式混淆电路数据结构

å¨è¿éæå¥å¾çæè¿°

Alice准备一个混淆的电路版本,并连同相关的随机输入密钥一块儿发送给Bob。Bob能够不用知道Alice的任何输入以及中间值,就能够计算出电路的输出,并发送给Alice,做为双方接受的最终计算结果。
布尔电路的输入输出线路一般是0或者1的比特串,而对应的混淆电路的线路是随机的密钥值(或者称为混淆值)。每条线路有两个随机密钥值,分别对应0和1,计算时只能使用其中之一。
Alice的隐私输入为x,其构造电路时能够根据x的二进制比特位,选择其输入线路对应的随机密钥值,发送电路计算者Bob;而Bob隐私输入y串对应的随机密钥值,须要经过屡次OT(Oblivious Transfer)协议从Alice处获取对应的随机密钥值,OT协议能够保证不泄露Bob的隐私输入y给Alice。
Alice构造混淆电路时,会采用加密、变换等手段为电路中每一个门生成真值表,称为混淆真值表。Bob得到混淆真值表和x,y对应的输入随机密钥值后,就能够应用真值表计算混淆电路,得到最终输出,最后使用解密门电路能够获得实际的输出f(x,y)。并发

数据泄露问题&解决方法:

泄露:
①随机梯度降低(SGD)等优化算法的参数更新——提出了一种新的“约束和规模”模型-中毒方法,以减小数据中毒。
②推理攻击:协做机器学习系统中潜在的漏洞。敌对参与者能够推断成员身份以及与训练数据子集相关的属性——提出了梯度降低方法的一种安全变体。
③其余方法:研究人员也开始考虑区块链做为促进联邦学习的平台。在[34]中,研究人员考虑了块链式联邦学习(BlockFL)的体系结构, 其中移动设备的本地学习模型更新经过利用块链进行交换和验证。它们考虑了最优块生成、网络可伸缩性和健壮性问题。app

联邦学习分类

☆数据集:(I,X,Y) {I:ID space ; X:features space ; Y:label space }框架

å¨è¿éæå¥å¾çæè¿°

å¨è¿éæå¥å¾çæè¿°

1)横向联邦学习

å¨è¿éæå¥å¾çæè¿°

步骤:机器学习

  1. 参与者本地计算训练梯度,使用加密、差别隐私或秘密共享技术屏蔽梯度,并将屏蔽结果发送给服务器;
  2. 服务器在没有关于任何参与者的学习信息的状况下执行安全聚合;
  3. 服务器向参与者发送聚合的结果;
  4. 参与者更新它们各自的模型具备解密的梯度

安全问题:
若是用SMC或同态加密进行梯度聚合,则上述结构能够防止半诚实服务器的数据泄漏。
但可能在另外一个安全模型中,恶意参与者在协做学习过程当中训练生成的AdversarialNetwork(GAN)

2)纵向联邦学习

因为数据隐私和安全缘由,A和B不能直接交换数据。以确保培训过程当中数据的保密性 ,涉及第三方合做者C【governments或者Software Guard Extensions (SGX)。在此,咱们假设合做者C诚实,并不与A或B串通,但甲方和B是诚实的,但彼此好奇。

å¨è¿éæå¥å¾çæè¿°

系统组成:

  1. 加密实体对齐:
    因为两家公司的用户组并不相同,因此系统使用基于加密的用户ID对齐技术,关于双方的用户,没有A和B暴露他们各自的数据。在实体对齐过程当中,系统不会公开不重叠的用户。
  2. 加密模型训练:
    在肯定公共实体后,能够利用这些公共实体的数据来训练机器学习模型。

训练过程:

  1. 协做者C建立加密对,将公钥发送给A和B。
  2. A和B对梯度和损失进行计算的中间结果进行加密和交换。
  3. A和B分别计算加密梯度,并分别添加附加掩码,B还计算加密损失;A和B向C发送加密值。
  4. C解密并发送解密梯度和损失回到A和B;A和B去除梯度的掩码,相应地更新模型参数。

本文以线性回归和同态加密为例说明了训练过程:用梯度降低法训练线性回归模型,须要对损失和梯度进行安全计算其损耗和梯度。 梯度降低法与线性回归模型

假设学习率η,正则化参数λ,数据集,对应特征空间的模型参数ΘA,ΘB。

训练目标:

假设,加密损失:

表示加法同态加密。

,梯度计算:

 

在实体对齐和模型训练过程当中,A和B的数据在本地保存,训练中的数据交互不会致使数据隐私泄露。(注:向C泄漏的潜在信息可能被视为侵犯隐私。为了进一步阻止C从A或B中学到信息,在这种状况下,A和B能够经过添加加密的随机掩码进一步向C隐藏其梯度。)
所以,双方在联邦学习的帮助下实现了共同模型的训练。由于在训练过程当中,每一方收到的损失和梯度与他们在一个没有隐私限制的地方汇聚数据,而后联合创建一个模型收到的损失和梯度是彻底相同的,也就是说,这个模型是无损的。模型的效率取决于加密数据的通讯成本和计算成本。在每次迭代中,A和B之间发送的信息按重叠样本的数量进行缩放。所以,采用分布式并行计算技术能够进一步提升算法的效率。

安全性分析:
表1所示的训练协议没有向C透露任何信息,由于全部C学习的都是掩码后的梯度,而且保证了掩码矩阵的随机性和保密性[16]。在上述协议中,A方在每一步都会学习其梯度,但这不足以让A根据等式8从B中学习任何信息
由于标量积协议的安全性是创建在没法用n个方程解n个以上未知数[16,65]的基础上的。这里咱们假设样本数NA比nA大得多(nA是特征数)。一样,B方也不能从A处得到任何信息,所以协议的安全性获得了证实。

【注意,咱们假设双方都是半诚实的。若是一方是恶意的,而且经过伪造其输入来欺骗系统,例如,A方只提交一个只有一个非零特征的非零输入,它能够辨别该样本的该特征值uiB。可是,它仍然不能辨别xiB或ΘB,而且误差会扭曲下一次迭代的结果,从而警告另外一方终止学习过程。】
在训练过程结束时,每一方(A或B)都会不会察觉到另外一方的数据结构,只获取与其自身特征相关的模型参数。推断时,双方须要协同计算预测结果,步骤如表2所示,这仍不会致使信息泄露。