本書首先介紹聯邦學習的定義和發展歷史,按類別介紹聯邦學習算法和發展現狀,介紹聯邦學習的應用場景,以及相關安全機器學習的技術。然后我們將介紹zui新zui前沿的聯邦學習算法,用數科系統作為實例,對聯邦學習系統構建和實現進行講解。zui后我們將介紹數科自研的基于區塊鏈的聯邦學習技術。
作者都是扎根于聯邦學習前沿的研究者和從業者。
本書提出了眾多不同于其他書籍的全新聯邦學習算法,以饗讀者。
作者參考了近年全新的文章和綜述,緊跟學術和業界的聯邦學習動態。
機器學習技術在近20年飛速發展,從一個個數學概念逐漸演變成一個個算法實現,為工業界和學術界帶來了新的力量。然而,近幾年,數據隱私保護問題愈發受到人們的關注,研究者們開始開發各種技術來進行數據層面的隱私保護。聯邦學習作為其中一項重要技術,勢必迎來新的發展前景。本書將從概念、應用場景到具體的先進算法,再到后的系統實現,對聯邦學習技術進行全盤的梳理與總結,希望給讀者一些啟發。注意,本書僅從技術視角對聯邦學習進行回顧展望,如有涉及數據收集與授權方面的信息,還需要滿足管轄地法律法規及監管的要求。
本書分三個部分,共17章。
部分為聯邦學習基礎知識,主要介紹聯邦學習的定義、挑戰、應用場景和常用技術,包括以下3章。
第1章聯邦學習概述,詳細介紹了什么是聯邦學習、聯邦學習的應用現狀與挑戰,然后介紹了分布式學習和聯邦學習的區別與關聯。
第2章聯邦學習應用場景,本章從金融、生物醫學、計算機視覺和自然語言處理等多個方面對聯邦學習的應用場景進行介紹。
第3章常用隱私保護技術,我們首先對當前基于隱私保護的機器學習算法進行了簡要綜述,然后重點介紹了差分隱私、安全多方計算和同態加密等常用的隱私保護技術。
第二部分為聯邦學習算法詳述,主要介紹了我們針對縱向聯邦學習和橫向聯邦學習場景提出來的諸多創新性聯邦學習算法,包括以下10章。
第4章縱向聯邦樹模型算法,基于兩種不同的集成方法Bagging和Boosting分別設計了兩種算法:縱向聯邦隨機森林算法和縱向聯邦梯度提升算法。
第5章縱向聯邦線性回歸算法,提出了全新的縱向聯邦多視角線性回歸算法,從多個視角對對象進行建模并聯合優化所有函數。
第6章縱向聯邦核學習算法,提出了一個針對縱向聯邦場景的核學習算法,并設計了一個完整的聯邦學習框架。
第7章異步縱向聯邦學習算法,針對當前縱向聯邦學習算法主要采用的同步并行方法提出了相應的異步并行算法,并針對強凸問題提供了理論保證。
第8章基于反向更新的雙層異步縱向聯邦學習算法,提出了一個反向更新的異步并行算法,以在實際應用中同時實現標簽數據保護和并行計算(更新)。
第9章縱向聯邦深度學習算法,提出了一個針對當下流行的深度學習模型的縱向聯邦學習基礎框架,并對框架進行了簡要的綜合分析。
第10章快速安全的同態加密數據挖掘框架,針對當前同態加密時間復雜度高的問題,提出了一個基于同態加密的快速分布式數據挖掘框架。
第11章橫向聯邦學習算法,在闡述分布式學習和橫向聯邦學習之間關系的基礎上,對當前橫向聯邦學習的主流算法進行了較為詳細的介紹。
第12章混合聯邦學習算法,結合橫向聯邦學習和縱向聯邦學習的特點,提出了適用性更廣、使用步驟簡單的混合聯邦學習算法。
第13章聯邦強化學習,首先介紹了強化學習的定義和常用技術方案,然后介紹了多種聯邦強化學習算法。
第三部分為聯邦學習系統相關知識,主要介紹了科技設計的聯邦學習系統及算法落地的性能優化技術,包括以下4章。
第14章FedLearn聯邦學習系統,從編程語言與環境、系統架構、跨語言算法支持(函數調用)、系統服務和工程部署等方面全方位地介紹了FedLearn聯邦學習系統。
第15章gRPC在FedLearn中的聯邦學習應用實例,以橫向聯邦學習和縱向聯邦學習的應用場景為切入點,詳細介紹了如何使用FedLearn中采用的高性能框架gRPC。
第16章落地場景中的性能優化實踐,介紹了如何在實際應用中對系統進行性能優化,并給出了實際應用場景中的優化結果。
第17章基于區塊鏈的聯邦學習,引入區塊鏈學習,介紹了基于區塊鏈的聯邦學習算法和聯邦學習系統的實現。
其中,第二部分為本書的重點部分,我們提出了諸多聯邦學習的算法、流程詳解及可能的理論保障。如果讀者沒有充足的時間完成全書的閱讀,可以選擇性地進行重點部分的閱讀。如果讀者有一定的從業經驗,本書可能會是一本不錯的參考書。然而,如果讀者是一名初學者,建議在閱讀本書之前,先進行一些機器學習、分布式學習以及隱私保護技術等基礎理論知識的學習。
本書相比于其他聯邦學習書籍的特色與優勢在于:,本書的作者是扎根于聯邦學習前沿的研究者和從業者;第二,我們在本書中提出了眾多不同于其他書籍的全新聯邦學習算法,以饗讀者;第三,我們參考了近兩年全新的文章和綜述,緊跟學術和業界的聯邦學習動態。
在本書的編寫過程中,我們深深地感受到聯邦學習及其相關領域技術的繁多冗雜,因此書中難免出現一些錯誤或者不準確的地方,懇請讀者批評指正。
感謝科技對我們撰寫本書的大力支持與幫助!
感謝科技硅谷研發部基礎用戶算法部的顧彬、單華松、王家洲。
感謝科技算法工程研發部區塊鏈平臺組的王義、孫海波。
感謝科技硅谷研發部聯邦學習算法部的黨致遠、范明姐、王佩琪、王新左、張青松、張文夕(按姓名首字母排序)。
前言
部分 聯邦學習基礎知識
第 1 章 聯邦學習概述 2
1.1 什么是聯邦學習 2
1.1.1 聯邦學習的發展歷史 3
1.1.2 聯邦學習的工作流程 4
1.1.3 聯邦學習的分類 6
1.2 聯邦學習的應用和挑戰 8
1.2.1 聯邦學習的應用現狀 8
1.2.2 聯邦學習的核心挑戰 9
1.3 分布式機器學習與聯邦學習 10
1.3.1 分布式機器學習的發展歷史 10
1.3.2 分布式機器學習概述 11
1.3.3 分布式機器學習與聯邦學習的共同發展 13
1.4 總結 14
第 2 章 聯邦學習應用場景 15
2.1 聯邦學習與金融 15
2.2 聯邦學習與生物醫學 17
2.3 聯邦學習與計算機視覺 19
2.4 聯邦學習與自然語言處理 22
2.5 聯邦學習與邊緣計算和云計算 25
2.6 聯邦學習與計算機硬件 27
2.7 總結 29
第 3 章 常用隱私保護技術 30
3.1 面向隱私保護的機器學習 30
3.1.1 概述 30
3.1.2 面向隱私保護的機器學習發展 33
3.2 常用的隱私保護技術 34
3.2.1 差分隱私 34
3.2.2 安全多方計算 41
3.2.3 同態加密 49
3.3 總結 66
第二部分 聯邦學習算法詳述
第 4 章 縱向聯邦樹模型算法 68
4.1 樹模型簡介 68
4.2 縱向聯邦隨機森林算法 69
4.2.1 算法結構 69
4.2.2 算法詳述 70
4.2.3 安全性分析 71
4.3 縱向聯邦梯度提升算法 75
4.3.1 XGBoost 算法 76
4.3.2 SecureBoost 算法 76
4.3.3 所提算法詳述 77
4.4 總結 78
第 5 章 縱向聯邦線性回歸算法 79
5.1 縱向聯邦線性回歸 80
5.1.1 算法訓練過程 81
5.1.2 算法預測過程 81
5.1.3 縱向聯邦的一個困境 82
5.2 聯邦多視角線性回歸 82
5.2.1 基于 BFGS 的二階優化方法 84
5.2.2 安全計算協議 87
5.3 總結 92
第 6 章 縱向聯邦核學習算法 93
6.1 引言 93
6.2 雙隨機核方法 95
6.2.1 問題定義 95
6.2.2 核方法的簡要介紹 96
6.2.3 隨機傅里葉特征近似 98
6.2.4 雙隨機梯度 98
6.3 所提算法 99
6.3.1 問題表示 100
6.3.2 算法結構 100
6.3.3 算法設計 101
6.3.4 場景案例 103
6.4 理論分析 105
6.4.1 收斂性分析 105
6.4.2 安全性分析 105
6.4.3 復雜度分析 106
6.5 實驗驗證 106
6.5.1 實驗設置 106
6.5.2 實驗結果和討論 107
6.6 總結 110
第 7 章 異步縱向聯邦學習算法 111
7.1 引言 111
7.2 相關工作 112
7.2.1 現有工作概述 112
7.2.2 SGD 類算法回顧 113
7.3 問題表示 114
7.4 所提算法 114
7.4.1 算法框架 114
7.4.2 算法詳述 116
7.4.3 場景案例 119
7.5 理論分析 120
7.5.1 收斂性分析 120
7.5.2 安全性分析 123
7.5.3 復雜度分析 124
7.6 實驗驗證 125
7.6.1 實驗設置 125
7.6.2 實驗結果和討論 127
7.7 總結 1