联邦学习(Federated Learning)

2023-05-16

联邦学习简介

联邦学习(Federated Learning)是一种新兴的人工智能基础技术,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。其中,联邦学习可使用的机器学习算法不局限于神经网络,还包括随机森林等重要算法。联邦学习有望成为下一代人工智能协同算法和协作网络的基础。

联邦学习的系统构架

以包含两个数据拥有方(即企业 A 和 B)的场景为例介绍联邦学习的系统构架。该构架可扩展至包含多个数据拥有方的场景。假设企业 A 和 B 想联合训练一个机器学习模型,它们的业务系统分别拥有各自用户的相关数据。此外,企业 B 还拥有模型需要预测的标签数据。出于数据隐私保护和安全考虑,A 和 B 无法直接进行数据交换,可使用联邦学习系统建立模型。联邦学习系统构架由三部分构成。

  • 第一部分:加密样本对齐。

由于两家企业的用户群体并非完全重合,系统利用基于加密的用户样本对齐技术,在 A 和 B 不公开各自数据的前提下确认双方的共有用户,并且不暴露不互相重叠的用户,以便联合这些用户的特征进行建模。

  • 第二部分:加密模型训练。

在确定共有用户群体后,就可以利用这些数据训练机器学习模型。为了保证训练过程中数据的保密性,需要借助第三方协作者 C 进行加密训练。以线性回归模型为例,训练过程可分为以下 4 步: 

第①步:协作者 C 把公钥分发给 A 和 B,用以对训练过程中需要交换的数据进行加密。

第②步:A 和 B 之间以加密形式交互用于计算梯度的中间结果。

第③步:A 和 B 分别基于加密的梯度值进行计算,同时 B 根据其标签数据计算损失,并把结果汇总给 C。C 通过汇总结果计算总梯度值并将其解密。

第④步:C 将解密后的梯度分别回传给 A 和 B,A 和 B 根据梯度更新各自模型的参数。

迭代上述步骤直至损失函数收敛,这样就完成了整个训练过程。在样本对齐及模型训练过程中,A 和 B 各自的数据均保留在本地,且训练中的数据交互也不会导致数据隐私泄露。因此,双方在联邦学习的帮助下得以实现合作训练模型。

  • 第三部分:效果激励。

联邦学习的一大特点就是它解决了为什么不同机构要加入联邦共同建模的问题,即建立模型以后模型的效果会在实际应用中表现出来,并记录在永久数据记录机制(如区块链)上。提供数据多的机构所获得的模型效果会更好,模型效果取决于数据提供方对自己和他人的贡献。这些模型的效果在联邦机制上会分发给各个机构反馈,并继续激励更多机构加入这一数据联邦。以上三部分的实施,既考虑了在多个机构间共同建模的隐私保护和效果,又考虑了以一个共识机制奖励贡献数据多的机构。所以,联邦学习是一个「闭环」的学习机制。

联邦学习优势

  1. 数据隔离,数据不会泄露到外部,满足用户隐私保护和数据安全的需求;
  2. 能够保证模型质量无损,不会出现负迁移,保证联邦模型比割裂的独立模型效果好;
  3. 参与者地位对等,能够实现公平合作;
  4. 能够保证参与各方在保持独立性的情况下,进行信息与模型参数的加密交换,并同时获得成长。

联邦学习分类

联邦学习(Federated Learning, a.k.a. Federated Machine Learning)可以分为三类:

  • 横向联邦学习(Horizontal Federated Learning)
  • 纵向联邦学习(Vertical Federated Learning)
  • 联邦迁移学习(Federated Transfer Learning)

横向联邦学习

数据矩阵(也可以是表格,例如,Excel表格)的横向的一行表示一条训练样本,纵向的一列表示一个数据特征(或者标签)。通常用表格查看数据(例如,病例数据),用一行表示一条训练样本比较好,因为可能有很多条数据。

横向联邦学习,适用于参与者的数据特征重叠较多,而样本ID重叠较少的情况。

比如有两家不同地区的银行,它们的用户群体分别来自各自所在的地区,相互的交集很小。但是,它们的业务很相似,因此,记录的用户特征是相同的。此时,我们就可以使用横向联邦学习来构建联合模型。

“横向”二字来源于数据的“横向划分(horizontal partitioning, a.k.a. sharding)”。如图1所示例,联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数据是横向划分的,称为横向联邦学习。图2给出了一个横向划分表格的示例。横向联邦使训练样本的总数量增加

横向联邦学习也称为特征对齐的联邦学习(Feature-Aligned Federated Learning),即横向联邦学习的参与者的数据特征是对齐的,如图3所示例。“特征对齐的联邦学习”这个名字有点长,还是用“横向联邦学习”比较好。

图1 横向联邦学习示例,横向联邦使训练样本量增大

