机器学习------联邦学习的安全与隐私

联邦学习介绍

联邦学习是一种新型的分布式学习框架,与分布式机器学习中的数据并行化训练具有相似的逻辑结构,但是不同的是联邦学习的训练数据是保存在本地,不需要事先收集,而分布式机器学习的训练数据是事先收集并分发给每个参与者的。
联邦学习允许多个参与者之间共享训练数据而不会泄露其数据隐私。参与者的数据隐私可以通过只上传模型参数(例如梯度)代替上传训练数据进行保护。联邦学习能够在保护数据隐私的前提下实现由多个参与者的本地数据训练出统一的机器学习模型。

联邦学习的架构

联邦学习的架构分为中心化联邦(服务器/客户端)架构和去中心化联邦(对等计算)架构。

中心化联邦架构:该架构下的联邦学习模型中存在一个中心服务器,参与者通过中心服务器进行交互,中心服务器负责将机器学习的模型分发给参与者,接受参与者上传的学习模型并进行整合来更新全局模型
去中心化联邦架构:该架构下的联邦学习模型不存在中心服务器,参与者之间直接进行交互。每个参与方训练模型后需要将训练后的模型下发给所有参与联合训练的数据持有者,并接受其反馈的模型进行聚合得到最后的训练模型。

联邦学习的类型

根据参与者贡献数据集的方式,可将联邦学习分为横向联邦学习、纵向联邦学习和联邦迁移学习。

横向联邦学习

横向联邦学习的用户特征重叠较多,但是重叠的用户个数较少。因此将数据做横向切分,使用用户特征重叠而用户不完全相同的那部分数据进行训练。其本质是增加样本的个数,通过各参与方之间的样本联合,扩大了训练的样本空间,从而提升了模型的准确度和泛化能力。数据贡献如图所示:
在这里插入图片描述

纵向联邦学习

纵向联邦学习的用户重叠个数较多,但是重叠的用户特征较少。因此将数据做纵向切分,使用用户数据重叠但是用户特征不完全相同的那部分数据进行训练,其本质是扩大样本数据的特征维度,在联合训练时,需要先对各参与方数据进行样本对齐,获得用户重叠的数据,然后各自在被选出的数据集上进行训练,且为了保证非交叉部分数据的安全性,在系统级进行样本对齐操作,每个参与方只有基于本地数据训练的模型。数据贡献如图所示:
在这里插入图片描述

联邦迁移学习

联邦迁移学习是横向联邦学习和纵向联邦学习都不符合的数据分布情况,适用于各参与方用户空间和特征空间都重叠较少的场景。在这种情况下我们不对数据进行切分,而利用迁移学习来克服数据或标签不足的情况

三种联邦学习的数据切分图如下:
在这里插入图片描述

联邦学习的流程

完整的联邦学习模型训练阶段主要包括以下步骤:
(1)初始化:所有参与方获取一个预先分配好的神经网络模型,他们可以自愿加入联邦学习协议,
并确定相同的机器学习及模型训练目标。
(2)本地训练:在某轮特定的通信过程中,联邦学习参与者首先从中央服务器下载全局模型参数,然后使用其私有训练样本对模型进行训练,生成本地模型更新(即模型参数),并将这些更新发送至参数服务器。
(3)模型平均:通过聚合不同训练样本训练得到的所有模型更新并进行平均计算便可得到下一轮
的全局模型。
(4)迭代:重复上述步骤以达到优化全局模型的目的,直到满足收敛条件为止。

实际应用中,小批量随机梯度下降法常常用来建立联邦优化算法。其本地训练策略为
在这里插入图片描述
其中,Lt 代表第 t 轮通信轮次中服务器分发给用户的本地模型参数;b 代表本地训练批量大小;η 代表学习速率。

如谷歌的FedSGD算法,每轮迭代式选择一定比例的参与者,最小化这些参与者的损失函数来计算梯度。该方法下每个用户只需在当前的全局模型上执行一轮随机梯度下降法计算,然后服务器承担所有剩余的任务以得到当前模型权重的平均值。

