【联邦学习综述:概念、技术】

出自——联邦学习综述:概念、技术、应用与挑战。梁天恺 1*,曾 碧 2,陈 光 1

从两个方面保护隐私数据

硬件层面

  • 可 信 执 行 环 境 (Trusted Execution Environment,TEE)
  • 边 缘 计 算(Edge Computing,EC)

软件层面

  • 在数据以及通信层面对数据进行加密
    • 网 络 安 全 通 信 协 议
    • 密 码 学 技 术
    • 后 量 子 密 码

联邦学习的出现

集中式学习

此模式下,所有终端的数据需要被传输到主服务器上,由主 服务器基于收集到的数据执行机器学习任务,即数据会被移 动到主服务器,而模型以及模型的训练过程则被固定在主服 务器上,称“模型不动,数据动”。
在这里插入图片描述
面临的问题:集 中 式 学 习 虽 然 在 传 输 数 据 的 过 程 中 使用了密码学进行加密,但是依旧面临着被破解的可能性, 存 在 一 定 的 数 据 安 全 隐 患。

分布式学习

分布式现场学习的提出解决了数据安全和隐私保护的 问题,主要思路是一个系统的数据分别在来源端各自执行机 器 学 习 任 务 ,最 为 典 型 的 例 子 就 是 边 缘 计 算

边缘计算是分布式现场学习的一种实现方式,思路是把需要分析的数据限制在设备的边缘环境中进行现场学习,并将最终的学习结果汇聚到主服务器进行汇总和存储

优点:
无需将敏感数据传输到主服务器进行学习,降低了敏感信息的流通率。
缺点:
由于各方缺乏数据上的沟通,导致一个系统内的数 据无法交汇融合,无法得到最大的发挥,同时导致各方所学习到的知识过于片面,模型缺乏全局性和泛化能力

联邦学习的定义与分类

定义

联邦学习是一种“数据不动,模型动”的学习模式。
在联邦学习的过程中,各参与方不需要交换样本数据及其变体,仅需要交换与模型相关的中间数据及其变体,然后由主服务器将中间数据进行安全聚合并反馈给参与方;参与方则负责根据聚合后的模型信息进行己方模型的更新,有效保证 了各参与方的敏感数据的安全性和隐私性,实现了在融合多个参与方的数据所蕴含的知识的同时保护隐私数据。
在这里插入图片描述

分类

横向联邦学习

横向联邦学习(Horizontal Federated Learning,HFL)指的是两个参与方的数据集存在较大的特征空间重叠的情况。此模式下,设定前提为各参与方的数据都是具备标签空间的。

在横向联邦 学习模式下,用户设备会把本地模型的模型信息传输到主服 务器,主服务器将所有的模型信息进行安全聚合,并将聚合 信息加密后广播给所有的用户设备,最后用户设备会根据主 服 务 器 的 聚 合 信 息 来 更 新 自 身 的 本 地 模 型。
在这里插入图片描述

主要步骤
  • 步骤 1 参与方根据自身数据集,构建本地模型。
  • 步骤 2 参与方将本地模型的模型信息,如梯度,使用 加密算法进行加密,如同态加密,然后把加密后的模型信息 发送给主服务器。
  • 步骤 3 主服务器根据参与方的模型信息进行安全聚 合 ,常 见 的 安 全 聚 合 算 法 有 联 邦 平 均 算 法(Federated Averaging algorithm,FedAvg)以及异构联邦模型的联邦优化 (Federated Optimization in Heterogeneous Network,FedProx) 算法等。
  • 步骤 4 主服务器将聚合后的信息广播给所有参与方。
  • 步骤 5 参与方对主服务器传来的聚合信息进行解密, 据此更新本地模型。
    重复以上步骤,直至达到预设的停止条件。
    在这里插入图片描述
    优点:能在不得知其他参与方源数据的情况下实现各方知识的交换
    缺点:横向联邦不适用于各参与方之间特征空间差异较大的跨领域联邦学习的情况

纵向联邦学习

在具有较多样本数据重叠的参与方之间执行的联邦学习任务,称纵向联邦学习(Vertical Federated Learning, VFL)。此模式下,设定前提为只有一个参与 方 的 数 据 具 备 标 签 空 间 ,其 余 参 与 方 的 数 据 不 具 备 标 签 空 间。然而,在现实生活中,还可能存在两个在样本空间以及 特征空间均存在较小重叠的数据集,此种情况下需要使用联邦迁移学习(Federated Transfer Learning, FTL)。
在这里插入图片描述