图2 横向(按行)划分数据示例 

图3 横向联邦学习,也称为特征对齐的联邦学习,横向联邦使训练样本量增大

横向联邦学习的学习过程:

  1. 参与者在本地计算训练梯度,使用加密,差分隐私或秘密共享技术加密梯度的更新,并将加密的结果发送到服务器;
  2. 服务器在不了解有关任何参与者的信息的情况下,聚合各用户的梯度更新模型参数;
  3. 服务器将汇总结果模型发回给各参与者;
  4. 各参与者使用解密的梯度更新各自的模型。

纵向联邦学习

纵向联邦学习,适用于参与者训练样本ID重叠较多,而数据特征重叠较少的情况。

比如有两个不同的机构,一家是某地的银行,另一家是同一个地方的电商。它们的用户群体很有可能包含该地的大部分居民因此用户的交集较大。但是,由于银行记录的都是用户的收支行为与信用评级,而电商则保有用户的浏览与购买历史,因此它们的用户特征交集较小。

“纵向”二字来源于数据的“纵向划分(vertical partitioning)”。如图4所示例,联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训练数据是纵向划分的,称为纵向联邦学习。图5给出了一个纵向划分表格的示例。纵向联邦学习需要先做样本对齐,即找出参与者拥有的共同的样本,也就叫“数据库撞库(entity resolution, a.k.a. entity alignment)”。只有联合多个参与者的共同样本的不同特征进行纵向联邦学习,才有意义。纵向联邦使训练样本的特征维度增多

纵向联邦学习也称为样本对齐的联邦学习(Sample-Aligned Federated Learning),即纵向联邦学习的参与者的训练样本是对齐的,如图6所示例。“样本对齐的联邦学习”这个名字有点长,还是用“纵向联邦学习”比较好。

 图4 纵向联邦学习示例,纵向联邦使训练数据特征维度增加

图5 纵向(按列)划分数据示例

图6 纵向联邦学习,也称为样本对齐的联邦学习,纵向联邦使训练数据特征维度增加

纵向联邦学习的学习过程:

第一步:第三方C加密样本对齐。是在系统级做这件事,因此在企业感知层面不会暴露非交叉用户。

第二步:对齐样本进行模型加密训练:

  1. 合作者C创建加密对,将公钥发送给A和B;
  2. A和B分别计算和自己相关的特征中间结果,并加密交互,用来求得各自梯度和损失;
  3. A和B分别计算各自加密后的梯度并添加掩码发送给C,同时B计算加密后的损失发送给C;
  4. C解密梯度和损失后回传给A和B,A、B去除掩码并更新模型。

联邦迁移学习

联邦迁移学习,适用于参与者训练样本ID和数据特征重叠都较少的情况。

我们不对数据进行切分,而利用迁移学习来克服数据或标签不足的情况。这种方法叫做联邦迁移学习。

比如有两个不同机构,一家是位于中国的银行,另一家是位于美国的电商。由于受地域限制,这两家机构的用户群体交集很小。同时,由于机构类型的不同,二者的数据特征也只有小部分重合。在这种情况下,要想进行有效的联邦学习,就必须引入迁移学习,来解决单边数据规模小和标签样本少的问题,从而提升模型的效果。

小节

横向联邦学习的名称来源于训练数据的“横向划分”,也就是数据矩阵或者表格的按行(横向)划分。不同行的数据有相同的数据特征,即数据特征是对齐的。

纵向联邦学习的名称来源于训练数据的“纵向划分”,也就是数据矩阵或者表格的按列(纵向)划分。不同列的数据有相同的样本ID,即训练样本是对齐的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

联邦学习(Federated Learning) 的相关文章