联邦学习的挑战

目前联邦学习还处于起步阶段,还面临许多挑战,具体挑战表现如下:

  • 通信带宽受限。每次迭代过程,服务器要与众多的参与方进行数据交互,且要采用多种防御手段保证模型与敏感信息的安全,会加重服务器的通信负担。
  • 数据质量问题:由于数据集是由参与方存储在本地,服务器无法接触到数据源,因此可能存在数据标签错误,数据混淆,数据规模小等问题
  • 模型收敛性。联邦学习是一个多轮训练过程,因此要提高算法的收敛速度,从而保证算法尽快收敛到最优解
  • 联邦学习与云服务。由于数据很大,越来越多的人应用云备份和云存储来管理个人数据,但是云存储的方式其本质仍然为集中式数据存储。

安全和隐私攻击

攻击目标

机器学习的CIA模型有机密性、完整性、可用性三个特性。攻击者可以根据每个特性指定相应的攻击方法。其中机密性攻击仅仅只是泄露模型的隐私,不会造成模型的破坏,而完整性和可用性攻击则是影响模型的正常使用,造成了安全问题。
机密性攻击:攻击者窃取训练数据中嵌入的敏感信息,通过暴露目标模型信息及其预测结果来破坏机密性,威胁参与者的隐私
完整性攻击:通过诱导模型行为。如让模型训练攻击者指定的样本,使模型的预测结果为指定的分类标签
可用性攻击:通过阻止参与者获得模型的正确输出或者是干预参与者获取模型的某些特征,使参与者获取的模型不具备可靠性

攻击方式

目前,联邦学习中的主要攻击来自于联邦学习过程中的内部实体(参与者、参数服务器)。攻击者的身份可以是参与者,也可以是参数服务器。且联邦学习的过程中,信息主要有如下:
1.本地模型参数—能推理出本地参与者信息
2.全局模型参数—能推理出用户的私有信息
3.本地训练数据

因此可以根据攻击者的身份以及其攻击的数据分以下情况讨论:

1.恶意参与者

由于参与者可以从参数服务器上传或下载参数,因此对恶意参与者的防御尤为重要。
1.若有恶意参与者上传不正确的本地模型参数,则会影响全局模型,破坏可用性
2.若恶意参与者获得了全局模型参数,通过分析,会导致其他诚实参与者的信息被泄露,破坏机密性
3.若恶意参与者提供的本地训练数据是恶意数据,会使训练后的模型偏离既定的预测,破坏完整性

2.恶意服务器

由于联邦学习中服务器承担了重要角色,若服务器被攻击者掌控,则可以获取参与方的身份及其上传的参数,从中推断出参与方的敏感信息,造成参与方的隐私威胁。
1.恶意服务器接收诚实参与者的本地模型参数,能从中分析该参与者的身份等隐私信息,破坏机密性
2.恶意参与者可以对全局模型参数进行错误的整合,导致参与者获得不可靠的模型,破坏可用性
3.由于本地训练数据是由参与者存储在本地,因此恶意服务器无法接触到本地训练数据

攻击方法

投毒攻击

投毒攻击会影响联邦学习的安全,指的是攻击者通过一定手段使数据被污染从而对模型进行攻击。根据投放数据的类型可以具体分为数据投毒和模型投毒。其中数据投毒是对训练集中的样本进行污染(如添加错误的标签或者有偏差的数据),如标签翻转攻击;而模型投毒则是发送错误的参数或者是损坏的模型来破坏学习过程(如控制本地模型参数),如后门攻击(模型能正确分类正常样本,同时能够识别携带触发器的样本并预测攻击者希望的分类结果)

