联邦学习概念

联邦学习相关概念

联邦学习是为了解决数据孤岛以及隐私保护和数据安全问题在多方安全计算框架上实现的机器学习算法。

联邦学习需要达到的效果

在这里插入图片描述

联邦学习概念

在这里插入图片描述

联邦学习的分类

根据孤岛数据的不同分布特点,提供不同的联邦学习方案,数据分布的三种情况:
在这里插入图片描述
对应三种不同形式的联邦学习方式:
在这里插入图片描述
横向联邦学习:适用于两个数据集的用户特征重叠较多而用户重叠较少的情况下,把数据集按照横向(即用户维度)切分(跨行拼接样本),并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。Google在2017年提出了一个针对安卓手机模型更新的数据联合建模方案[6-7]:在单个用户使用安卓手机时,不断在本地更新模型参数并将参数上传到安卓云上,从而使特征维度相同的各数据拥有方建立联合模型的一种联邦学习方案

纵向联邦学习:在两个数据集的用户重叠较多而用户特征重叠较少的情况下,我们把数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练。这种方法叫做纵向联邦学习。纵向联邦学习就是将这些不同特征在加密的状态下加以聚合,以增强模型能力的联邦学习。目前,逻辑回归模型,树型结构模型和神经网络模型等众多机器学习模型已经逐渐被证实能够建立在这个联邦体系上,

纵向联邦学习系统构架

在这里插入图片描述
第一部分:加密样本对齐。由于两家企业的用户群体并非完全重合,系统利用基于加密的用户样本对齐技术,在A和B不公开各自数据的前提下确认双方的共有用户,并且不暴露不互相重叠的用户。以便联合这些用户的特征进行建模。

第二部分:加密模型训练。在确定共有用户群体后,就可以利用这些数据训练机器学习模型。为了保证训练过程中数据的保密性,需要借助第三方协作者C进行加密训练。以线性回归模型为例,训练过程可分为以下4步(如图2b所示):
 第①步:A,B ,两方分别对参数进行初始化,协作者C把公钥分发给A和B,用以对训练过程中需要交换的数据进行加密;

 第②步:A和B之间以加密形式交互计算
以LR为例,A,B双方分别计算Sum Wa Xa 和 Sum Wb Xb,

 第③步:A和B分别基于加密的梯度值进行计算,同时B根据其标签数据计算损失,并把这些结果汇总给C。C通过汇总结果计算总梯度并将其解密。

 第④步:C将解密后的梯度分别回传给A和B;A和B根据梯度更新各自模型的参数。

迭代上述步骤直至损失函数收敛,这样就完成了整个训练过程。在样本对齐及模型训练过程中,A和B各自的数据均保留在本地,且训练中的数据交互也不会导致数据隐私泄露。因此,双方在联邦学习的帮助下得以实现合作训练模型。

在这里插入图片描述

第三部分:效果激励。联邦学习的一大特点就是它解决了为什么不同机构要加入联邦共同建模的问题,即建立模型以后模型的效果会在实际应用中表现出来,并记录在永久数据记录机制(如区块链)上。提供的数据多的机构会看到模型的效果也更好,这体现在对自己机构的贡献和对他人的贡献。这些模型对他人效果在联邦机制上以分给各个机构反馈,并继续激励更多机构加入这一数据联邦。
以上三个步骤的实施,即考虑了在多个机构间共同建模的隐私保护和效果,有考虑了如何奖励贡献数据多的机构,以一个共识机制来实现。所以,联邦学习是一个“闭环”的学习机制。

联邦迁移学习: 在两个数据集的用户与用户特征重叠都较少的情况下,我们不对数据进行切分,而可以利用迁移学习来克服数据或标签不足的情况。这种方法叫做联邦迁移学习。

安全计算计算算法

同态加密Homomorphic Encryption

作者:BinarySTD
链接:https://zhuanlan.zhihu.com/p/52808772
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

同态加密是一种用于在不解密的情况下处理加密数据的技术。这将使敏感数据处理变得极其安全

同态加密与其他加密算法最不同的地方在于,除了要保证静态存储数据的安全性外,还要能支持在机密的数据上(密文)进行数据处理操作f。

同态性:明文a op b = f(a) op f(b)
Op为某种操作,比如加法,乘法,如果某个加密方案满足a + b = f(a) + f(b), 则其具有加法同态性。

同态加密构成:
KeyGen函数:密钥生成函数。这个函数应该由数据拥有者运行,用于产生加密数据Data所用的密钥Key。当然了,应该还有一些公开常数PP(Public Parameter);
Encrypt函数:加密函数。这个函数也由数据拥有者运行,用Key对用户数据Data进行加密,得到密文CT(Ciphertext);
Evaluate函数:评估函数。这个函数由第三方计算平台运行,在用户给定的数据处理方法f下,对密文进行操作,使得结果相当于用户用密钥Key对f(Data)进行加密。
Decrypt函数:解密函数。这个函数由数据拥有者运行,用于解密第三方计算平台的处理的结果f(Data)。