随机推荐

  • 笔记本单/双网卡如何同时上内外网

    一些公司是只有内网没有外网的 xff0c 如果要上内网的同时上外网 xff0c 比如连WiFi xff0c 如何配置 xff1f 单网卡 win 43 R 进入输入cmd 进入控制台 xff0c 输入ipconfig查看内外网的ip信息 x
  • go 实现快速排序

    一 点睛 快速排序 xff08 Quicksort xff09 是对冒泡排序的一种改进 基本思想是 xff1a 通过一趟排序将要排序的数据分割成独立的两部分 xff0c 其中一部分的所有数据都比另外一部分的所有数据都要小 xff0c 然后再
  • Chrome浏览器无法加载已解压的.crx文件的解决办法

    1 找到crx文件 xff0c 将 crx文件后缀名改为zip 并解压成文件夹 2 在扩展程序页面点击加载已解压的扩展程序 选择上面解压的文件夹 点击确定即可安装完成
  • 软件测试模型与软件测试流程5个阶段(重)

    软件测试流程 xff1a 需求分析阶段 软件设计和编码阶段 xff08 进行单元测试 xff09 集成 系统 验收测试阶段 软件测试模型 xff1a 传统 xff1a 项目计划 需求分析 软件设计 程序开发 软件测试 集成维护 V模型 xf
  • Android Studio如何卸载干净?

    想要卸载Android Studio xff1f 跟着步骤做 xff0c 还愁卸载不干净 xff1f 1 卸载前 xff0c 一定要把Android Studio退出 xff0c 接着打开 控制面板 卸载程序 Android Studio
  • 观华为模拟面试大赛有感

    1 面试注重个人收获与自我提升 xff0c 工作注重整体利益 2 遇到问题先从自身寻找问题 xff0c 努力沟通并解决 3 稳 回答问题先思考一会儿 xff0c 不要急躁 狠 xff1a 一语中的 xff0c 切中要害 xff0c 简洁有力
  • linux关于消息队列中消息的大小的限制

    在消息队列中 xff0c 例如函数msgsnd int msqid const void msgp size t msgsz int msgflg 这个函数调用的时候 xff0c msgsz最大只能为8192 xff0c 也就是2的16次方
  • MySQL事务隔离级别详解

    MySQL事务隔离级别详解 SQL标准定义了4类隔离级别 xff0c 包括了一些具体规则 xff0c 用来限定事务内外的哪些改变是可见的 xff0c 哪些是不可见的 低级别的隔离级一般支持更高的并发处理 xff0c 并拥有更低的系统开销 R
  • php 发送与接收流文件

    php 发送与接收流文件 sendStreamFile php 把文件以流的形式发送 receiveStreamFile php 接收流文件并保存到本地 sendStreamFile php lt php php 发送流文件 64 para
  • php 上传图片保存到数据库例子

    php 上传图片保存到数据库例子 php 上传图片 xff0c 一般都使用move uploaded file 方法保存在服务器上 但如果一个网站有多台服务器 xff0c 就需要把图片发布到所有的服务器上才能正常使用 xff08 使用图片服
  • 结构体最后的长度为0或1数组的作用(转载)

    其实很早在看LINUX下就看到这个东西 xff0c 后来在MFC内存池里同样也看到了类似的东西 xff0c 还依照MFC写过一个类似的小内存池 xff0c xff08 MFC用的是return this 43 1 xff09 后来在李先静的
  • chmod 755和chmod 4755的区别

    chmod 755和chmod 4755的区别 from xff1a http hi baidu com angivo blog item d679237e467f68320dd7da10 html chmod是Linux下设置文件权限的命
  • spring的依赖注入

    一 点睛 控制反转和依赖注入在Spring环境下是等同的概念 xff0c 控制反转是通过依赖注入实现的 所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系 xff0c 而不是通过对象本身负责自己的创建和解决自己的依赖 依赖注入的主要目
  • VxWorks网络编程

    vxworks实现了与BSD4 4 TCP IP兼容的网络协议栈 xff0c 并且其实时性 较之有很大提高 xff0c 这使得基于BSD4 4 UNIX Socket的应用程序可以很方便地移植到vxworks中去 1 1vxworks网络组
  • su: must be suid to work properly错误

    内核 linux2 6 21 文件系统 busybox1 19 2 yaffs2 开发板 xff1a loongson 1b 嵌入式文件系统一般用户执行su root切换根用户提示错误 xff1a su must be suid to wo
  • Tslib移植与分析

    目标平台 xff1a LOONGSON 1B开发板 xff08 mips32指令集 xff09 编译平台 xff1a x86PC VMware6 5 Ubuntu10 04 xff08 下面简称 ubuntu系统 xff09 或 xff1a
  • Linux时间函数

    系统环境 xff1a ubuntu10 04 简介 本文旨在为了解Linux 各种时间类型与时间函数提供技术文档 1 Linux下常用时间类型 Linux下常用时间类型有四种 xff1a time t struct tm struct ti
  • 基于UDP协议的网络编程

    下图是典型的UDP客户端 服务器通讯过程 下图出自 Unix网络编程 以下是简单的UDP服务器和客户端程序 xff0c 服务端接收来自客户端的字符 xff0c 转成大写后返送给客户端 备注 xff1a 程序在ubuntu10 04经过编译验
  • 14、交叉编译cairo

    14 交叉编译cairo 目标平台 xff1a LOONGSON 1B 开发板 内核 xff1a Linux 3 0 编译平台 xff1a ubuntu10 04 交叉工具链 xff1a gcc 3 4 6 2f 一 简介 在信息领域中 x
  • 联邦学习(Federated Learning)

    联邦学习简介 联邦学习 xff08 Federated Learning xff09 是一种新兴的人工智能基础技术 xff0c 其设计目标是在保障大数据交换时的信息安全 保护终端数据和个人数据隐私 保证合法合规的前提下 xff0c 在多参与