联邦学习研究综述笔记
联邦学习
- 联邦学习的定义:联邦学习是一种分布式机器学习架构,包含多个客户端(参与者)和一个聚合服务器。
- 客服端(参与方):在本地使用自己的私有数据训练模型,训练完成之后将模型的参数(权重、梯度等)发送给聚合服务器。
- 聚合服务器:负责聚合客服端发送来模型的参数,将聚合后的全局模型发送给客服端。客户端用自己的私有数据训练同步后的模型, 开始新一轮的训练。
- 联邦学习可以分为三种:
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:查看当前目录下的文件信…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
