当前位置: 首页 > 编程日记 > 正文

如何全面认识联邦学习

作者 | 王健宗 李泽远 何安珣

来源 | 大数据DT

头图 | 下载于视觉中国

什么是联邦学习

联邦学习是一种带有隐私保护、安全加密技术的分布式机器学习框架,旨在让分散的各参与方在满足不向其他参与者披露隐私数据的前提下,协作进行机器学习的模型训练。

经典联邦学习框架的训练过程可以简单概括为以下步骤:

  1. 协调方建立基本模型,并将模型的基本结构与参数告知各参与方;

  2. 各参与方利用本地数据进行模型训练,并将结果返回给协调方;

  3. 协调方汇总各参与方的模型,构建更精准的全局模型,以整体提升模型性能和效果。

联邦学习框架包含多方面的技术,比如传统机器学习的模型训练技术、协调方参数整合的算法技术、协调方与参与方高效传输的通信技术、隐私保护的加密技术等。此外,在联邦学习框架中还存在激励机制,数据持有方均可参与,收益具有普遍性。

Google首先将联邦学习运用在Gboard(Google键盘)上,联合用户终端设备,利用用户的本地数据训练本地模型,再将训练过程中的模型参数聚合与分发,最终实现精准预测下一词的目标。

除了分散的本地用户,联邦学习的参与者还可以是多家面临数据孤岛困境的企业,它们拥有独立的数据库但不能相互分享。联邦学习通过在训练过程中设计加密式参数传递代替原有的远程数据传输,保证了各方数据的安全与隐私,同时满足了已出台的法律法规对数据安全的要求。

联邦学习的架构思想

联邦学习的架构分为两种,一种是中心化联邦(客户端/服务器)架构,一种是去中心化联邦(对等计算)架构。

  • 针对联合多方用户的联邦学习场景,一般采用的是客户端/服务器架构,企业作为服务器,起着协调全局模型的作用;

  • 而针对联合多家面临数据孤岛困境的企业进行模型训练的场景,一般可以采用对等架构,因为难以从多家企业中选出进行协调的服务器方。

在客户端/服务器架构中,各参与方须与中央服务器合作完成联合训练,如图2-1所示。当参与方不少于两个时,启动联邦学习过程。

▲图2-1 联邦学习系统客户端/服务器架构

在正式开始训练之前,中央服务器先将初始模型分发给各参与方,然后各参与方根据本地数据集分别对所得模型进行训练。接着,各参与方将本地训练得到的模型参数加密上传至中央服务器。中央服务器对所有模型梯度进行聚合,再将聚合后的全局模型参数加密传回至各参与方。

在对等计算架构中,不存在中央服务器,所有交互都是参与方之间直接进行的,如图2-2所示。

▲图2-2 联邦学习对等系统架构

当参与方对原始模型训练后,需要将本地模型参数加密传输给其余参与联合训练的数据持有方。因此,假设本次联合训练有n个参与方,则每个参与方至少需要传输2(n-1)次加密模型参数。

在对等架构中,由于没有第三方服务器的参与,参与方之间直接交互,需要更多的加解密操作。在整个过程中,所有模型参数的交互都是加密的。目前,可以采用安全多方计算、同态加密等技术实现。全局模型参数的更新可运用联邦平均等聚合算法。当需要对参与方数据进行对齐时,可以采用样本对齐等方案。

联邦学习的应用场景

根据各方数据集的贡献方式不同,可以将联邦学习具体分为横向联邦学习、纵向联邦学习和联邦迁移学习,每种技术细分对应不同场景。

1. 横向联邦学习

如图2-3所示,横向联邦学习适用于各数据持有方的业务类型相似、所获得的用户特征多而用户空间只有较少重叠或基本无重叠的场景。例如,各地区不同的商场拥有客户的购物信息大多类似,但是用户人群不同。

图2-3 横向联邦学习图解