基于以下原因,联邦学习框架面对这种投毒攻击时非常脆弱:
(1)联邦学习系统中存在大量的参与者,很可能包含一个或多个恶意用户。
(2)由于用户的本地数据和训练过程对服务器是不可见的,所以无法验证特定用户所上传更新的可靠性。
(3)由于不同用户生成的本地更新可能会存在很大差异,给用户更新异常检测过程将带来巨大挑战。

对抗攻击

对抗攻击是指攻击者恶意构造输入样本,从而导致模型输出结果产生偏差。根据攻击环境的不同,可以将对抗攻击分为黑盒攻击和白盒攻击。其中黑个攻击不知道模型的任何信息;白盒攻击知道模型的参数和内部结构

参与者GAN攻击

生成式对抗网络(GAN)是一种机器学习模型,由生成模块G和判别模块D组成。生成模块G利用接收到的随机噪声生成虚假样本,判别模块D用来判断样本是否为G生成的虚假样本

联邦学习框架对于系统内部参与者发起的主动攻击是极为脆弱的。基于GAN的攻击是通过攻击者伪装身份,在训练阶段训练一个GAN模型,用于模拟其他用户训练数据产生的样本,并且训练该样本,使其被错误标记,并上传本地模型参数达到更新全局模型参数的目的。通过该方法,迫使受害的参与者要使用更多的本地样本进行训练,因此能够获得更多受害参与者的隐私信息。

参与者 GAN 攻击的强大之处在于,攻击者可以在不损害任何实体的前提下隐秘地完成所有的恶意行为,并可伪装成正常的参与者顺利地执行所建立的协议。

推理攻击

参与者获取的参数是聚合生成的全局模型参数,而服务器获得的参数是每个参与者在本地数据集上训练全局模型之后的更新参数

恶意服务器服务器可以获取大量涉及每个参与者的局部训练模型的辅助知识(如模型结构、用户身份和梯度),并且有足够的能力进行用户隐私信息泄露
恶意参与者需要在每一轮通信中获取其他用户的本地模型参数才能推理出参与者的隐私信息。为此,攻击者首先在模型平均值之后获取全局模型参数的快照,并将这些快照保存在本地。然后通过计算后续快照之间的差异,并进一步去除新增的更新,实现从其他用户处获得聚合模型更新。通过这种方式,攻击者可以通过辅助数据集的协助来推断所有其他参与者共同合成的数据样本

联邦学习的防御措施

对于联邦学习的保护可分为安全保护和隐私保护两个方面,其中安全保护主要是保证模型的可用性和完整性,隐私保护主要是保证模型的机密性。

主要通过识别恶意用户或者是识别/检测恶意样本来进行防御。通过同态加密、差分隐私、秘密共享和安全多方计算等隐私保护手段杜绝恶意服务器对参与者隐私信息的窃取。此外,由于区块链具有去中心化、安全透明、不可篡改等特点,因此联邦学习还可借助区块链对计算过程进行审计,监控模型训练中的恶意行为,从而加强隐私保护效果

安全防御措施

1.投毒攻击的防御–异常检测、对抗训练

上面提到,投毒攻击分为数据投毒和模型投毒两种类型。

防御数据投毒:从保护数据的角度出发,在训练模型之前要保证数据来源的真实性与可靠性(可以使用健壮的身份验证机制)。另一方面,在使用不能保证安全性的数据之前,要进行相应的检测来保证数据没有被污染(可以使用起源和转换等上下文信息进行检测。该方法通过将整个训练集分为多部分,比较各部分数据训练出的效果,从而识别出表现最为异常的数据)。

防御模型投毒:针对模型投毒攻击,防御的重点在于对恶意参与方的识别以及对错误更新参数的检测。对于错误参数,可以根据准确度检测和直接比较各个参与方提交的更新参数之间的数值统计差异

针对投毒攻击,有学者提出了一种间接协作的深度学习框架,此框架中参与者不再向服务器传递模型梯度,而是向服务器传递伪装特征,并基于这些伪装特征设计了一套自动统计机制来抵御投毒攻击。
在此方法中,使用 K⁃means 算法对每轮通信过程中的本地模型更新(伪装特征)进行聚类,并识别出展现出异常分布的孤立点。这些检测到的孤立点可以用于进一步对恶意用户进行识别