例子

纵向联邦学习更适合执行跨行业跨领域的机器学习任 务,如微视与广告商合作提出的联邦广告投放系统。在此系 统中,微视具备包括用户画像和用户点播记录等数据,广告 平台则具备广告信息、产品信息以及用户购买记录等数据; 可见双方的数据集的特征空间截然不同,但是可能存在相同 用户。在此情况下,纵向联邦学习可以在不泄露、不交换双 方样本数据的同时聚合双方的数据特征和知识特征,构建出 一个联邦推荐模型,在提高微视用户的体验度和广告收益的 同时提高广告方的营销收益,实现双赢局面。
在这里插入图片描述

主要步骤
  • 步骤 1 数据对齐。数据对齐的目的是在保护各参与方隐私和数据安全的前提下,找到共同样本并给予共同样本执行联邦学习任务。常见的数据对齐方法有 Li 等提出的算法。(隐私求交)
  • 步骤 2 主服务器发送公钥给各参与方,同时参与方基于共同样本构建初始本地模型;然后将加密后的模型信息, 如梯度、损失值等,发送给主服务器。
  • 步骤 3 主服务器解密参与方的模型信息,同时计算参与方更新模型所必须的计算结果,并传送回参与方。
  • 步骤 4 参与方根据主服务器的计算结果,更新本地模型;同时各方会把中间计算结果共享给其他参与方,用于协助对方计算梯度和损失值等模型信息。
  • 步骤 5-1 对于部分纵向联邦学习算法,参与方还会将 本地模型的模型标识发送给主服务器保存,以便在预测过程 中主服务器知道需要将新数据发送至哪些参与方进行联邦 预测。如 secureBoost 算法中,参与方会把[记录 id,特征,阈 值]以及分割后的样本空间告知主服务器;同时,主服务器会 将当前的处理节点与参与方的划分信息进行关联。因此只有主服务器清楚整棵决策树的结构 ,当有新样本需要预测时,主服务器会将数据发至当前节点所关联的参与方,让参与方利用本地模型计算阈值 ,得知下一步的树搜索方向。
  • 步骤 5-2 特别地,部分需要全体参与方参与预测的纵 向联邦学习算法,如安全联邦线性回归,则不需要参与方告 知主服务器必要的模型标识

联邦迁移学习

学习模式可被总 结为:使用某参与方在当前迭代中已训练好的模型参数,迁 移到另外一个参与方上,协助它进行新一轮模型的训练。典 型 的 联 邦 迁 移 学 习 的 架 构 如 图 8 所 示
在这里插入图片描述

步骤
  • 步骤 1 参与方根据自身数据集构建本地模型。
  • 步骤 2 参与方分别运行各自的本地模型,获得数据表 征,以及一组中间结果,加密后发送给对方。
  • 步骤 3 对方利用接收到的中间结果计算模型的加密梯 度和损失值,加入掩码后发给原参与方。
  • 步骤 4 各方对接收到的信息进行解密后发回给对方, 然后各方利用发解密后的模型信息更新各自的模型。
    不 断 重 复 以 上 步 骤 ,直 至 损 失 收 敛 为 止 。

联邦学习的隐私安全

联邦学习除了解决数据孤岛问题,使得各方数据可以进行联合学习外,还必须解决数据安全问题,实现各方的隐私保护。

安全模型

安全模型是评价一个联邦学习系统是否满足隐私保护 要求的标准之一,要求一个安全的联邦学习系统应当满足以 下几个安全属性
1)隐私性。要求能有效保证系统内部各方的数据安全 和隐私安全。
2)正确性。每个参与方都能输出计算结果,且计算结果 是正确的。
3)公平性。系统能公平看待各方的计算贡献,公平地进 行计算结果的聚合。