横向联邦学习以数据的特征维度为导向,取出参与方特征相同而用户不完全相同的部分进行联合训练。在此过程中,通过各参与方之间的样本联合,扩大了训练的样本空间,从而提升了模型的准确度和泛化能力。

2. 纵向联邦学习

如图2-4所示,纵向联邦学习适用于各参与方之间用户空间重叠较多,而特征空间重叠较少或没有重叠的场景。例如,某区域内的银行和商场,由于地理位置类似,用户空间交叉较多,但因为业务类型不同,用户的特征相差较大。

图2-4 纵向联邦学习图解

纵向联邦学习是以共同用户为数据的对齐导向,取出参与方用户相同而特征不完全相同的部分进行联合训练。因此,在联合训练时,需要先对各参与方数据进行样本对齐,获得用户重叠的数据,然后各自在被选出的数据集上进行训练。

此外,为了保证非交叉部分数据的安全性,在系统级进行样本对齐操作,每个参与方只有基于本地数据训练的模型。

3. 联邦迁移学习

联邦迁移学习是对横向联邦学习和纵向联邦学习的补充,适用于各参与方用户空间和特征空间都重叠较少的场景。例如,不同地区的银行和商场之间,用户空间交叉较少,并且特征空间基本无重叠。在该场景下,采用横向联邦学习可能会产生比单独训练更差的模型,采用纵向联邦学习可能会产生负迁移的情况。

联邦迁移学习基于各参与方数据或模型之间的相似性,将在源域中学习的模型迁移到目标域中。大多采用源域中的标签来预测目标域中的标签准确性。

联邦学习的优势与前景

分布式机器学习框架通过集中收集数据,再将数据进行分布式存储,将任务分散到多个CPU/GPU机器上进行处理,从而提高计算效率。与之不同的是,联邦学习强调将数据一开始就保存在参与方本地,并且在训练过程中加入隐私保护技术,拥有更好的隐私保护特性。

各参与方的数据一直保存在本地,在建模过程中,各方的数据库依然独立存在,而联合训练时进行的参数交互也是经过加密的,各方通信时采用严格的加密算法,难以泄露原始数据的相关信息,因而联邦学习保证了数据的安全与隐私。

此外,联邦学习技术可使分布式训练获得的模型效果与传统中心式训练效果相差无几,训练出的全局模型几乎是无损的,各参与方能够共同获益。

在大数据与人工智能快速发展的当下,联邦学习解决了人工智能模型训练中各方数据不可用、隐私泄露等问题,因而应用前景十分广阔。联邦学习可用于在海量数据集下的模型训练,实现部门、企业及组织之间的联动。例如:

  • 智慧金融领域中,可以根据多方数据建立更准确的业务模型,从而实现合理定价、定向业务推广、企业风控评定等;

  • 智慧城市中,实现各政府机构之间、企业与政府之间的联合,实现更准确的实时交通预测,更简化的机关办事步骤,更高效的信息内容查询,更全面的安全防控检测等;

  • 智慧医疗中,联邦学习可以综合各医院之间的数据,提高医疗影像诊断的准确性,预警病人的身体情况等。

上述举例只是联邦学习可用领域中的一部分,未来它将覆盖更广阔的应用场景。

小结

本文对联邦学习进行了系统性概述。联邦学习基于分布式机器学习框架,拥有严格的隐私保护策略,保证了各参与方数据的安全。联邦学习有客户端/服务器架构和对等架构两种架构,不同的架构下交互方式不同。

不论是在何种架构下,联邦学习过程都可以保证隐私安全,符合数据条例和参与方共同受益原则。基于场景中各方数据的特征对比,联邦学习可以分为横向联邦学习、纵向联邦学习和联邦迁移学习。此外,在智慧城市、智慧医疗、智慧金融等实际场景中,联邦学习拥有广阔的应用和发展前景。

