联邦学习研究综述笔记
联邦学习
- 联邦学习的定义:联邦学习是一种分布式机器学习架构,包含多个客户端(参与者)和一个聚合服务器。
- 客服端(参与方):在本地使用自己的私有数据训练模型,训练完成之后将模型的参数(权重、梯度等)发送给聚合服务器。
- 聚合服务器:负责聚合客服端发送来模型的参数,将聚合后的全局模型发送给客服端。客户端用自己的私有数据训练同步后的模型, 开始新一轮的训练。
- 联邦学习可以分为三种:
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的攻击等,但会造成模型的准确性降低。
- 区块链:区块链是一种去中心化存在架构,可以将区块链与密码学结合以增强联邦学习的完整性和隐私性。
问题
- 在纵向联邦学习中,为什么每个用户都拥有一部分模型?
- 在推理阶段,模型训练都结束了,为什么对抗样本攻击能影响模型对真实数据预测的准确性?
- 在同态加密技术,是通过一个映射关系,将用户的私有数据映射为加密的数据吗?
相关文章:

联邦学习研究综述笔记
联邦学习 联邦学习的定义:联邦学习是一种分布式机器学习架构,包含多个客户端(参与者)和一个聚合服务器。客服端(参与方):在本地使用自己的私有数据训练模型,训练完成之后将模型的参…...

RedisTemplate乱码问题
其实这是在解决一个项目问题是发现的,因为原开发者的大意,造成了系统出现严重的逻辑问题。 因为系统系统采用分模块开发,某模块使用Spring提供的RedisTemplate进行值的读写,另一位使用了框架基于Jedis的一套公用方法进行值的读写…...

Java用户和内核交互图
...