攻击模式

  1. 源自服务器的攻击
    • 一个诚实但好奇的服务器会试图从参与方的模型更新 信息中反推出参与方的隐私数据特点等,但不会提供负反馈 信息给参与者,使其错误地更改本地模型。
    • 恶意服务器不仅会试图从参与方的模型更新信息中反推出参与方 的隐私数据特点等,还会恶意篡改聚合模型,或者提供错误 的信息给参与方,破坏参与方的模型性能
    • 混合的服务器敌 手则同时或者不间断地充当诚实但好奇的服务器敌手和恶 意的服务器敌手。
  2. 源自参与者的攻击
    • 有的参与者是诚实但好奇的,它希望窃听其他参与方以 及主服务器共享的数据信息,以期从中推理出某些有用的信息。
    • 还有恶 意的参与者存在,他们的主要目的是反馈错误的模型信息到 主 服 务 器 ,使得联邦模型向着消极的方向更新迭代
    • 同样地,也存在混合类型的敌对参与方
  3. 源自外部的攻击
    • 参与者和服务器之间通信更新时,通道上可能存在外部 窃 听 者 窃 听 信 息 ,并 由 此 反 推 出 一 些 有 关 模 型 等 的 隐 私 数 据,造成联邦内部的通信安全威胁。
  4. 源自系统漏洞的攻击
    • 联邦学习系统本身也可能存在潜在的安全薄弱点,比如 系统架构设计不合理等。这些源自系统的漏洞使得攻击者 可以发起数据攻击以及模型攻击:
    • 数据攻击 主要是指参与者恶意修改数据标签或中间 信息,破坏联邦学习的过程。
    • 模型更新攻击 通过恶意地恶化本地模型,破坏全局模 型的性能。

隐私保护

不经意传输(Oblivious Transfer,OT) 发送方把多条数据基于不同的密钥加密, 并将所有公钥发送给接收方,接收方按需使用特定的公钥生 成随机数,双方再分别进行异或运算等,最后接收方只会得 到特定数据的明文信息,其余数据的运算结果为乱码。

混淆电路(Garbled Circuit,GC) 属于不经意传输的一种应用,基本思路是: 根据运算函数设计出一个电路,加密方首先对该电路进行加 密,即加密方负责电路的生成任务。解密方在不能得知原始 电路的情况下,双方通过不经意传输使得解密方可以获得相应的数据,即解密方负责电路的解密任务。

秘密共享(Secret Sharing,SS) 基本思路是化整为散,将需要计算的秘密分 割成多份小秘密,分别分发给若干个参与方进行处理,最后 将结果进行聚合。在此设计下,因为各方只得到了一小部分 的秘密,无法重构出真实的秘密,保证了数据的安全性和隐私性。

隐私集合交集(Private Set Intersection,PSI) 是一种基于多方的单独输入寻找多方 数据的交集,并返回给特定方的技术。隐私集合交集技术常被用于联邦学习的数据对齐任务中。

差分隐私(Differential Privacy, DP) 基本思路是针对需要保密的数据加入噪声 的处理。该动作虽然有效保护了数据的安全性与隐私性,但噪声的加入会对计算结果产生一定的影响。

同态加密(Homomorphic Encryption,HE) 相较于其他加密算法,同态加密的最大优势 在于在计算过程中不需要频繁进行加解密的操作,可以直接对密文进行计算,且计算结果解密后得到的值,与直接使用 明文计算得到的结果一致,有效提高了计算效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Error attempting to get column ‘add_time‘ from result set

使用Mybatis-plus 重构项目,报错: Error attempting to get column add_time from result set 当前采用技术 1、数据库字段为 datetime 类型 2、使用了mybatis-plus 框架 3、实体类使用了 LocalDateTime 原因参考: Error attempting to ge…

天软特色因子看板(2024.3 第3期)

该因子看板跟踪天软特色因子A08006近一月日度买卖压力2),该因子为近一个月个股每日的相对价格位置,用以刻画股票所受买卖压力,取作 个于0~1间,指标值越大,反映股票在价格相对高位停留的时间越长,所面临的买…

SSM整合项目(Vue3 + Element - Plus 创建项目基础页面)

文章目录 1.配置Vue启动端口1.修改vue.config.js2.启动 2.安装Element Plus命令行输入 npm install element-plus --save 3.修改Vue3默认样式并自定义一个组件1.修改App.vue1.删除原有结构2.启动项目查看 2.修改HomeView.vue3.删除HelloWorld.vue组件4.创建一个组件 src/compon…

PostgreSQL数据优化——死元组清理

最近遇到一个奇怪的问题,一个百万级的PostgreSQL表,只有3个索引。但是每次执行insert或update语句就要几百ms以上。经过查询发现是一个狠简单的问题,数据库表死元组太多了,需要手动清理。 在 PG 中,update/delete 语句…

SQL: 触发器/存储过程/游标的操作