更多精彩推荐  Python 爬影评,《悬崖之上》好看在哪里?
美国燃油“动脉”被黑客切断,网络安全走向哪里?专访山石网科热文 | 卷积神经网络入门案例,轻松实现花朵分类
AI 3D 传感器市场竞争白热化,中国掌握自主可控核心技术时不我待!小心!你家的 IoT 设备可能已成为僵尸网络“肉鸡”
点分享点收藏点点赞点在看

相关文章:

android 各种控件颜色值的设置(使用Drawable,Color)

在Android中&#xff0c;如果需要改变控件默认的颜色&#xff0c;包括值的颜色&#xff0c;需要预先在strings.xml中设置&#xff0c;类似字符串&#xff0c;可以反复调用。Android中颜色可以使用drawable或是color来定义。本例中strings.xml内容&#xff1a;<a href"h…

[20170914]tnsnames.ora的管理.txt

[20170914]tnsnames.ora的管理.txt--//昨天朋友讲tnsnams.ora的内容太长了,而且许多不需要的.管理不方便.我记得以前写[20150409]tnsnames.ora与IFILE.txt.链接--//http://blog.itpub.net/267265/viewspace-1561107/--//这样你可以按照某种分类管理.实际上这个我也是以前看别人…

C# ref和out关键字

ref和out关键字初解参数可以通过引用和值传递给方法。通过引用传递给方法的变量可以有调用它的方法作自由改变&#xff0c;所作的修改会影响原来的变量的值&#xff1b;在C#中&#xff0c;除非特别说明&#xff0c;所有的参数都是值传递。 这是默认情况&#xff0c;也可以使用r…

王炸不断,半导体巨头们到底在打什么牌?

作者 | 马超 责编 | 欧阳姝黎出品 | CSDN博客头图 | 下载于视觉中国最近整个半导体行业实在风起云涌&#xff0c;IBM 推出了 2nm 的芯片&#xff0c;苹果春季发布会上搭载 M1 的 iPad Pro 再度炸场、四月中旬 ARM 推出了新一代的 ARMv9、英特尔也拿出了最的至强三代 Ice Lake-…

什么是软件定义数据中心

近年来&#xff0c;“云计算”已经成为一个被滥用的名称&#xff0c;现在几乎所有的IT公司的项目都用云计算来冠名&#xff0c;似乎贴上了“云”标签&#xff0c;立刻变得高大上起来。提到云计算&#xff0c;很多人第一反应都是&#xff0c;亚马逊的AWS服务&#xff0c;或者谷歌…

React Native常用组件之ListView

1. ListView常用属性 ScrollView 相关属性样式全部继承dataSource ListViewDataSource 设置ListView的数据源initialListSize number 设置ListView组件刚刚加载的时候渲染的列表行数&#xff0c;用这个属性确定首屏或者首页加载的数量&#xff0c;而不是花大量的时间渲染加载很…

Oracle中merge into的使用

http://blog.csdn.net/yuzhic/article/details/1896878 http://blog.csdn.net/macle2010/article/details/5980965 该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中&#xff0c;使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了…

C#运算符资料

☆C#的运算符定义只有四种形式:--------------------------------------- ①public static 返回类型 operator ?(单形参) ②public static 返回类型 operator ?(双形参) ③public static implicit operator 隐转目标类型(单源类型形参) ④public static explicit operator 显…

厉害了,网易伏羲三篇论文上榜 AI 顶会 ACL

近日&#xff0c;国际AI顶尖学术会议ACL 2021&#xff08;Annual Meeting of the Associationfor Computational Linguistics&#xff09;公布了论文录用结果。网易伏羲共有三项研究被本届ACL收录&#xff0c;内容包括自然语言生成、无监督文本表示学习等方向&#xff0c;相关技…

软件架构设计学习总结(1):标准Web系统的架构分层

1、架构体系分层图 在上图中我们描述了Web系统架构中的组成部分。并且给出了每一层常用的技术组件/服务实现。需要注意以下几点&#xff1a; 系统架构是灵活的&#xff0c;根据需求的不同&#xff0c;不一定每一层的技术都需要使用。例如&#xff1a;一些简单的CRM系统可能在产…

