联邦学习实战
  • 推荐0
  • 收藏2
  • 浏览717

联邦学习实战

杨强 (作者) 

  • 书  号:978-7-121-40792-5
  • 出版日期:2021-04-20
  • 页  数:340
  • 开  本:16(185*240)
  • 出版状态:上市销售
  • 维护人:刘皎
纸质版 ¥119.00
数据孤岛和隐私保护已经成为制约人工智能发展的关键因素。联邦学习作为一种新型的隐私
保护计算方案,在数据不出本地的前提下,能有效联合各参与方联合建模,从而实现“共同富裕”,
成为当下人工智能领域备受关注的热点。
本书以实战为主(包括对应用案例的深入讲解和代码分析),兼顾对理论知识的系统总结。
全书由五部分共19 章构成。第一部分简要介绍了联邦学习的理论知识点;第二部分介绍如何使用Python 和FATE 进行简单的联邦学习建模;第三部分是联邦学习的案例分析,筛选了经典案例进行讲解,部分案例用Python 代码实现,部分案例采用FATE 实现;第四部分主要介绍和联邦学习相关的高级知识点,包括联邦学习的架构和训练的加速方法等;第五部分是回顾与展望。
本书适合对联邦学习和隐私保护感兴趣的高校研究者、企业研发人员阅读。
经典案例,一手实践经验,配套Python代码,丰富的视频资源
人工智能和大数据技术使我们对未来的社会产生了很多期待,但同时这些高端技术的发展瓶颈也越来越清晰。我们知道,AI 的力量来自大数据,但我们在日常工作和生活中所面临的实际场景往往只有小数据。在法律这个应用领域,获取一个完整的案例样本往往需要很多的时间和资源:每一个案子的处理要经过很多步骤,从立案到结案可能需要几年的时间;毫无疑问,如此积累起来的完整案件样本数量非常少。金融领域也是如此,比如积累的洗钱案例数量可能非常有限,在风控建模中,如果把反洗钱案例看成正样例,那么这样的正样例数据非常珍贵。在医疗领域,CT 胸片的自动检验和诊断需要专业医生来标注数据,但医生的时间十分宝贵,因此对于罕见疾病,能获得的病例数据更是少之又少。

这些例子说明,在现实中能获取的往往是小数据。如果把这个情况延展开来,我们会看到,在人工智能的主战场,如无人车、智能终端等,每一台设备上的数据也是有限的,每一个数据集都不足以建立可用的机器学习模型。

那么,我们可不可以把这些数据汇聚起来形成大数据呢?长久以来,工业界聚集大数据的办法就是在云端上传众多终端的数据集,形成大数据。我们熟知的包括图像训练数据集如mageNet,语音训练数据集如Common Voice,自然语言训练数据集如bAbi 等。

应该说,用这种方式获取的大数据为人工智能的发展开创了很好的先例。但是,现代社会不仅要有强大的技术,同时对技术的社会责任也有严格的限定。随着人工智能和大数据技术的不断发展,社会和政府也对数据的权益和保护有了逐步完善的监管法律法规。例如,欧盟在2018 年施行了《通用数据保护条例》(General Data Protection Regulation,简称GDPR),我国对数据的保护也日趋完善,从国家机关到地方政府,各行各业的数据隐私保护立法日趋完善。所以,一方面人工智能和大数据技术为人类的发展提供了光明的前景和技术保障;另一方面,人类自身的权益保护又限制了数据按照粗放方式进行简单的汇聚。那么,如何在这两者之间找到平衡点,继续推动技术向前发展呢?

在这里,我们给大家讲一个小故事。2018 年,本书的作者之一杨强教授在瑞典举办的国际人工智能大会(IJCAI)上遇到了瑞典的一位工业部长,进行了一些问答交流。对于GDPR 会不会限制欧洲人工智能的成长这一问题,这位部长的回答是:虽然看上去GDPR 会限制人工智能的发展,但是他希望欧洲公司有提出一些满足GDPR 的人工智能方案的理想。今天看来,这个想法是非常好的,因为如果真的做到了,人工智能的技术就能够螺旋式上升,掌握这一技术的人就可以走在世界的前列。

我们看到,随着数字经济的发展,数字经济也演变成“数据经济”,其特点是数据本身成为了重要的生产要素,而数据的交易和流通要满足数据监管及保护数据隐私的要求。
这个趋势在全世界范围内将形成一个新的数据化潮流,因为不管是政府还是社会,人们对数据隐私的安全保护都是非常在意的。今天,一项新技术正在中国蓬勃发展,这项技术就是联邦学习。