目录 触发器存储过程创建存储过程修改存储过程删除存储过程执行存储过程 游标待续、更新中 触发器 待更新存储过程 定义 是一组TSQL语句的预编译集合,能实现特定的功能 是一种独立的数据库对象,在服务器上创建和运行 类似于编程语言中的过程或函数分类…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

开源的python 游戏开发库介绍

本文将为您详细讲解开源的 Python 游戏开发库,以及它们的特点、区别和应用场景。Python 社区提供了多种游戏开发库,这些库可以帮助您在 Python 应用程序中实现游戏逻辑、图形渲染、声音处理等功能。 1. Pygame 特点 - 基于 Python 的游戏开发库。…

算法(6种思想、7种查找)、与数据结构(数组/链表/栈与队列/树)整理总结

算法 除了这里提到的算法思想和查找算法,算法还有别的类型: 排序算法: 对一组元素进行排序的算法。常见的排序算法包括冒泡排序、快速排序、归并排序等。 图算法: 解决图结构相关问题的算法,例如最短路径问题、最小…

Docker容器Docker桌面配置镜像加速

打开Docker Desktop应用程序,点击设置 具体配置如下: {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buil…

编译Linux内核并修改版本号后缀为学号-Ubuntu22.04中编译安装Linux内核6.7.8

前言:实验课要求下载最新版本Linux内核并修改版本号,本人在Vmware中Ubuntu22.04中实现,花三天时间查阅大量网站资料。记录一下误打误撞成功的过程,希望对你们有帮助。 目录 一、常规安装步骤&猜想Ubuntu与gcc版本过低 二、安…

202003 青少年软件编程(Scratch)等级考试试卷(一级)

202003 青少年软件编程(Scratch)等级考试试卷(一级) 第1题:【 单选题】 在Scratch中,以下哪个区域可以展示编程效果? A:代码区 B:舞台区 C:角色区 D:积木区 【正确答案】: B 【试题解析】…

基于PySide2实现调用本地摄像头抓拍并保存照片(Python版本)

因为横向课题需要,这是其中的一个小小的功能,单独拎出来作为一个小demo,方便后续学习使用 项目实现功能: 点击open按钮,摄像头开启,实时捕获周围图像并显示 点击capture按钮,保存摄像头照片&am…

日期工具的逻辑与数据请求函数的完善

src\libs\utils.js 获取当前日期格式 /*** 获取当前日期格式* param {*} field * returns */ function getNowDate(field) {const date new Date()let year date.getFullYear(),month date.getMonth() 1,day date.getDate()switch (field) {case day:return ${year}-${mo…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…

LLM实施的五个阶段

原文地址:Five Stages Of LLM Implementation 大型语言模型显着提高了对话式人工智能系统的能力,实现了更自然和上下文感知的交互。这导致各个行业越来越多地采用人工智能驱动的聊天机器人和虚拟助手。 2024 年 2 月 20 日 介绍 从LLMs的市场采用情况可以…

LabelImg:一个简单易用的图像标注工具

目录 LabelImg是什么? 如何使用LabelImg进行图像标注? LabelImg的优势和应用场景 在哪里下载它 随着人工智能技术的不断发展,机器学习和深度学习在图像识别、目标检测等领域中得到了广泛的应用。而要训练一个有效的模型,通常需…

Vue3+ts(day02:CompositionAPI、setup)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学,可以点心心支持一下哈(笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】,记录一下学习笔记,用于自己复盘,有需要学…

备忘录怎么导出数据 备忘录数据导出方法

在忙碌的生活中,我时常依赖于备忘录来记录重要的信息,从工作截止日期到生活琐事,无一不靠它来帮我分担记忆的压力。但随着时间的推移,我发现有时候我不仅仅需要在软件内查看这些信息,还需要将它们导出,或许…

【数据库】软件测试之MySQL数据库练习题目

有表如下: Student 学生表 SC 成绩表 Course 课程表 Teacher 老师表 每个学生可以学习多门课程,每一个课程都有得分,每一门课程都有老师来教,一个老师可以教多个学生 1、查询姓‘朱’的学生名单 select * from Student whe…

【深度学习笔记】优化算法——Adam算法

Adam算法 🏷sec_adam 本章我们已经学习了许多有效优化的技术。 在本节讨论之前,我们先详细回顾一下这些技术: 在 :numref:sec_sgd中,我们学习了:随机梯度下降在解决优化问题时比梯度下降更有效。在 :numref:sec_min…