iOS 设置UILabel 的内边距

iOS 设置UILabel 的内边距 - (void)drawTextInRect:(CGRect)rect {UIEdgeInsets insets {0, 5, 0, 5};[super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)]; } 参考&#xff1a;http://stackoverflow.com/questions/3476646/uilabel-text-margin http://unmi.cc/uila…

从程序媛到启明星辰集团云安全总经理,郭春梅博士揭秘云时代安全攻防之道...

从无序中寻找踪迹&#xff0c;从眼前事探索未来。2021 年正值黄金十年新开端&#xff0c;CSDN 以中立技术社区专业、客观的角度&#xff0c;深度探讨中国前沿 IT 技术演进&#xff0c;推出年度重磅企划栏目——「拟合」&#xff0c;通过对话企业技术高管大咖&#xff0c;跟踪报…

javascript 异步实现方案

1、回调函数 fn1( fn2 ); 2、事件监听 fn1.on(done, fn2);function fn1() {setTimeout(function(){fn1.trigger(done);},1000) }3、发布-订阅 &#xff08;1&#xff09;fn2像“信号中心”订阅了done信号Jquery.subscribe("done", fn2);(2) fn1向信号中心发布信…

csc命令帮助

大家还是要常用用csc&#xff0c;个人感觉有时vs有不少不太方便的东西。C:/>csc /help |more Microsoft (R) Visual C# 编译器版本7.00.9254 [CLR version v1.0.2914] 版权所有 (C) Microsoft Corp 2000-2001。保留所有权利。 Visual C# 编译器选项…

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(三)(网内首发超详细版)...

3.3 权限配置样例注意&#xff1a;* 权限配置文件中出现的用户名必须已在用户配置文件中定义。* 对权限配置文件的修改立即生效&#xff0c;不必重启svn。用户组格式&#xff1a;[groups] ,其中&#xff0c;1个用户组可以包含1个或多个用户&#xff0c;用户间以逗号分隔。版本库…

Java知识全面总结:并发编程+JVM+设计模式+常用框架+....

本文整理的Java知识体系主要包括基础知识&#xff0c;工具&#xff0c;并发编程&#xff0c;数据结构与算法&#xff0c;数据库&#xff0c;JVM&#xff0c;架构设计&#xff0c;应用框架&#xff0c;中间件&#xff0c;微服务架构&#xff0c;分布式架构等内容。同时也有作为程…

JPA主键生成策略

GeneratedValue&#xff1a; 为一个实体类生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键)。它有两个属性&#xff0c;分别是strategy和generator。 generator&#xff1a;默认为空字符串&#xff0c;它定义了主键生成器的名称&#xff0c;对应的生成器…

Silverlight 预定义颜色速查表

预定义颜色可以使用 SolidColorBrush 绘制&#xff0c;它使用预定义纯色。这可以是 Colors 的静态属性 (Property) 名称&#xff0c;也可以是指定为 XAML 属性 (Attribute) 值时直接作为字符串处理的另外一组颜色名称中的一个。有关已命名颜色表以及如何在代码中指定已命名颜色…

腾讯云TDSQL-A发布公有云版本 支持第七次全国人口普查等海量数据场景

5月18日&#xff0c;腾讯云发布首款全自研分布式分析型数据库TDSQL-A&#xff0c;全力应对海量数据实时分析需求。 这是腾讯云数据库在品牌升级后的首次新品发布&#xff0c;意味着腾讯云将这种多年积累的经验更加广泛全面地向社会行业开放&#xff0c;助力行业推进数字化进程…

Spring Boot 和 testNG 和 eclipse背景色

通过之前的博文&#xff0c;我们已经验证&#xff0c;Spring环境下完成access数据访问没有问题。下面我们直接在Spring环境下部署我们的升级项目。1.导入Spring BootSpring Boot是Spring的子项目&#xff0c;用来解决项目配置复杂性的问题&#xff0c;降低Spring的使用门槛使得…