联邦学习的技术产生于上述的社会和法律背景下。联邦学习的目的是,不管在面对单个消费者的to C 场景,还是面对企业或机构的to B 场景,都希望各自的数据可以不出本地,数据集不为其他人所有,保护用户隐私和数据权益。在这一要求下,数据的价值可以同时得到充分体现。机器学习模型在极小损失的前提下,能够达到和传统数据汇聚几乎一样的效果,并且这个模型能够为所有参与者使用。

不久前,本书的作者团队出版了世界第一本联邦学习的书籍,包括中文和英文版。在该书中,我们做了一个形象的比喻来描述联邦学习的思想:把联邦学习训练模型的过程类比成喂养一只羊。过去的做法是把草放到羊圈里喂养,就像把数据聚合到中心服务器来建立机器学习模型。但出于隐私利益的考虑,草不能离开本地。为了满足这一要求,且让羊持续得到喂养,我们可以带着羊去访问各个草场,同时保证在这个过程中不泄露隐私。这样,羊可以长大,隐私也可以受到保护。

联邦学习就是采用上面这种分布式隐私计算的思想:在多方合作建模过程中,各方不交换原始数据;在建立模型的过程中,各方可以交换加密后的参数,以保护用户隐私。这就需要我们做几个层面的研究和工程实现,包括分布式建模、安全合规、抵御攻击、网络设计、计算效率、加密算法、边缘计算、生态建设和激励机制等。所以,联邦学习是一个多学科交融的领域,也特别适合跨学科研究。

关于联邦学习,我们常说的有两句话。第一句话是“数据不动模型动”,这是联邦学习的核心,让模型在不同机构之间、端和云之间进行沟通交流。它产生的效果是什么?就是第二句话——“数据可用不可见”。这里所说的不可见,是别人看不见你的数据,你也看不见别人的数据,即数据和模型都保留在本地,建模的过程也保证了数据的安全。

本书在阐述联邦学习原理的同时,着重描述了联邦学习的落地应用实践,以联邦学习开源平台FATE 为基础,涵盖多个领域。既可以为工业实践者提供很好的应用案例,也可以手把手地为初学者引路。读者可以在粗通人工智能及机器学习基本知识的前提下,在本书指引下深入了解人工智能项目落地实践的过程。

总之,我们建立的人工智能体系离不开人的因素,而保护人的隐私是当下人工智能发展中特别重要的一个方面。这也是从政府到个人、企业及社会的要求。另外,人工智能的发展也需要保护模型的安全,保证用户的隐私不被泄露,使用户的权益得到保障。我们衷心希望读者朋友们能够从本书中窥见人工智能的未来,并动手建立负责任的、可信赖的、安全的人工智能和大数据的社会。

本书的部分案例章节有对应的代码实现,读者可以在GitHub 网站上查找本书配套的资源。其中,第3 章、第10 章和第15 章的案例使用了Python 实现;第4 章、第5 章、第8 章和第9 章的案例使用了联邦学习平台FATE 实现;第11 章、第12 章和第13 章是实际的落地案例,由于签署了保密协议,我们不会对外公开这部分的代码细节。书中所涉链接,读者可以扫封底二维码获取。

基于本书和《联邦学习》一书的内容,本书作者杨强教授、刘洋老师在香港科技大学开设世界上首批“联邦学习”的全日制研究生课程(2021 年春季学期启动)。相关教学资源(链接0-1),包括视频、课件等,已部分对外开放。

联邦学习目前正处在高速发展的阶段:一方面,联邦学习的理论知识仍在不断完善和丰富;另一方面,随着联邦学习的应用越来越广泛,很多新的挑战和新的解决方案也会陆续产生。因此,虽然本书力求在理论和实践上都能兼顾最新的发展趋势,但难免有遗漏或者不完善的地方。欢迎读者提出宝贵意见,帮助我们不断完善本书的内容。


杨强,黄安埠,刘洋,陈天健
2021年3 月,中国,深圳

目录

第一部分联邦学习基础

第1章 联邦学习概述/3
1.1 数据资产的重要性/4
1.2 联邦学习提出的背景/5
1.3 联邦学习的定义/7
1.4 联邦学习的分类/10
1.5 联邦学习算法现状/12

第2章 联邦学习的安全机制/15
2.1 基于同态加密的安全机制/16
2.1.1 同态加密的定义/16
2.1.2 同态加密的分类/18
2.2 基于差分隐私的安全机制/20
2.2.1 差分隐私的定义/20
2.2.2 差分隐私的实现机制/23
2.3 基于安全多方计算的安全机制/26
2.3.1 秘密共享/26
2.3.2 不经意传输/28
2.3.3 混淆电路/29
2.4 安全机制的性能效率对比/30
2.5 基于Python 的安全计算库/31