2023.11.14使用bootstrap制作一个简洁的前端注册登录页
2023.11.14使用bootstrap制作一个简洁的前端注册登录页 比较简洁的登录页,主要是为自己开发的一些平台页面做测试用,前端具备功能如下: (1)输入用户名、密码,需补充后端验证代码。 (2ÿ…...

Avatar虚拟形象解决方案,趣味化的视频拍摄与直播新体验
企业们正在寻找新的方式来吸引和保持观众的注意力,一种新兴的解决方案就是使用Avatar虚拟形象技术,这种技术可以让用户在视频拍摄或直播场景中,以自定义的数字人形象出现,同时保持所有的表情和脸部驱动。美摄科技正是这个领域的领军者&#x…...
MongoDB备份与恢复以及导入导出
MongoDB备份与恢复 1、mongodump数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据 (数据和数据结构) 或指定数据(集合、部分集合内容)到指定目录中。 语法: mongodump -h dbhost -d dbname -o dbdirec…...

如何挑选猫主食罐头?宠物店自用的5款猫主食罐头推荐!
临近双十二大促,是时候给家里的猫主子屯猫主食罐头了。许多铲屎官看大促的各种品牌宣传,看到眼花缭乱,不知道选哪些猫主食罐头好,胡乱选又怕踩坑。 猫罐头侠闪亮登场!如何挑选猫主食罐头?作为经营宠物店7年…...
立哥先进研发-API安全方案
项目背景:随着技术进步,很多优秀技术也被用在黑灰产之中,例如爬虫系统在票务系统中的滥用,尤其机票系统。机票爬虫们威力之大,让人叹为观止:多数订票网站,真实用户产生的不到10%,其浏…...
小函数:Lambda表达式(Java篇)
Lambda表达式的使用场景:用以简化接口实现。 关于接口实现,可以有很多种方式来实现。例如:设计接口的实现类、使用匿名内部类。 但是lambda表达式,比这两种方式都简单! lambda表达式毕竟只是⼀个匿名方法。当实现的接…...

RSS订阅快速连接Notion
数环通让您可以通过不到几分钟的时间即可实现RSS订阅与Notion的对接与集成,从而高效实现工作流程自动化,降本增效! 1.产品介绍 RSS订阅是数环通的内置应用,很多用户通过RSS订阅来收集自己在各大平台上看的内容,当RSS…...

VMware ubuntu 新虚拟机的创建
根据自己指定的路径安装好vm后。 创建新的虚拟机。 记录一下,下次用到别再忘记了。 如需转载,注明出处! 点赞收藏关注我 以资鼓励 打开vm 软件,点击创建新的虚拟机 选择典型,点击下一步 选择你的ubuntu镜像iso文件 …...

第一篇 《随机点名答题系统》简介及设计流程图(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)
专栏目录 第一篇 《随机点名答题系统》简介及设计流程图(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)-CSDN博客 第二篇 《随机点名答题系统》——题库管理详解(类抽奖系统、在线答题…...
C# .NET6 Log4net输出日志
C# Log4Net用法-CSDN博客: .NET6.0的日志组件Log4net_.net log4net-CSDN博客 在 C# .NET6 开发中,log4net 是一个常用的日志记录框架,它可以帮助我们方便地输出日志信息。本教程将向你展示如何在 C# .NET6 中实现 log4net 的日志输出功能。 整体流程 下…...
python数据结构与算法-03_链表
链式结构 上一节讲到了支持随机访问的线性结构,这次我们开始讲链式结构, 视频里我会说下这两种结构的区别,然后讲解最常见的单链表和双链表。 之前在专栏文章那些年,我们一起跪过的算法题[视频]里实现过一个 lru_cache, 使用到的…...

Springboot-aop的使用
aop:面向切面编程,可以看作是面向对象的补充 举例 1.依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.1</version><relativePath/>…...
数列计算
题目描述 有一列数是 : 请找出这个数列的规律,编写程序计算并输出这个数列的第项,要求是分数形式,并计算这个数列的前项和 ( 结果四舍五入保留两位小数 ) 输入格式 第一行仅有一个正整数 () 。 输出格式 共有 行,第一…...
阿里云全球故障凸显“云集中”风险
阿里云12日发生的全球性故障再次将“云集中风险”推上风口浪尖。这一公有云史上罕见的事件不仅影响了数以万计的企业和服务,也引发了对云服务集中化趋势的深刻反思。 2023年11月12日17:44(GMT8)开始,阿里云基础设施发生严重故障,导致阿里巴巴…...

【2015年数据结构真题】
用单链表保存m个整数,结点的结构为 [data] [link],且|data|<n(n为正整数)。现要求设计一个时问复杂度尽可能高效的算法,对于链表中 data 的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如ÿ…...
vxe表格行拖拽
安装第三方插件 import Sortable from sortablejs 可以跟后端商议表格添加seq 顺序, 按照循序排序 secondInput 调用 修改接口api 然后重新获取数据 //在get 请求之后 使用nextTick 使用 const rowDrop () > {nextTick(() > {let xTable2 planDat…...

Linux之基本指令操作
1、whoami whoami:查看当前账号是谁 2、who who:查看当前我的系统当中有哪些用户,当前有哪些人登录了我的机器 3、 pwd pwd:查看我当前所处的目录,就好比Windows下的路径 4、ls ls:查看当前目录下的文件信…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

Axure零基础跟我学:展开与收回
亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...

NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地
NineData 的数据库 DevOps 解决方案已完成对百度智能云向量数据库 VectorDB 的全链路适配,成为国内首批提供 VectorDB 原生操作能力的服务商。此次合作聚焦 AI 开发核心场景,通过标准化 SQL 工作台与细粒度权限管控两大能力,助力企业安全高效…...
Nginx 事件驱动理解
在做埋点采集服务的过程中,主要依靠openresty加lua脚本来实现采集。高并发还是主要依靠nginx来实现。而其核心就是事件驱动/多路io复用(epoll机制),不同的linux服务器都有对应的实现方式。 而epoll机制就是,应用启动的…...