免费丨AI内行盛会!2021北京智源大会带你与图灵奖和200+位大牛一起共话AI

数据在爆炸&#xff0c;AI在茁壮。从2012到2018年&#xff0c;深度学习模型的计算能力增长了30万倍&#xff0c;早已打破摩尔定律。可以预见的是&#xff0c;未来必然属于超大数据和超大模型&#xff0c;而破纪录的中文预训练生成语言模型智源“悟道2.0”发布在即&#xff0c;A…

LVM创建,缩减及快照备份

管理逻辑卷工具&#xff1a;LVM逻辑卷&#xff1a;灵活可动态存储的一种逻辑上的存储最底层需要通过工具变成“物理卷”&#xff1a;存储设备&#xff0c;Raid &#xff0c;分区等VG:&#xff08;1&#xff09;底层设备容量之和。&#xff08;2&#xff09;PE大小*数量卷组上面…

前端 排序算法总结

前言 排序算法可能是你学编程第一个学习的算法&#xff0c;还记得冒泡吗&#xff1f; 当然&#xff0c;排序和查找两类算法是面试的热门选项。如果你是一个会写快排的程序猿&#xff0c;面试官在比较你和一个连快排都不会写的人的时候&#xff0c;会优先选择你的。那么&#xf…

django 快速实现登录

前言 对于web开来说&#xff0c;用户登陆、注册、文件上传等是最基础的功能&#xff0c;针对不同的web框架&#xff0c;相关的文章非常多&#xff0c;但搜索之后发现大多都不具有完整性&#xff0c;对于想学习web开发的新手来说不具有很强的操作性&#xff1b;对于web应用来说&…

“云智一体”的全场景智能视频技术是什么?

全视频时代到来&#xff0c;各行各业对视频的应用、体验和效能提出全新升级需求&#xff0c;AI与云计算的发展则为智能视频进入新阶段注入充足动力。5月13日&#xff0c;百度智能云“云智技术论坛-智能视频专场”活动在北京举行&#xff0c;重磅发布了智能视频云3.0全景图。百度…

背水一战 Windows 10 (18) - 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue...

原文:背水一战 Windows 10 (18) - 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue[源码下载] 背水一战 Windows 10 (18) - 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue作者&#xff1a;webabcd介绍背水一战 Windows 10…

2-sat问题,输出方案,几种方法(赵爽的论文染色解法+其完全改进版)浅析 / POJ3683...

本文原创于 2014-02-12 09:26。 今复习之用&#xff0c;有新体会&#xff0c;故重新编辑。 2014-02-12 09:26&#xff1a; 2-sat之第二斩&#xff01;昨天看了半天论文&#xff08;赵爽的和俉昱的&#xff09;&#xff0c;终于看明白了&#xff01;好激动有木有&#xff01;终…

C#方法/函数

本节课向你介绍C#的方法&#xff0c;其目的是&#xff1a; 1.了解方法的结构格式2.了解静态和实例方法之间的区别3.学会实例对象的使用4.学会如何调用实例化的对象5.学会方法的四种参数类型的使用6.学会使用"this"引用以往&#xff0c;对于每个程序来说&#xff0c;所…

Python 的一万种用法:生成字符视频

作者 | ZackSock来源 | 新建文件夹X头图 | 下载于视觉中国前言在之前也写过生成字符视频的文章&#xff0c;但是使用的是命令行窗口输出&#xff0c;效果不是很好&#xff0c;而且存在卡顿的情况。于是我打算直接生成一个mp4的字符视频。大致思路和之前一样&#xff1a;Python2…

Codeforces 862B - Mahmoud and Ehab and the bipartiteness

862B - Mahmoud and Ehab and the bipartiteness 思路&#xff1a;先染色&#xff0c;然后找一种颜色dfs遍历每一个点求答案。 代码&#xff1a; #include<bits/stdc.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset(a,b,si…