第二部分联邦学习快速入门

第3章 用Python 从零实现横向联邦图像分类/35
3.1 环境配置/36
3.2 PyTorch 基础/37
3.2.1 创建Tensor /37
3.2.2 Tensor 与Python 数据结构的转换/38
3.2.3 数据操作/39
3.2.4 自动求导/41
3.3 用Python 实现横向联邦图像分类/41
3.3.1 配置信息/41
3.3.2 训练数据集/42
3.3.3 服务端/43
3.3.4 客户端/45
3.3.5 整合/46
3.4 联邦训练的模型效果/47
3.4.1 联邦训练与集中式训练的效果对比/47
3.4.2 联邦模型与单点训练模型的对比/48

第4章 微众银行FATE 平台/51
4.1 FATE 平台架构概述/52
4.2 FATE 安装与部署/53
4.2.1 单机部署/53
4.2.2 集群部署/54
4.2.3 KubeFATE 部署/55
4.3 FATE 编程范式/55
4.4 FATE 应用案例/57

第5章 用FATE 从零实现横向逻辑回归/59
5.1 数据集的获取与描述/60
5.2 逻辑回归/60
5.3 横向数据集切分/61
5.4 横向联邦模型训练/62
5.4.1 数据输入/63
5.4.2 模型训练/65
5.4.3 模型评估/67
5.5 多参与方环境配置/71

第6章 用FATE 从零实现纵向线性回归/73
6.1 数据集的获取与描述/74
6.2 纵向数据集切分/74
6.3 纵向联邦训练/76
6.3.1 数据输入/76
6.3.2 样本对齐/78
6.3.3 模型训练/78
6.3.4 模型评估/81

第7章 联邦学习实战资源/85
7.1 FATE 帮助文档/86
7.2 本书配套的代码/86
7.3 其他联邦学习平台/86
7.3.1 TensorFlow-Federated /86
7.3.2 OpenMined PySyft /87
7.3.3 NVIDIA Clara 联邦学习平台/88
7.3.4 百度PaddleFL /89
7.3.5 腾讯AngelFL /90
7.3.6 同盾知识联邦平台/90

第三部分联邦学习案例实战详解

第8章 联邦学习在金融保险领域的应用案例/95
8.1 概述/96
8.2 基于纵向联邦学习的保险个性化定价案例/97
8.2.1 案例描述/97
8.2.2 保险个性化定价的纵向联邦建模/98
8.2.3 效果对比/102
8.3 基于横向联邦的银行间反洗钱模型案例/103
8.3.1 案例描述/103
8.3.2 反洗钱模型的横向联邦建模/104
8.3.3 效果对比/105
8.4 金融领域的联邦建模难点/106
8.4.1 数据不平衡/106
8.4.2 可解析性/107

第9章 联邦个性化推荐案例/109
9.1 传统的集中式个性化推荐/110
9.1.1 矩阵分解/110
9.1.2 因子分解机/112
9.2 联邦矩阵分解/114
9.2.1 算法详解/114
9.2.2 详细实现/116
9.3 联邦因子分解机/119
9.3.1 算法详解/119
9.3.2 详细实现/122
9.4 其他联邦推荐算法/126
9.5 联邦推荐云服务使用/127

第10章 联邦学习视觉案例/129
10.1 概述/130
10.2 案例描述/131
10.3 目标检测算法概述/131
10.3.1 边界框与锚框/132
10.3.2 交并比/133
10.3.3 基于候选区域的目标检测算法/133
10.3.4 单阶段目标检测/134
10.4 基于联邦学习的目标检测网络/136
10.4.1 动机/136
10.4.2 FedVision-联邦视觉产品/137
10.5 方法实现/138
10.5.1 Flask-SocketIO 基础/138
10.5.2 服务端设计/141
10.5.3 客户端设计/143
10.5.4 模型和数据集/145
10.5.5 性能分析/146

第11章 联邦学习在智能物联网中的应用案例/149
11.1 案例的背景与动机/150
11.2 历史数据分析/152
11.3 出行时间预测模型/153
11.3.1 问题定义/153
11.3.2 构造训练数据集/154
11.3.3 模型结构/155
11.4 联邦学习实现/156
11.4.1 服务端设计/157
11.4.2 客户端设计/158
11.4.3 性能分析/159