Fully Homomorphic Encryption (FHE):HE方案支持任意给定的f函数,只要这个f函数可以通过算法描述,用计算机实现。显然,FHE方案是一个非常棒的方案,但是计算开销极大,暂时还无法在实际中使用。
Somewhat Homomorphic Encryption (SWHE):这意味着HE方案只支持一些特定的f函数。SWHE方案稍弱,但也意味着开销会变得较小,容易实现,现在已经可以在实际中使用。

同态性来自代数领域,一般包括四种类型:加法同态、乘法同态、减法同态和除法同态。同时满足加法同态和乘法同态,则意味着是代数同态,即全同态(Full Homomorphic)。同时满足四种同态性,则被称为算数同态。

对于计算机操作来讲,实现了全同态意味着对于所有处理都可以实现同态性。也就是说,可以使用这个加密函数完成各种加密后的运算(加减乘除、多项式求值、指数、对数、三角函数)。而那些只能实现部分特定操作的同态性,被称为特定同态(Somewhat Homomorphic)。
目前全同态的加密方案主要包括如下三种类型:
基于理想格(ideal lattice)的方案:Gentry 和 Halevi 在 2011 年提出的基于理想格的方案可以实现 72 bit 的安全强度,对应的公钥大小约为 2.3 GB,同时刷新密文的处理时间需要几十分钟。
基于整数上近似 GCD 问题的方案:Dijk 等人在 2010 年提出的方案(及后续方案)采用了更简化的概念模型,可以降低公钥大小至几十 MB 量级。
基于带扰动学习(Learning With Errors,LWE)问题的方案:Brakerski 和 Vaikuntanathan 等在 2011 年左右提出了相关方案;Lopez-Alt A 等在 2012 年设计出多密钥全同态加密方案,接近实时多方安全计算的需求。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
联邦学习和区块链都是近年来比较热门的技术,它们的结合可以实现更加安全、隐私保护的分布式机器学习。下面我会简单介绍一下联邦学习和区块链的基本概念,并提供一些相关的代码资源供参考。 联邦学习是一种分布式机器学习技术,它允许多个参与方共同训练一个机器学习模型,而无需将数据集集中在一个地方进行处理。联邦学习的核心思想是将模型训练过程分成多个轮次,在每个轮次中,各个参与方将本地数据用于训练模型,然后将模型参数上传到服务器进行聚合,最终得到一个全局模型。联邦学习可以有效地保护数据隐私,因为参与方只需要上传模型参数,而不需要上传原始数据。同时,联邦学习还可以减少数据传输量,提高模型训练效率。 区块链是一种去中心化的分布式账本技术,它可以实现安全、可靠的数据交换和共享。区块链的核心思想是将交易记录打包成区块,然后通过密码学算法进行链接,形成一个不可篡改的链式结构。区块链可以保证交易的真实性和完整性,并且不需要一个中心化的机构进行监管和管理。目前,区块链已经广泛应用于数字货币、供应链管理、智能合约等领域。 将联邦学习和区块链结合起来,可以实现更加安全、隐私保护的分布式机器学习。一种常见的做法是使用区块链作为联邦学习的底层网络,通过区块链的去中心化特性保证模型参数的安全共享。具体地,每个参与方将本地训练好的模型参数上传到区块链网络中,然后其他参与方可以通过区块链网络获取这些模型参数并进行聚合。由于区块链的去中心化特性,任何人都可以参与到这个联邦学习过程中,从而实现更大规模的模型训练。 下面是一些联邦学习和区块链的相关代码资源: 1. TensorFlow Federated: TensorFlow Federated是由Google开发的一种基于TensorFlow的联邦学习框架,它提供了许多联邦学习算法和示例代码。GitHub链接:https://github.com/tensorflow/federated 2. PySyft: PySyft是一个Python库,可以用于实现联邦学习和安全多方计算。它支持基于WebSocket和Tor的通信方式,并且提供了许多加密算法和隐私保护技术。GitHub链接:https://github.com/OpenMined/PySyft 3. Hyperledger Fabric: Hyperledger Fabric是一个开源的区块链平台,可以用于搭建企业级联盟链。它支持智能合约、隐私保护、身份认证等功能,并且提供了完善的API和SDK。GitHub链接:https://github.com/hyperledger/fabric 4. TensorFlow On Chain: TensorFlow On Chain是一种基于区块链的机器学习框架,它可以实现联邦学习和模型共享。它使用以太坊作为底层区块链,并且支持智能合约和去中心化应用开发。GitHub链接:https://github.com/tensorflow/tfblockchain 希望以上资源能够对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值