聯邦學習實戰

楊強 等

買這商品的人也買了...

商品描述

數據孤島和隱私保護已經成為制約人工智能發展的關鍵因素。聯邦學習作為一種新型的隱私保護計算方案,在數據不出本地的前提下,能有效聯合各參與方聯合建模,從而實現“共同富裕”,成為當下人工智能領域備受關註的熱點。本書以實戰為主(包括對應用案例的深入講解和代碼分析),兼顧對理論知識的系統總結。全書由五部分共19 章構成。第一部分簡要介紹了聯邦學習的理論知識點;第二部分介紹如何使用Python 和FATE 進行簡單的聯邦學習建模;第三部分是聯邦學習的案例分析,篩選了經典案例進行講解,部分案例用Python 代碼實現,部分案例採用FATE 實現;第四部分主要介紹和聯邦學習相關的高級知識點,包括聯邦學習的架構和訓練的加速方法等;第五部分是回顧與展望。本書適合對聯邦學習和隱私保護感興趣的高校研究者、企業研發人員閱讀。

作者簡介

楊強教授
微眾銀行首席人工智能官(CAIO)和香港科技大學(HKUST)計算機科學與工程系講席教授。
曾任香港科技大學計算機科學與工程系系主任。
研究興趣包括人工智能、機器學習和數據挖掘,特別是遷移學習、自動規劃、聯邦學習和基於案例的推理。
當選多個國際協會會士(Fellow),包括ACM、AAAI、IEEE、IAPR, CAAI和AAAS。
1982 年獲北京大學天體物理學學士學位,並分別於1987年和1989 年獲馬里蘭大學帕克分校計算機科學系碩士學位和博士學位。
曾在滑鐵盧大學(University of Waterloo,1989-1995 年)和西蒙弗雷澤大學(Simon Fraser University, 1995-2001 年)擔任教授。
ACM TIST 和IEEE TBD 創始主編,國際人工智能聯合會議(IJCAI)理事長(2017-2019 年)和國際人工智能促進學會(AAAI)的執行委員會成員(2016-2020 年), 香港人工智能學會的理事長,曾任AAAI 2021大會主席。
曾獲多個獎項,包括2004/2005 ACM KDDCUP 冠軍、ACM SIGKDD 卓越服務獎(2017)、AAAI 創新人工智能應用獎(2018, 2020)和吳文俊人工智能傑出貢獻獎(2019)。
華為諾亞方舟實驗室的創始主任(2012-2014 年)和第四範式(AI 平台公司)的共同創始人。
著有多本書籍:《智能規劃》 Intelligent Planning (Springer)、《學術研究,你的成功之路》 (清華大學出版社) Crafting Your Research Future (Morgan & Claypool)、《遷移學習》 (機械工業出版社華章公司)Transfer Learning (Cambridge University Press)、《聯邦學習》(電子工業出版社)Federated Learning (Morgan Claypool),Constraint-based Design Recovery for Software Engineering(Springer)。


黃安埠
微眾銀行AI項目組資深研究員,畢業於清華大學。
在機器學習、隱私保護安全計算、推薦系統和計算機視覺等領域有豐富的研究和落地經驗。
已申請和擁有30多項國內和PCT國際專利,學術成果發表在AAAI、ACM TIST、IEEE BigData、AI Magazine等國際學術會議期刊上; 獲得AAAI人工智能創新應用獎(2020年);著有《深入淺出深度學習》(電子工業出版社,2017年)一書。
在加入微眾銀行之前曾任職於騰訊,期間領導創建了服務於億級用戶、全球較大的中文音樂流媒體在線推薦平台。


劉洋
微眾銀行AI項目組資深研究員、研究團隊負責人。
研究興趣包括機器學習、聯邦學習、遷移學習、多智能體系統、統計力學以及這些技術的產業應用。
2012年獲得普林斯頓大學博士學位,2007年獲得清華大學學士學位。
擁有多項國際發明專利,研究成果曾發表於Nature、IJCAI、AAAI和ACM TIST等科研刊物和會議上; 曾獲得AAAI人工智能創新應用獎、IJCAI創新應用獎和CCF科技成果獎等多個獎項; 《聯邦學習》一書的主要作者之一。


陳天健
微眾銀行AI項目組副總經理,目前負責構建基於聯邦學習技術的銀行智能生態系統。
擁有超過15年的大規模分佈式智能係統設計經驗,並在Web搜索引擎、對等網絡存儲、計算基因組學、個性化推薦系統、數字銀行等多個應用領域中實現了技術創新。現居中國深圳,與工作夥伴一起建設和推廣聯邦學習開源項目FATE。
在加入微眾銀行之前曾擔任百度金融首席架構師(同時也是百度的主任架構師)。

目錄大綱

第一部分聯邦學習基礎
第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