第12 章联邦学习医疗健康应用案例/161
12.1 医疗健康数据概述/162
12.2 联邦医疗大数据与脑卒中预测/164
12.2.1 脑卒中预测案例概述/164
12.2.2 联邦数据预处理/164
12.2.3 联邦学习脑卒中预测系统/165
12.3 联邦学习在医疗影像中的应用/169
12.3.1 肺结节案例描述/170
12.3.2 数据概述/170
12.3.3 模型设计/171
12.3.4 联邦学习的效果/173

第13章 联邦学习智能用工案例/175
13.1 智能用工简介/176
13.2 智能用工平台/176
13.2.1 智能用工的架构设计/176
13.2.2 智能用工的算法设计/177
13.3 利用横向联邦提升智能用工模型/180
13.4 设计联邦激励机制,提升联邦学习系统的可持续性/180
13.4.1 FedGame 系统架构/181
13.4.2 FedGame 设计原理/182
13.5 系统设置/183

第14章 构建公平的大数据交易市场/185
14.1 大数据交易/187
14.1.1 数据交易的定义/187
14.1.2 数据确权/188
14.1.3 数据定价/189
14.2 基于联邦学习构建新一代大数据交易市场/189
14.3 联邦学习激励机制助力数据交易/190
14.4 联邦学习激励机制的问题描述/191
14.5 FedCoin 支付系统设计/192
14.5.1 PoSap 共识算法/193
14.5.2 支付方案/197
14.6 FedCoin 的安全分析/198
14.7 实例演示/199
14.7.1 演示系统的实现/199
14.7.2 效果展示/200

第15 章联邦学习攻防实战/203
15.1 后门攻击/204
15.1.1 问题定义/204
15.1.2 后门攻击策略/205
15.1.3 详细实现/207
15.2 差分隐私/210
15.2.1 集中式差分隐私/211
15.2.2 联邦差分隐私/213
15.2.3 详细实现/215
15.3 模型压缩/217
15.3.1 参数稀疏化/217
15.3.2 按层敏感度传输/219
15.4 同态加密/222
15.4.1 Paillier 半同态加密算法/222
15.4.2 加密损失函数计算/222
15.4.3 详细实现/224

第四部分联邦学习进阶

第16 章联邦学习系统的通信机制/231
16.1 联邦学习系统架构/232
16.1.1 客户–服务器架构/232
16.1.2 对等网络架构/233
16.1.3 环状架构/234
16.2 网络通信协议简介/235
16.3 基于socket 的通信机制/237
16.3.1 socket 介绍/237
16.3.2 基于Python 内置socket 库的实现/238
16.3.3 基于Python-SocketIO 的实现/239
16.3.4 基于Flask-SocketIO 的实现/241
16.4 基于RPC 的通信机制/241
16.4.1 RPC 介绍/241
16.4.2 基于gRPC 的实现/243
16.4.3 基于ICE 的实现/244
16.5 基于RMI 的通信机制/248
16.5.1 RMI 介绍/248
16.5.2 在Python 环境下使用RMI /249
16.6 基于MPI 的通信机制/249
16.6.1 MPI 简介/249
16.6.2 在Python 环境下使用MPI /249
16.7 本章小结/250

第17 章联邦学习加速方法/251
17.1 同步参数更新的加速方法/252
17.1.1 增加通信间隔/253
17.1.2 减少传输内容/254
17.1.3 非对称的推送和获取/256
17.1.4 计算和传输重叠/256
17.2 异步参数更新的加速方法/257
17.3 基于模型集成的加速方法/258
17.3.1 One-Shot 联邦学习/258
17.3.2 基于学习的联邦模型集成/260
17.4 硬件加速/261
17.4.1 使用GPU 加速计算/261
17.4.2 使用FPGA 加速计算/263
17.4.3 混合精度训练/264

第18章 联邦学习与其他前沿技术/267
18.1 联邦学习与Split Learning /268
18.1.1 Split Learning 设计模式/268
18.1.2 Split Learning 与联邦学习的异同/270
18.2 联邦学习与区块链/271
18.2.1 区块链技术原理/271
18.2.2 联邦学习与区块链的异同点/275
18.3 联邦学习与边缘计算/277
18.3.1 边缘计算综述/277
18.3.2 联邦学习与边缘计算的异同点/279

第五部分 回顾与展望

第19 章总结与展望/283
19.1 联邦学习进展总结/287
19.1.1 联邦学习标准建设/287
19.1.2 理论研究总结/288
19.1.3 落地应用进展总结/290
19.2 未来展望/292
19.2.1 联邦学习的可解析性/293
19.2.2 联邦学习的安全性/295
19.2.3 联邦学习的公平性激励机制/296
19.2.4 联邦学习的模型收敛性和性能效率/297
参考文献/299

读者评论

相关博文