數(shù)據(jù)孤島和隱私保護已經(jīng)成為制約人工智能發(fā)展的關(guān)鍵因素。聯(lián)邦學習作為一種新型的隱私保護計算方案,在數(shù)據(jù)不出本地的前提下,能有效聯(lián)合各參與方聯(lián)合建模,從而實現(xiàn)“共同富!保蔀楫斚氯斯ぶ悄茴I域備受關(guān)注的熱點。本書以實戰(zhàn)為主(包括對應用案例的深入講解和代碼分析),兼顧對理論知識的系統(tǒng)總結(jié)。全書由五部分共19 章構(gòu)成。第一部分簡要介紹了聯(lián)邦學習的理論知識點;第二部分介紹如何使用Python 和FATE 進行簡單的聯(lián)邦學習建模;第三部分是聯(lián)邦學習的案例分析,篩選了經(jīng)典案例進行講解,部分案例用Python 代碼實現(xiàn),部分案例采用FATE 實現(xiàn);第四部分主要介紹和聯(lián)邦學習相關(guān)的高級知識點,包括聯(lián)邦學習的架構(gòu)和訓練的加速方法等;第五部分是回顧與展望。本書適合對聯(lián)邦學習和隱私保護感興趣的高校研究者、企業(yè)研發(fā)人員閱讀。
楊強教授微眾銀行首席人工智能官(CAIO)和香港科技大學(HKUST)計算機科學與工程系講席教授。曾任香港科技大學計算機科學與工程系系主任。研究興趣包括人工智能、機器學習和數(shù)據(jù)挖掘,特別是遷移學習、自動規(guī)劃、聯(lián)邦學習和基于案例的推理。當選多個國際協(xié)會會士(Fellow),包括ACM、AAAI、IEEE、IAPR, CAAI和AAAS。1982 年獲北京大學天體物理學學士學位,并分別于1987年和1989 年獲馬里蘭大學帕克分校計算機科學系碩士學位和博士學位。曾在滑鐵盧大學(University of Waterloo,1989-1995 年)和西蒙弗雷澤大學(Simon Fraser University, 1995-2001 年)擔任教授。ACM TIST 和IEEE TBD 創(chuàng)始主編,國際人工智能聯(lián)合會議(IJCAI)理事長(2017-2019 年)和國際人工智能促進學會(AAAI)的執(zhí)行委員會成員(2016-2020 年), 香港人工智能學會的理事長,曾任AAAI 2021大會主席。曾獲多個獎項,包括2004/2005 ACM KDDCUP 冠軍、ACM SIGKDD 卓越服務獎(2017)、AAAI 創(chuàng)新人工智能應用獎(2018, 2020)和吳文俊人工智能杰出貢獻獎(2019)。華為諾亞方舟實驗室的創(chuàng)始主任(2012-2014 年)和第四范式(AI 平臺公司)的共同創(chuàng)始人。黃安埠微眾銀行AI項目組資深研究員,畢業(yè)于清華大學。在機器學習、隱私保護安全計算、推薦系統(tǒng)和計算機視覺等領域有豐富的研究和落地經(jīng)驗。已申請和擁有30多項國內(nèi)和PCT國際專利,學術(shù)成果發(fā)表在AAAI、ACM TIST、IEEE BigData、AI Magazine等國際學術(shù)會議期刊上;獲得AAAI人工智能創(chuàng)新應用獎(2020年);著有《深入淺出深度學習》(電子工業(yè)出版社,2017年)一書。在加入微眾銀行之前曾任職于騰訊,期間領導創(chuàng)建了服務于億級用戶、全球最大的中文音樂流媒體在線推薦平臺。劉洋微眾銀行AI項目組資深研究員、研究團隊負責人。研究興趣包括機器學習、聯(lián)邦學習、遷移學習、多智能體系統(tǒng)、統(tǒng)計力學以及這些技術(shù)的產(chǎn)業(yè)應用。2012年獲得普林斯頓大學博士學位,2007年獲得清華大學學士學位。擁有多項國際發(fā)明專利,研究成果曾發(fā)表于Nature、IJCAI、AAAI和ACM TIST等科研刊物和會議上;曾獲得AAAI人工智能創(chuàng)新應用獎、IJCAI創(chuàng)新應用獎和CCF科技成果獎等多個獎項;《聯(lián)邦學習》一書的主要作者之一。陳天健微眾銀行AI項目組副總經(jīng)理,目前負責構(gòu)建基于聯(lián)邦學習技術(shù)的銀行智能生態(tài)系統(tǒng)。擁有超過15年的大規(guī)模分布式智能系統(tǒng)設計經(jīng)驗,并在Web搜索引擎、對等網(wǎng)絡存儲、計算基因組學、個性化推薦系統(tǒng)、數(shù)字銀行等多個應用領域中實現(xiàn)了技術(shù)創(chuàng)新。現(xiàn)居中國深圳,與工作伙伴一起建設和推廣聯(lián)邦學習開源項目FATE。在加入微眾銀行之前曾擔任百度金融首席架構(gòu)師(同時也是百度的主任架構(gòu)師)。
第一部分聯(lián)邦學習基礎
第1章 聯(lián)邦學習概述/3
1.1 數(shù)據(jù)資產(chǎn)的重要性/4
1.2 聯(lián)邦學習提出的背景/5
1.3 聯(lián)邦學習的定義/7
1.4 聯(lián)邦學習的分類/10
1.5 聯(lián)邦學習算法現(xiàn)狀/12
第2章 聯(lián)邦學習的安全機制/15
2.1 基于同態(tài)加密的安全機制/16
2.1.1 同態(tài)加密的定義/16
2.1.2 同態(tài)加密的分類/18
2.2 基于差分隱私的安全機制/20
2.2.1 差分隱私的定義/20
2.2.2 差分隱私的實現(xiàn)機制/23
2.3 基于安全多方計算的安全機制/26
2.3.1 秘密共享/26
2.3.2 不經(jīng)意傳輸/28
2.3.3 混淆電路/29
2.4 安全機制的性能效率對比/30
2.5 基于Python 的安全計算庫/31
第二部分聯(lián)邦學習快速入門
第3章 用Python 從零實現(xiàn)橫向聯(lián)邦圖像分類/35
3.1 環(huán)境配置/36
3.2 PyTorch 基礎/37
3.2.1 創(chuàng)建Tensor /37
3.2.2 Tensor 與Python 數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換/38
3.2.3 數(shù)據(jù)操作/39
3.2.4 自動求導/41
3.3 用Python 實現(xiàn)橫向聯(lián)邦圖像分類/41
3.3.1 配置信息/41
3.3.2 訓練數(shù)據(jù)集/42
3.3.3 服務端/43
3.3.4 客戶端/45
3.3.5 整合/46
3.4 聯(lián)邦訓練的模型效果/47
3.4.1 聯(lián)邦訓練與集中式訓練的效果對比/47
3.4.2 聯(lián)邦模型與單點訓練模型的對比/48
第4章 微眾銀行FATE 平臺/51
4.1 FATE 平臺架構(gòu)概述/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 從零實現(xiàn)橫向邏輯回歸/59
5.1 數(shù)據(jù)集的獲取與描述/60
5.2 邏輯回歸/60
5.3 橫向數(shù)據(jù)集切分/61
5.4 橫向聯(lián)邦模型訓練/62
5.4.1 數(shù)據(jù)輸入/63
5.4.2 模型訓練/65
5.4.3 模型評估/67
5.5 多參與方環(huán)境配置/71
第6章 用FATE 從零實現(xiàn)縱向線性回歸/73
6.1 數(shù)據(jù)集的獲取與描述/74
6.2 縱向數(shù)據(jù)集切分/74
6.3 縱向聯(lián)邦訓練/76
6.3.1 數(shù)據(jù)輸入/76
6.3.2 樣本對齊/78
6.3.3 模型訓練/78
6.3.4 模型評估/81
第7章 聯(lián)邦學習實戰(zhàn)資源/85
7.1 FATE 幫助文檔/86
7.2 本書配套的代碼/86
7.3 其他聯(lián)邦學習平臺/86
7.3.1 TensorFlow-Federated /86
7.3.2 OpenMined PySyft /87
7.3.3 NVIDIA Clara 聯(lián)邦學習平臺/88
7.3.4 百度PaddleFL /89
7.3.5 騰訊AngelFL /90
7.3.6 同盾知識聯(lián)邦平臺/90
第三部分聯(lián)邦學習案例實戰(zhàn)詳解
第8章 聯(lián)邦學習在金融保險領域的應用案例/95
8.1 概述/96
8.2 基于縱向聯(lián)邦學習的保險個性化定價案例/97
8.2.1 案例描述/97
8.2.2 保險個性化定價的縱向聯(lián)邦建模/98
8.2.3 效果對比/102
8.3 基于橫向聯(lián)邦的銀行間反洗錢模型案例/103
8.3.1 案例描述/103
8.3.2 反洗錢模型的橫向聯(lián)邦建模/104
8.3.3 效果對比/105
8.4 金融領域的聯(lián)邦建模難點/106
8.4.1 數(shù)據(jù)不平衡/106
8.4.2 可解析性/107
第9章 聯(lián)邦個性化推薦案例/109
9.1 傳統(tǒng)的集中式個性化推薦/110
9.1.1 矩陣分解/110
9.1.2 因子分解機/112
9.2 聯(lián)邦矩陣分解/114
9.2.1 算法詳解/114
9.2.2 詳細實現(xiàn)/116
9.3 聯(lián)邦因子分解機/119
9.3.1 算法詳解/119
9.3.2 詳細實現(xiàn)/122
9.4 其他聯(lián)邦推薦算法/126
9.5 聯(lián)邦推薦云服務使用/127
第10章 聯(lián)邦學習視覺案例/129
10.1 概述/130
10.2 案例描述/131
10.3 目標檢測算法概述/131
10.3.1 邊界框與錨框/132
10.3.2 交并比/133
10.3.3 基于候選區(qū)域的目標檢測算法/133
10.3.4 單階段目標檢測/134
10.4 基于聯(lián)邦學習的目標檢測網(wǎng)絡/136
10.4.1 動機/136
10.4.2 FedVision-聯(lián)邦視覺產(chǎn)品/137
10.5 方法實現(xiàn)/138
10.5.1 Flask-SocketIO 基礎/138
10.5.2 服務端設計/141
10.5.3 客戶端設計/143
10.5.4 模型和數(shù)據(jù)集/145
10.5.5 性能分析/146
第11章 聯(lián)邦學習在智能物聯(lián)網(wǎng)中的應用案例/149
11.1 案例的背景與動機/150
11.2 歷史數(shù)據(jù)分析/152
11.3 出行時間預測模型/153
11.3.1 問題定義/153
11.3.2 構(gòu)造訓練數(shù)據(jù)集/154
11.3.3 模型結(jié)構(gòu)/155
11.4 聯(lián)邦學習實現(xiàn)/156
11.4.1 服務端設計/157
11.4.2 客戶端設計/158
11.4.3 性能分析/159
第12 章聯(lián)邦學習醫(yī)療健康應用案例/161
12.1 醫(yī)療健康數(shù)據(jù)概述/162
12.2 聯(lián)邦醫(yī)療大數(shù)據(jù)與腦卒中預測/164
12.2.1 腦卒中預測案例概述/164
12.2.2 聯(lián)邦數(shù)據(jù)預處理/164
12.2.3 聯(lián)邦學習腦卒中預測系統(tǒng)/165
12.3 聯(lián)邦學習在醫(yī)療影像中的應用/169
12.3.1 肺結(jié)節(jié)案例描述/170
12.3.2 數(shù)據(jù)概述/170
12.3.3 模型設計/171
12.3.4 聯(lián)邦學習的效果/173
第13章 聯(lián)邦學習智能用工案例/175
13.1 智能用工簡介/176
13.2 智能用工平臺/176
13.2.1 智能用工的架構(gòu)設計/176
13.2.2 智能用工的算法設計/177
13.3 利用橫向聯(lián)邦提升智能用工模型/180
13.4 設計聯(lián)邦激勵機制,提升聯(lián)邦學習系統(tǒng)的可持續(xù)性/180
13.4.1 FedGame 系統(tǒng)架構(gòu)/181
13.4.2 FedGame 設計原理/182
13.5 系統(tǒng)設置/183
第14章 構(gòu)建公平的大數(shù)據(jù)交易市場/185
14.1 大數(shù)據(jù)交易/187
14.1.1 數(shù)據(jù)交易的定義/187
14.1.2 數(shù)據(jù)確權(quán)/188
14.1.3 數(shù)據(jù)定價/189
14.2 基于聯(lián)邦學習構(gòu)建新一代大數(shù)據(jù)交易市場/189
14.3 聯(lián)邦學習激勵機制助力數(shù)據(jù)交易/190
14.4 聯(lián)邦學習激勵機制的問題描述/191
14.5 FedCoin 支付系統(tǒng)設計/192
14.5.1 PoSap 共識算法/193
14.5.2 支付方案/197
14.6 FedCoin 的安全分析/198
14.7 實例演示/199
14.7.1 演示系統(tǒng)的實現(xiàn)/199
14.7.2 效果展示/200
第15 章聯(lián)邦學習攻防實戰(zhàn)/203
15.1 后門攻擊/204
15.1.1 問題定義/204
15.1.2 后門攻擊策略/205
15.1.3 詳細實現(xiàn)/207
15.2 差分隱私/210
15.2.1 集中式差分隱私/211
15.2.2 聯(lián)邦差分隱私/213
15.2.3 詳細實現(xiàn)/215
15.3 模型壓縮/217
15.3.1 參數(shù)稀疏化/217
15.3.2 按層敏感度傳輸/219
15.4 同態(tài)加密/222
15.4.1 Paillier 半同態(tài)加密算法/222
15.4.2 加密損失函數(shù)計算/222
15.4.3 詳細實現(xiàn)/224
第四部分聯(lián)邦學習進階
第16 章聯(lián)邦學習系統(tǒng)的通信機制/231
16.1 聯(lián)邦學習系統(tǒng)架構(gòu)/232
16.1.1 客戶–服務器架構(gòu)/232
16.1.2 對等網(wǎng)絡架構(gòu)/233
16.1.3 環(huán)狀架構(gòu)/234
16.2 網(wǎng)絡通信協(xié)議簡介/235
16.3 基于socket 的通信機制/237
16.3.1 socket 介紹/237
16.3.2 基于Python 內(nèi)置socket 庫的實現(xiàn)/238
16.3.3 基于Python-SocketIO 的實現(xiàn)/239
16.3.4 基于Flask-SocketIO 的實現(xiàn)/241
16.4 基于RPC 的通信機制/241
16.4.1 RPC 介紹/241
16.4.2 基于gRPC 的實現(xiàn)/243
16.4.3 基于ICE 的實現(xiàn)/244
16.5 基于RMI 的通信機制/248
16.5.1 RMI 介紹/248
16.5.2 在Python 環(huán)境下使用RMI /249
16.6 基于MPI 的通信機制/249
16.6.1 MPI 簡介/249
16.6.2 在Python 環(huán)境下使用MPI /249
16.7 本章小結(jié)/250
第17 章聯(lián)邦學習加速方法/251
17.1 同步參數(shù)更新的加速方法/252
17.1.1 增加通信間隔/253
17.1.2 減少傳輸內(nèi)容/254
17.1.3 非對稱的推送和獲取/256
17.1.4 計算和傳輸重疊/256
17.2 異步參數(shù)更新的加速方法/257
17.3 基于模型集成的加速方法/258
17.3.1 One-Shot 聯(lián)邦學習/258
17.3.2 基于學習的聯(lián)邦模型集成/260
17.4 硬件加速/261
17.4.1 使用GPU 加速計算/261
17.4.2 使用FPGA 加速計算/263
17.4.3 混合精度訓練/264
第18章 聯(lián)邦學習與其他前沿技術(shù)/267
18.1 聯(lián)邦學習與Split Learning /268
18.1.1 Split Learning 設計模式/268
18.1.2 Split Learning 與聯(lián)邦學習的異同/270
18.2 聯(lián)邦學習與區(qū)塊鏈/271
18.2.1 區(qū)塊鏈技術(shù)原理/271
18.2.2 聯(lián)邦學習與區(qū)塊鏈的異同點/275
18.3 聯(lián)邦學習與邊緣計算/277
18.3.1 邊緣計算綜述/277
18.3.2 聯(lián)邦學習與邊緣計算的異同點/279
第五部分 回顧與展望
第19 章總結(jié)與展望/283
19.1 聯(lián)邦學習進展總結(jié)/287
19.1.1 聯(lián)邦學習標準建設/287
19.1.2 理論研究總結(jié)/288
19.1.3 落地應用進展總結(jié)/290
19.2 未來展望/292
19.2.1 聯(lián)邦學習的可解析性/293
19.2.2 聯(lián)邦學習的安全性/295
19.2.3 聯(lián)邦學習的公平性激勵機制/296
19.2.4 聯(lián)邦學習的模型收斂性和性能效率/297
參考文獻/299