联邦学习
- 联邦学习的定义:联邦学习是一种分布式机器学习架构,包含多个客户端(参与者)和一个聚合服务器。
- 客服端(参与方):在本地使用自己的私有数据训练模型,训练完成之后将模型的参数(权重、梯度等)发送给聚合服务器。
- 聚合服务器:负责聚合客服端发送来模型的参数,将聚合后的全局模型发送给客服端。客户端用自己的私有数据训练同步后的模型, 开始新一轮的训练。
- 联邦学习可以分为三种:
1.横向联邦学习:适合于多个客服端的数据集拥有相同的数据特征和标签,但样本不同的情况。例如,不同区域的银行之间,用户不同,所以样本空间不同,而银行关注的数据特征和标签又是相同的。
2.纵向联邦学习:适用于多个客服端的数据集具有相同的样本空间, 但数据的特征和标签不同的情况。例如,同一个区域的银行和电力公司,二者的用户是一样的,所以样本空间相同,而银行和电力公司关注的数据特征和标签又不相同。
3.联邦迁移学习:适用于多个客服端的数据特征不同、标签不同、样本空间不同的情况。例如,位于中国的银行和位于美国的电力公司,他们拥有的数据特征、标签、样本空间都不同 - 联邦学习的三个阶段:数据收集阶段、模型训练阶段、推理阶段
- 数据收集阶段:各个客户端(参与方)在本地准备用于训练的私有数据,包括数据收集、参与方之间数据格式的协商等
- 模型训练阶段:客户端利用私有数据训练局部模型,聚合服务器聚合梯度并下发全局模型,迭代训练直到模型收敛。
- 推理阶段:部署训练好的模型,输入真实样本进行预测。在纵向联邦学习中,由于每个用户拥有一部分模型。在推理阶段,需要各个用户相互合作公共完成推理。
横向联邦学习步骤
- 由聚合服务器选定目标模型的结构和超参数, 并初始化模型的权重, 生成初始的全局模型。
- 聚合服务器通过广播或和客服端主动下载的方式, 将聚合服务器上当前全局模型共享给所有参与方。
- 客服端使用本地的私有数据训练模型,并将训练完的模型参数通过加密、差分隐私或秘密共享的方式,传输给聚合服务器
- 聚合服务器在不知道任何客服端的私有数据的情况下,使用聚合算法(FedAvg、Krum、Trimmed-mean和Median)进行安全聚合,更新全局模型。
- 聚合服务器将更新后的全局模型,发送给客服端(发送的什么?权重?还是梯度?)
- 客户端收到数据之后,更新自己的模型,开始新一轮的训练。
纵向联邦学习步骤
- 第一步:系统加密对齐样本,防止客服端的私有数据泄密
- 第二步:在客户端使用对齐样本,对模型加密训练
- 合作者C创建秘钥对,并向A和B发送C的公钥,用于加密传输的数据
- A和B分别计算和自己相关的特征中间结果,并加密交互,用来求得各自梯度和损失
- A和B分别计算各自加密后的梯度并添加掩码发送给C,同时B计算加密后的损失发送给C
- C解密并将解密后的梯度和损失返回给A和B。A和B解密梯度并更新模型参数。
联邦学习优化
- 隐私保护:在联邦学习中,多个参与方使用私有数据共同训练全局模型。采用合适的隐私保护机制(差分隐私、多方安全聚合等),保护参与方的数据隐私尤为重要。
- 通信效率:在联邦学习中,多个参与方要与聚合服务器频繁的交换模型参数、梯度等信息。为了提高通信效率,可以使用压缩、量化、稀疏化等技术降低通信数据量。
- 模型聚合:在联邦学习中,聚合服务器需要聚合各个参与方的梯度,进行汇聚生成全局模型。因此,聚合算法尤为重要,平衡各参与方的贡献度和数据分布差异。
- 非独立同分布(Non-IID)数据:在联邦学习中,参与方的数据通常是非独立同分布的,这可能导致模型的性能下降。因此,需要采用一些方法,如样本对齐、模型个性化等,以解决非IID数据带来的问题。
- 安全性:在联邦学习中,要保护模型免受恶意攻击和对抗性攻击,如模型篡改、模型逆向工程等。安全性是保证联邦学习可靠性的重要因素。
联邦学习的安全属性
-
完整性:联邦学习的完整性可以根据数据收集阶段和模型训练阶段,划分为两种。
- 数据集完整性:在数据收集阶段中,参与方的数据集没有攻击者篡改。
- 训练完整性:在模型训练阶段,参与方、聚合服务器都严格按照联邦学习的协议训练模型。
-
可用性:联邦学习的可用性可以根据模型训练阶段和推理阶段,划分为两种。
- 训练可用性:在模型训练阶段,能够在一定时间内完成模型训练。包含两个方面:一是收敛性,模型能在可接受的训练轮次内到达收敛的状态。二是合作公平性,每个参与方会用自己私有数据集,对模型进行训练。用户能够依据自身对模型的贡献,获得公平的补偿。这些补偿包括奖励计算资源、数据访问权限等,以激励用户更积极将自己私有数据,用于模型训练和更新过程。
- 模型可用性:在推理阶段,部署的模型对真实样本预测的准确性和公平性。其中,公平性是指模型不会因为某些属性,偏袒或歧视某个特定的个体或群体。
-
机密性:参与方的私有数据、全局模型的敏感参数不会泄露给非授权的用户。
联邦学习中的攻击手段
- 联邦学习的不同阶段受到的攻击不同,大概可以分为两大类:
1. 对抗性攻击(安全威胁):以破坏联邦学习的完整性和可用性,影响模型收敛的速度和推理的结果。
2. 非对抗性攻击(隐私威胁):攻击者窃取隐私数据,以破坏联邦学习的机密性
数据收集阶段的攻击手段
-
数据收集阶段的对抗性攻击包括:数据投毒攻击、女巫攻击
- 数据投毒:在数据收集阶段,攻击者控制部分参与方,通过插入有害或恶意数据,破坏数据集完整性。此外,数据投毒还可以根据攻击者对参与方的数据集标签操作不同,分为脏标签攻击和清洁标签攻击。脏标签攻击会篡改数据集标签,例如标签翻转攻击。清洁标签攻击不会篡改数据集标签,仅会在数据集中插入恶意样本数据。可以用数据消毒防御。
- 女巫攻击:攻击者控制多个虚假身份,从而利用这些身份配合攻击,以增加攻击隐蔽性和攻击效果。女巫攻击常用于数据投毒。
-
数据收集阶段的非对抗性攻击包括样本ID隐私泄露
模型训练阶段的攻击手段
- 模型训练阶段的对抗性攻击包括:模型投毒攻击、通信瓶颈攻击、塔便车攻击、基于GAN的攻击
- 模型投毒:在模型训练阶段,攻击者控制部分参与方,对上传的局部模型进行篡改,实现对全局模型的控制,破坏训练完整性。
- 通信瓶颈攻击:在模型训练阶段,大量的参与方需要与聚合服务器频繁的进行交换信息,而从产生大量的通信开销。其次,攻击者可能通过破坏信道来影响联 邦学习系统的稳定性和鲁棒性。
- 搭便车攻击:在模型训练阶段,恶意参与方可能会选择不诚实地报告自己的本地梯度或模型参数,以便在全局模型更新中获得更多的好处。由于恶意方不提供有价值的局部模型信息,不会为全局模型的改进做出任何贡献,从而导致全局模型的准确性和性能下降、数据和计算资源的浪费。
- 基于GAN的攻击:生成对抗网络(GAN)是一种深度学习模型,由一个生成器和一个判别器组成。生成器从潜在空间随机取样作为生成样本,生成样本要接近训练集中的真实样本。判别器的输入则为真实样本或生成样本,其目的是将生成样本和真实样本。生成器和判别器相互对抗、不断学习,最终目的使得判别器无法判断生成器的输出结果是否真实。攻击者可以使用生成对抗网络(GAN)生成对抗性样本,对本地模型的输入进行微小修改,使得模型产生错误的输出,从而导致联邦学习中的模型性能下降或信息泄露。
- 模型训练阶段的非对抗性攻击包括推理攻击,推理攻击可分为成员推理和属性推理。成员推理是指攻击者推理判断某个样本数据,是否用于训练模型,从而造成用户敏感隐私数据的泄密。属性推理是指攻击者推理判断训练数据集的特征信息,例如性别区分,年龄分布等。
推理阶段的攻击手段
- 推理阶段的对抗性攻击包括对抗样本攻击,即攻击者生成带有错误标签的对抗样本,导致模型输出错误预测结果。按照攻击者掌握的信息,可以将对抗样本攻击分为白盒攻击和黑盒攻击。在百盒攻击中,攻击者知道模型参数、机器学习算法等信息,并且可以这些信息去构造对抗样本。在黑盒攻击中,攻击者不知道模型参数、机器学习算法等信息,通过与系统交互构造对抗样本。
- 推理阶段的非对抗性攻击包括:模型提取攻击、推理攻击
- 模型提取攻击:在推理阶段,攻击者与系统交换信息,并通过已知的信息,构造出全局模型。特别在纵向联邦学习(VFL)中,由于每个参与方都关注的特征不一样,所以模型提取攻击会导致用户的敏感私有数据泄密。
联邦学习中的防御手段
提升联邦学习的鲁棒性的方法
-
鲁棒性:系统或者算法在不同的情况下,仍能够保持稳定和可靠的能力。具体来说,在面对一些意外或异常情况时,鲁棒性强的系统或算法能够保持其功能和性能,而不会因为这些异常情况而崩溃或失效。
-
数据消毒:对训练数据集中有害的、异常的数据进行清洗,可以防御数据投毒。但是数据消毒需要访问参与方的私有数据,无发保证数据的隐私性。
-
鲁棒性聚合:综合多个模型的预测结果,以提高整体的准确性和稳定性。以降低数据中的噪声、异常值或其他干扰因素对模型性能的影响。联邦学习中,鲁棒性聚合可分为三类。
- 基于统计特征和相似性的鲁棒性聚合:在联邦学习中,恶意方上传的更新会偏离正常更新,所以越离散的更新越有可能是恶意更新。在聚合服务器聚合时,可以采用某些方法绕过离散的更新,例如依赖于统计特征(中值、平均值、欧式举例),或者依赖于相似性,以提升模型的鲁棒性。
- 基于局部模型性能的鲁棒性聚合:通过在聚合服务器提供的良性辅助数据集 ,对 每 个局部模型上传的更新的优劣进行评估, 依据评估的结果来分配聚合的权重 , 或丢弃对准确性产生负面影响的更新。
- 基于训练函数优化的鲁棒性聚合:在模型的损失函数上加上正则项,以限制于全局模型偏离太多的局部模型,从而优化全局模型。
-
异常检测:使用统计和分析方 法,对模型的训练模式 、数据集或相关事件进行检测,以找到不符合预期的模式、异常行为或异常数据。目前,异常检测可以分为客服端异常检测(在客服端上,使用一种基于某种数学算法来检测异常防御方法)和数据集异常检测(把检测数据集中离群带点,或者远离正常数据特征的数据,作为异常数据)。
-
对抗训练:通过使用对抗样本来训练机器学习模型,提高模型对潜在攻击的抵抗力,以可以防止恶意用户对模型进行攻击和窃取隐私数据。
-
知识蒸馏:将大模型相关知识逐递到小模型中,并从这些知识中学习有用信息,来指导小模型训练 ,使小模型具备和大模型相当的性能 。
提升联邦学习的隐私性的方法
- 同态加密(HE):是一种不访问数据本身而实现的加密技术,基于数学难题的计算复杂性理论。它允许对加密数据进行计算,然后再解密,得到与未加密数据相同的计算结果。若同态加密算法支持对密文进行任意形式,或任意次数的计算,则称之为全同态加密(FHE)。若同态加密算法只支持对密文的乘法计算或加法计算,则称之为半同态加密(AHE)。同时,支持加法的称之为加法同态加密,支持乘法的称之为乘法同态加密(MHE)。
- 安全多方计算(SMPC):在一组互不信任的参与方中,各自持有秘密数据,协同计算一个既定函数或者训练一个模型。同时保证参与方获得正确计算结果,且无法获得计算结果之外的任何信息。在联邦学习中,安全多方计算可以分为基于加法秘密分享的隐私性增强、基于Shamir秘密分享的隐私性增强和多种技术组合的隐私性增强 。
- 差分隐私:在参与方发送的梯度更新中,加入随机噪声,以保护用户数据的隐私。可以用于防御模型提取攻击、成员推理攻击、基于GAN的攻击等,但会造成模型的准确性降低。
- 区块链:区块链是一种去中心化存在架构,可以将区块链与密码学结合以增强联邦学习的完整性和隐私性。
问题
- 在纵向联邦学习中,为什么每个用户都拥有一部分模型?
- 在推理阶段,模型训练都结束了,为什么对抗样本攻击能影响模型对真实数据预测的准确性?
- 在同态加密技术,是通过一个映射关系,将用户的私有数据映射为加密的数据吗?