2.对抗攻击防御

对抗攻击的防御手段有很多,如对抗训练、数据增强、数据去噪、数据压缩、防御蒸馏、梯度正则化、对抗样本检测、基于GAN的防御等方法

  1. 对抗训练:将真实的样本和对抗样本一起作为训练集来训练出最后的模型。可以提升模型的鲁棒性,是对抗攻击最有效的防御方式之一
  2. 数据增强:对原始数据集中的数据进行随机化处理可以增强模型的泛化能力
  3. 数据去噪:对样本进行降噪处理,通过比较给定样本的分类结果以及其去噪之后的版本,可以有效地检测和剔除对抗样本
  4. 数据压缩:针对图像训练过程,使用压缩后的图片进行训练。但是压缩图片在降低噪声比例的同时,也会减小原始数据信息,所以压缩图像同时也会降低正常分类的准确率
  5. 防御蒸馏:先利用训练集得到一个模型,然后通过模型提取,从原来的模型“蒸馏”提纯出另一个模型,从而降低模型的复杂度,并保证模型的效率与质量
  6. 梯度正则化(梯度掩码):在训练模型的目标函数上对输入与输出的变化进行惩罚,将原始梯度隐藏
  7. 对抗样本检测:区分出对抗样本与正常样本之间的区别,然后以高精度检测出对抗样本,就能很好的防范对抗攻击。
  8. 基于GAN的防御:生成式对抗网络(GAN)是一种机器学习模型,由生成模块G和判别模块D组成。生成模块G利用接收到的随机噪声生成虚假样本,判别模块D用来判断样本是否为G生成的虚假样本

隐私防御措施

隐私保护常常采用同态加密与安全多方计算结合的方法以及差分隐私机制来实现。

1.同态加密与安全多方计算

该方法是通过将数据进行加密为仅特定人员能解码的密文进行传输从而保证数据的机密性,同时借助安全协议实现直接对密文计算并求得正确结果

安全多方计算中多个参与者间的通信是具有安全性的,并且通过同态加密方法加以保护。在联邦学习中,用来保证参与者上传给服务器的数据具有安全性

为了防止恶意服务器采用推理攻击获取参与者的隐私信息,可将加密与异步随机梯度下降相结合。该系统利用基于 HC 的预协商公钥对本地训练过程生成的局部梯度进行加密。服务器收到密文后,利用加法同态属性计算统计值的总和,实现了更新聚合和模型更新。在完成模型平均之后,参与者使用各自持有的私钥对全局模型参数进行解密。通过对客户端更新进行加密可以确保没有隐私信息被泄漏。
除此之外,还可用秘密共享机制进行防御。(n,t)秘密共享是将一个秘密信息s分成n个碎片,由n个不同的参与方保管,要得到其中t个及以上的碎片才能重构出秘密s,从而减弱了服务器的权利

该学习模式下的加密方法常常是基于安全聚合的协议来实现,该协议主要是保证参与者与服务端之间的通信以及服务端参数聚合过程的安全性。其计算代价不高,但是通信过程设计大量安全密钥及其他参数,因此通信代价会高于计算代价。

2.差分隐私保护

差分隐私(DP)保护通过给敏感数据添加噪声来实现。在联邦学习中,为了避免逆向推理出参与者的隐私信息,常常在参与者上传给服务器的参数中添加随机噪声。
基于此,有学者提出DP和SGD(随机梯度下降)算法结合的隐私保护深度学习方法,该方法主要是通过在小批量步骤后利用噪声干扰本地梯度实现隐私保护。

值得注意的是隐私保护预算开销和联邦学习效率之间的平衡很难抉择。隐私保护预算较低会阻碍本地模型收敛,较高会影响隐私保护的效果。且隐私保护不能保证参数传递过程中的机密性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值