diff --git a/chapter_federated_learning/horizontal_fl.md b/chapter_federated_learning/horizontal_fl.md
index 5acc53c..fefa9e4 100644
--- a/chapter_federated_learning/horizontal_fl.md
+++ b/chapter_federated_learning/horizontal_fl.md
@@ -44,7 +44,7 @@
联邦学习客户端(FL-Client)负责本地数据训练,并在和FL-Server进行通信时,对上传权重进行安全加密。
-
+
:label:`ch10-federated-learning-architecture`
diff --git a/chapter_federated_learning/outlook.md b/chapter_federated_learning/outlook.md
index 10e8bcd..2584d30 100644
--- a/chapter_federated_learning/outlook.md
+++ b/chapter_federated_learning/outlook.md
@@ -1,3 +1,36 @@
## 展望
-待补充
+为了实现联邦学习的大规模商用,我们仍然需要做许多的研究工作。比如我们无法查看联邦学习的分布式化的数据,那就很难选择模型的超参数以及设定优化器,只能采用一些基于模拟的方案来调测模型;比如用于移动设备时,单用户的标签数据很少,甚至无法获取数据的标签信息,联邦学习如何用于无监督学习;比如由于参与方的数据分布不一致,训练同一个全局模型,很难评价模型对于每个参与方的好坏;比如数据一直是公司的核心资产,不同的公司一直在致力于收集数据和创造数据孤岛,如何有效地激励公司或者机构参与联邦学习的系统中来。下面将介绍一些MindSpore Federated在进行的一些尝试和业界的相关工作。
+
+**异构场景下的联邦学习**
+
+之前探讨的横向联邦和纵向联邦学习都是让不同的参与方共同建立一个共享的机器学习模型。然而,企业级联邦学习框架往往需要适应多种异构场景,如数据异构(不同客户端数据规模以及分布不一致),设备异构(不同客户端设备计算能力,通信效率不一致),以及模型异构(不同本地客户端模型学到的特征不一致)。
+
+比较主流的两种联邦异构场景下的工作:
+
+1)对异构数据具有高度鲁棒性的本地模型个性化联邦学习策略:
+
+联邦学习训练的是一个全局模型,基于所有数据得到一个全局最优解,但是不同参与方的数据量和分布都是不同的,很多场景下全局模型无法在把握整体的同时又照顾到这种差异。当某一方的数据和整体偏离比较大时,联邦学习的效果确实有可能不如本地训练的效果。那么如何在所有参与方总体的收益最大化的同时,让个体的收益也能够最大化,这就是个性化联邦学习。
+
+个性化联邦学习并不要求所有参与方最终使用的模型必须是一样的,比如允许每个参与方在参与联邦之后,根据自己的数据对模型进行微调,从而生成本方独特的个性化模型。在进行个性化微调之后,往往模型在本地测试集上的效果会更好。在这种方式下,不同参与方的模型结构是一样的,但是模型参数会有所不同。还有一些方案,是让所有的参与方拥有同样的特征提取层,但是任务分类层不同。还有的思路是将知识蒸馏引入联邦学习中,将联邦学习的全局模型作为teacher,将个性化模型作为student,可以缓解个性化过程中的过拟合问题。
+
+2)对于异构模型进行模型聚合的策略研究:
+
+一般在FedAvg的联邦聚合范式下,本地迭代训练次数越少、聚合地越频繁,模型收敛精度会越好,尤其是在不同参与客户端的数据是非iid的情况下。但是聚合会带来通信成本开销,联邦学习存在通信成本与模型精度的Trade-off。因此很多研究者聚焦于如何设计自适应聚合方案,要求在给定训练时间开销的前提下,找到本地更新和全局通信之间的最佳平衡,令全局模型的泛化误差最小。
+
+ **通信效率提升**
+
+端云联邦学习流程中,每一个全局训练轮次里,每个参与方都需要给服务器发送完整的模型参数更新,然后服务器将聚合后的模型参数下发。现代的深度学习网络动辄有数百万甚至更大量级的参数,如此多的参数量传输将会带来巨大的通信开销带来性能瓶颈(用户流量、通信时延、客户端参与数量)。为了降低通信开销,MindSpore Federated采取了一些改善通信效率的方法:
+
+1)智能调频策略:通过改变全局模型聚合的轮次来提高联邦学习效率,减少训练任务达到收敛的通信开销。一种直觉是在模型训练初期,参数变化剧烈,因此设置较大的聚合频率,使得模型快速收敛;在模型训练中后期,参数趋于稳定,因此设置较小的聚合频率,减少通信成本。
+
+2)通信压缩方案:对权重差进行量化以及稀疏化操作,即每次通信仅上传一小部分最重要参数的梯度,从而代替上传所有参数。之所以选择权重差做量化和稀疏,是因为它比权重值的分布更易拟合,而且稀疏性更高。量化就是将FP32的数据类型映射到INT8甚至更低比特表示的数值上,一方面降低存储和通信开销,另一方面可以更好地采用一些压缩编码方式进行传输(如哈夫曼编码、有限状态熵编码等)。比较常用的稀疏化方法有Top-k稀疏,即按梯度的绝对值从小到大排序,每轮只上传前k个参数,如何选取合适的\(k\)是一个有挑战性的问题。这个方案对于模型的联邦学习训练来说是有损的,在精度损失和通信压缩率之间也是trade-off。
+
+**联邦生态**
+
+在前面的章节中,我们介绍了面向隐私保护的联邦学习领域的一些技术与实践,然而随着探索地更加深入,联邦学习领域也变得更具包容性,它涵盖了分不是机器学习、模型压缩部署、信息安全、加密算法、博弈论等等。随着越来越多的公司、高校和机构参与进来,现在的联邦学习已经不仅仅是一种技术解决方案,还是一个隐私保护的生态系统,比如不同的参与方希望以可持续的方式加入联邦,如何设计激励机制,以确保利润可以相对公平地被联邦参与方共享,同时对于恶意的实施攻击或者破坏行为的参与方进行有效遏制。
+
+另外,随着用户数据隐私保护和合理使用的法律法规越来越多的被推出,制定联邦学习的技术标准显得愈加重要,这一标准能够在法律监管部门和技术开发人员之间建立一座桥梁,让企业知道采用何种技术,能够在合乎法规的同时更好地进行信息的共享。
+
+2020年底正式出版推行了由IEEE 标准委员会(SASB)通过的联邦学习国际标准(IEEE P3652.1),该标准旨在提供一个搭建联邦学习的体系架构和应用的指导方针,主要内容包括:联邦学习的描述和定义、场景需求分类和安全测评、联邦学习个性指标的评估如何量化、联合管控的需求。这也是国际上首个针对人工智能协同技术框架订立的标准,标志着联邦学习开启大规模工业化应用的新篇章。
+
diff --git a/chapter_federated_learning/privacy_encryption_algorithm.md b/chapter_federated_learning/privacy_encryption_algorithm.md
index f77710d..d7d3b03 100644
--- a/chapter_federated_learning/privacy_encryption_algorithm.md
+++ b/chapter_federated_learning/privacy_encryption_algorithm.md
@@ -2,7 +2,7 @@
联邦学习过程中,用户数据仅用于本地设备训练,不需要上传至中央FL-Server。这样可以避免用户个人数据的直接泄露。然而联邦学习框架中,模型的权重以明文形式上云仍然存在间接泄露用户隐私的风险。敌手获取到用户上传的明文权重后,可以通过重构、模型逆向等攻击恢复用户的个人训练数据,导致用户隐私泄露。
-MindSpore Federated Learning框架,提供了基于本地差分隐私(LDP)和基于多方安全计算(MPC)的安全聚合算法,在本地模型的权重上云前对其进行加噪或加扰。在保证模型可用性的前提下,解决联邦学习中的隐私泄露问题。
+MindSpore Federated框架,提供了基于本地差分隐私(LDP)和基于多方安全计算(MPC)的安全聚合算法,在本地模型的权重上云前对其进行加噪或加扰。在保证模型可用性的前提下,解决联邦学习中的隐私泄露问题。
### 基于LDP的安全聚合
@@ -16,7 +16,7 @@ $$
在联邦学习中,假设FL-Client本地训练之后的模型权重矩阵是$W$,由于模型在训练过程中会“记住”训练集的特征,所以敌手可以借助$W$还原出用户的训练数据集。
-MindSpore Federated Learning提供基于本地差分隐私的安全聚合算法,防止本地模型的权重上云时泄露隐私数据。
+MindSpore Federated提供基于本地差分隐私的安全聚合算法,防止本地模型的权重上云时泄露隐私数据。
FL-Client会生成一个与本地模型权重$W$相同维度的差分噪声矩阵$G$,然后将二者相加,得到一个满足差分隐私定义的权重$W_p$:
@@ -28,7 +28,7 @@ FL-Client将加噪后的模型权重$W_p$上传至云侧FL-Server进行联邦聚
### 基于MPC的安全聚合
-尽管差分隐私技术可以适当保护用户数据隐私,但是当参与FL-Client数量比较少或者高斯噪声幅值较大时,模型精度会受较大影响。为了同时满足模型保护和模型收敛这两个要求,MindSpore Federated Learning提供了基于MPC的安全聚合方案。
+尽管差分隐私技术可以适当保护用户数据隐私,但是当参与FL-Client数量比较少或者高斯噪声幅值较大时,模型精度会受较大影响。为了同时满足模型保护和模型收敛这两个要求,MindSpore Federated提供了基于MPC的安全聚合方案。
在这种训练模式下,假设参与的FL-Client集合为$U$,对于任意FL-Client $u$和$v$,
它们会两两协商出一对随机扰动$p_{uv}$、$p_{vu}$,满足
@@ -53,11 +53,11 @@ $$
### 基于LDP-SignDS算法的安全聚合
-对于先前的基于维度加噪的LDP算法,在隐私预算一定时,添加到每个维度的噪声规模基本上与模型参数的数量成正比。因此,对于高维模型,可能需要非常多的参与方来减轻噪音对模型收敛的影响。为了解决上述“维度依赖”问题,MindSpore Federated Learning进一步提供了基于维度选择的**Sign-based Dimension Selection (SignDS)** :cite:`jiang2022signds`算法,进一步提升模型可用性。这里,我们考虑客户端仅上传本地模型更新(即本地模型和全局模型权重差值)的场景。SignDS算法的主要思想是,对于每一条真实的本地更新$\Delta\in\mathbb{R}^{d}$,用户端首先选择一小部分更新最明显的维度构建topk集合$S_k$,并以此选择一个维度集合$J$返回给服务器。服务器根据维度集合$J$构建一条对应的稀疏更新$\Delta^\prime$,并聚合所有稀疏更新进用于更新全局模型。由于本地模型更新与本地数据信息相关联,直接选取真实的最大更新维度可能导致隐私泄露。对此,SignDS算法在两方面实现了隐私保证。一方面,算法使用了一种基于指数机制(Exponential Mechanism, EM :cite:`mcsherry2007mechanism`)的维度选择算法**EM-MDS**,使得所选维度集满足严格的$\epsilon$-LDP保证;另一方面,在构建稀疏更新时,对所选维度分配一个常量值而不直接使用实际更新值,以保证稀疏更新和本地数据不再直接关联。由于维度选择满足$\epsilon$-LDP,且分配给所选维度的更新值与本地数据无关,根据差分隐私的传递性 :cite:`dwork2014algorithmic`,所构建的稀疏更新同样满足$\epsilon$-LDP保证。**相较于之前基于维度加噪的LDP算法,SignDS算法可以显著提升高维模型的训练精度。同时,由于客户端只需上传一小部分的维度值而不是所有的模型权重,因此联邦学习的上行通信量也被大大降低。**
+对于先前的基于维度加噪的LDP算法,在隐私预算一定时,添加到每个维度的噪声规模基本上与模型参数的数量成正比。因此,对于高维模型,可能需要非常多的参与方来减轻噪音对模型收敛的影响。为了解决上述“维度依赖”问题,MindSpore Federated 进一步提供了基于维度选择的**Sign-based Dimension Selection (SignDS)** :cite:`jiang2022signds`算法。SignDS算法的主要思想是,对于每一条真实的本地更新$\Delta\in\mathbb{R}^{d}$,用户端首先选择一小部分更新最明显的维度构建topk集合$S_k$,并以此选择一个维度集合$J$返回给FL-Server。FL-Server根据维度集合$J$构建一条对应的稀疏更新$\Delta^\prime$,并聚合所有稀疏更新进用于更新全局模型。由于本地模型更新与本地数据信息相关联,直接选取真实的最大更新维度可能导致隐私泄露。对此,SignDS算法在两方面实现了隐私保证。一方面,算法使用了一种基于指数机制(Exponential Mechanism, EM :cite:`mcsherry2007mechanism`)的维度选择算法**EM-MDS**,使得所选维度集满足严格的$\epsilon$-LDP保证;另一方面,在构建稀疏更新时,对所选维度分配一个常量值而不直接使用实际更新值,以保证稀疏更新和本地数据不再直接关联。由于维度选择满足$\epsilon$-LDP,且分配给所选维度的更新值与本地数据无关,根据差分隐私的传递性 :cite:`dwork2014algorithmic`,所构建的稀疏更新同样满足$\epsilon$-LDP保证。**相较于之前基于维度加噪的LDP算法,SignDS算法可以显著提升高维模型的训练精度。同时,由于FL-Client只需上传一小部分的维度值而不是所有的模型权重,因此联邦学习的上行通信量也被大大降低。**
下面,我们分别对topk集合$S_k$的构建和EM-MDS维度选择算法进行详细介绍。
-首先,由于实际更新值有正负,直接给所有选定的维度分配相同的常量值可能会明显改变模型更新方向,影响模型收敛。为了解决这个问题,SignDS提出了一种基于符号的topk集合构建策略。具体来讲,算法引入了一个额外的符号变量$s\in\\{-1,1\\}$。该变量由客户端以等概率随机采样,用于确定本地更新$\Delta$的topk集合$S_k$。如果$s=1$,我们将$\Delta$按**真实更新值**排序,并将**最大**的$k$个更新维度记为$S_k$。我们进一步从$S_k$中随机选择一部分维度,并将$s=1$作为这些维度的更新值用以构建稀疏更新。直觉上,$S_k$中维度的更新值很可能大于零。因此,将$s=1$分配给选定的维度不会导致模型更新方向的太大差异,从而减轻了对模型精度的影响。类似的,当$s=-1$时,我们选取**最小**的$k$个更新维度记为$S_k$,并将$s=-1$分配给所选维度。
+首先,由于实际更新值有正负,直接给所有选定的维度分配相同的常量值可能会明显改变模型更新方向,影响模型收敛。为了解决这个问题,SignDS提出了一种基于符号的topk集合构建策略。具体来讲,算法引入了一个额外的符号变量$s\in\\{-1,1\\}$。该变量由FL-Client以等概率随机采样,用于确定本地更新$\Delta$的topk集合$S_k$。如果$s=1$,我们将$\Delta$按**真实更新值**排序,并将**最大**的$k$个更新维度记为$S_k$。我们进一步从$S_k$中随机选择一部分维度,并将$s=1$作为这些维度的更新值用以构建稀疏更新。直觉上,$S_k$中维度的更新值很可能大于零。因此,将$s=1$分配给选定的维度不会导致模型更新方向的太大差异,从而减轻了对模型精度的影响。类似的,当$s=-1$时,我们选取**最小**的$k$个更新维度记为$S_k$,并将$s=-1$分配给所选维度。
下面,我们进一步介绍用于维度选择的EM-MDS算法。简单来说,EM-MDS算法的目的是从输出维度域$\mathcal{J}$中以一定概率$\mathcal{P}$随机选择一个维度集合$J\in\mathcal{J}$,不同维度集合对应的概率不同。我们假设$J$总共包含$h$个维度,其中有$\nu$个维度属于topk集合(即$|S_k \cap J|=\nu$,且$\nu\in[0,h]$),另外$h-\nu$个维度属于非topk集合。直观上,$\nu$越大,$J$中包含的topk维度越多,模型收敛越好。因此,我们希望给$\nu$较大的维度集合分配更高的概率。基于这个想法,我们将评分函数定义为:
@@ -92,10 +92,10 @@ $$
我们进一步提供了EM-MDS算法的隐私证明:
-*对于每个客户端,给定随机采样的符号值$x$,任意两个本地更新$\Delta$,$\Delta^\prime$的topk集合记为$S_k$和$S_k^\prime$,对于任意输出维度集合$J\in\mathcal{J}$,令$\nu=|S_k \cap J|$, $\nu^\prime=|S_k^\prime \cap J|$为$J$与两组topk维度集的交集数量。根据 :eqref:`emmds`,以下不等式成立:*
+对于每个FL-Client,给定随机采样的符号值$x$,任意两个本地更新$\Delta$,$\Delta^\prime$的topk集合记为$S_k$和$S_k^\prime$,对于任意输出维度集合$J\in\mathcal{J}$,令$\nu=|S_k \cap J|$, $\nu^\prime=|S_k^\prime \cap J|$为$J$与两组topk维度集的交集数量。根据 :eqref:`emmds`,以下不等式成立:
$$
- \frac{\mathrm{Pr}\[J|\Delta\]}{\mathrm{Pr}\[J|\Delta^\prime\]} = \frac{\mathrm{Pr}\[J|S_{k}\]}{\mathrm{Pr}\[J|S^\prime_{k}\]} = \frac{\frac{\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S_{k}, J))}{\sum_{J^\prime\in\mathcal{J}}\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S_{k}, J^\prime))}}{\frac{\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S^\prime_{k}, J))}{\sum_{J^\prime\in\mathcal{J}}\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S^\prime_{k}, J^\prime))}}
+\frac{\mathrm{Pr}\[J|\Delta\]}{\mathrm{Pr}\[J|\Delta^\prime\]} = \frac{\mathrm{Pr}\[J|S_{k}\]}{\mathrm{Pr}\[J|S^\prime_{k}\]} = \frac{\frac{\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S_{k}, J))}{\sum_{J^\prime\in\mathcal{J}}\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S_{k}, J^\prime))}}{\frac{\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S^\prime_{k}, J))}{\sum_{J^\prime\in\mathcal{J}}\mathrm{exp}(\frac{\epsilon}{\phi}\cdot u(S^\prime_{k}, J^\prime))}}
= \frac{\frac{\mathrm{exp}(\epsilon\cdot 𝟙(\nu \geq \nu_{th}))}{\sum_{\tau=0}^{\tau=h}\omega_{\tau}\cdot \mathrm{exp}(\epsilon\cdot 𝟙(\tau\geq\nu_{th}))}}{\frac{
\mathrm{exp}(\epsilon\cdot 𝟙(\nu^\prime \geq \nu_{th}))}{\sum_{\tau=0}^{\tau=h}\omega_{\tau}\cdot \mathrm{exp}(\epsilon\cdot 𝟙(\tau\geq\nu_{th}))}} \\
= \frac{\mathrm{exp}(\epsilon\cdot 𝟙(\nu \geq \nu_{th}))}{
diff --git a/chapter_federated_learning/prospect.md b/chapter_federated_learning/prospect.md
deleted file mode 100644
index 9ed7f9f..0000000
--- a/chapter_federated_learning/prospect.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 章节五:展望
-
-`章节五:联邦学习算法的改进:通信效率的提升、智能调频算法、客户端选择、异步联邦。。。`
-`未来展望:异构模型、联邦元学习、联邦强化学习`
-`联邦学习利益共享激励机制、生态系统、标准化发展`
-
-为了实现联邦学习的大规模商用,我们仍然需要做许多的研究工作。比如我们无法查看联邦学习的分布式化的数据,那就很难选择模型的超参数以及设定优化器,只能采用一些基于模拟的方案来调测模型;比如用于移动设备时,单用户的标签数据很少,甚至无法获取数据的标签信息,联邦学习如何用于无监督学习;比如由于参与方的数据分布不一致,训练同一个全局模型,很难评价模型对于每个参与方的好坏;比如数据一直是公司的核心资产,不同的公司一直在致力于收集数据和创造数据孤岛,如何有效地激励公司或者机构参与联邦学习的系统中来。。。下面将介绍一些MindSpore联邦学习在进行的一些尝试和业界的相关工作。
-
-
-
-**异构场景下的联邦学习**
-
-之前探讨的横向联邦和纵向联邦学习都是让不同的参与方共同建立一个共享的机器学习模型。然而,企业级联邦学习框架往往需要适应多种异构场景,如数据异构(不同客户端数据规模以及分布不一致),设备异构(不同客户端设备计算能力,通信效率不一致),以及模型异构(不同本地客户端模型学到的特征不一致)。
-
-比较主流的两种联邦异构场景下的工作:
-
-1)对异构数据具有高度鲁棒性的本地模型个性化联邦学习策略:
-
-联邦学习训练的是一个全局模型,基于所有数据得到一个全局最优解,但是不同参与方的数据量和分布都是不同的,很多场景下全局模型无法在把握整体的同时又照顾到这种差异。当某一方的数据和整体偏离比较大时,联邦学习的效果确实有可能不如本地训练的效果。那么如何在所有参与方总体的收益最大化的同时,让个体的收益也能够最大化,这就是个性化联邦学习。
-
-个性化联邦学习并不要求所有参与方最终使用的模型必须是一样的,比如允许每个参与方在参与联邦之后,根据自己的数据对模型进行微调,从而生成本方独特的个性化模型。在进行个性化微调之后,往往模型在本地测试集上的效果会更好。在这种方式下,不同参与方的模型结构是一样的,但是模型参数会有所不同。还有一些方案,是让所有的参与方拥有同样的特征提取层,但是任务分类层不同。还有的思路是将知识蒸馏引入联邦学习中,将联邦学习的全局模型作为teacher,将个性化模型作为student,可以缓解个性化过程中的过拟合问题。
-
-2)对于异构模型进行模型聚合的策略研究:
-
-一般在FedAvg的联邦聚合范式下,本地迭代训练次数越少、聚合地越频繁,模型收敛精度会越好,尤其是在不同参与客户端的数据是非iid的情况下。但是聚合会带来通信成本开销,联邦学习存在通信成本与模型精度的Trade-off。因此很多研究者聚焦于如何设计自适应聚合方案,要求在给定训练时间开销的前提下,找到本地更新和全局通信之间的最佳平衡,令全局模型的泛化误差最小。
-
-
-
- **通信效率提升**
-
-端云联邦学习流程中,每一个全局训练轮次里,每个参与方都需要给服务器发送完整的模型参数更新,然后服务器将聚合后的模型参数下发。现代的深度学习网络动辄有数百万甚至更大量级的参数,如此多的参数量传输将会带来巨大的通信开销带来性能瓶颈(用户流量、通信时延、客户端参与数量)。为了降低通信开销,MindSpore采取了一些改善通信效率的方法:
-
-1)智能调频策略:通过改变全局模型聚合的轮次来提高联邦学习效率,减少训练任务达到收敛的通信开销。一种直觉是在模型训练初期,参数变化剧烈,因此设置较大的聚合频率,使得模型快速收敛;在模型训练中后期,参数趋于稳定,因此设置较小的聚合频率,减少通信成本。
-
-2)权重量化压缩方案:对权重差进行量化以及稀疏化操作,即每次通信仅上传一小部分最重要参数的梯度,从而代替上传所有参数。之所以选择权重差做量化和稀疏,是因为它比权重值的分布更易拟合,而且稀疏性更高。量化就是将FP32的数据类型映射到INT8甚至更低比特表示的数值上,一方面降低存储和通信开销,另一方面可以更好地采用一些压缩编码方式进行传输(如哈夫曼编码、有限状态熵编码等)。比较常用的稀疏化方法有Top-k稀疏,即按梯度的绝对值从小到大排序,每轮只上传前k个参数,如何选取合适的\(k\)是一个有挑战性的问题。这个方案对于模型的联邦学习训练来说是有损的,在精度损失和通信压缩率之间也是trade-off。
-
-
-
-**联邦生态**
-
-在前面的章节中,我们介绍了面向隐私保护的联邦学习领域的一些技术与实践,然而随着探索地更加深入,联邦学习领域也变得更具包容性,它涵盖了分不是机器学习、模型压缩部署、信息安全、加密算法、博弈论等等。随着越来越多的公司、高校和机构参与进来,现在的联邦学习已经不仅仅是一种技术解决方案,还是一个隐私保护的生态系统,比如不同的参与方希望以可持续的方式加入联邦,如何设计激励机制,以确保利润可以相对公平地被联邦参与方共享,同时对于恶意的实施攻击或者破坏行为的参与方进行有效遏制。
-
-另外,随着用户数据隐私保护和合理使用的法律法规越来越多的被推出,制定联邦学习的技术标准显得愈加重要,这一标准能够在法律监管部门和技术开发人员之间建立一座桥梁,让企业知道采用何种技术,能够在合乎法规的同时更好地进行信息的共享。
-
-2020年底正式出版推行了由IEEE 标准委员会(SASB)通过的联邦学习国际标准(IEEE P3652.1),该标准旨在提供一个搭建联邦学习的体系架构和应用的指导方针,主要内容包括:联邦学习的描述和定义、场景需求分类和安全测评、联邦学习个性指标的评估如何量化、联合管控的需求。这也是国际上首个针对人工智能协同技术框架订立的标准,标志着联邦学习开启大规模工业化应用的新篇章。
\ No newline at end of file
diff --git a/chapter_federated_learning/summary.md b/chapter_federated_learning/summary.md
index ee93be9..a3f35af 100644
--- a/chapter_federated_learning/summary.md
+++ b/chapter_federated_learning/summary.md
@@ -1,4 +1,7 @@
## 小结
-在这一章,我们简单介绍了联邦学习的背景、系统架构、联邦平均算法、隐私加密算法以及实际部署时的挑战。联邦学习是一个新起步的人工智能算法,可以在“数据保护”与“数据孤岛”这两大约束条件下,建立有效的机器学习模型。
+在这一章,我们简单介绍了联邦学习的背景、系统架构、联邦平均算法、隐私加密算法以及实际部署时的挑战。联邦学习是一个新起步的人工智能算法,可以在“数据保护”与“数据孤岛”这两大约束条件下,建立有效的机器学习模型。此外,由于联邦学习场景的特殊性(端侧数据不上传、安全隐私要求高和数据非独立同分布等特点),使得系统和算法的开发难度更高:如何平衡计算和通讯的开销?如何保证模型不会泄露隐私?算法如何在非独立同分布场景下收敛?这些难点都需要开发人员对实际的联邦学习场景有更深刻的认识。
+
+在这一章,我们简单介绍了联邦学习的背景、系统架构、联邦平均算法、隐私加密算法以及实际部署时的挑战。联邦学习是一个新起步的人工智能算法,可以在“数据保护”与“数据孤岛”这两大约束条件下,建立有效的机器学习模型。
+
此外,由于联邦学习场景的特殊性(端侧数据不上传、安全隐私要求高和数据非独立同分布等特点),使得系统和算法的开发难度更高。如何平衡计算和通讯的开销,如何保证模型不会泄露隐私,以及算法如何在非独立同分布场景下收敛等等,都需要开发人员对实际的联邦学习场景有更深刻的认识。
diff --git a/chapter_federated_learning/vertical_fl.md b/chapter_federated_learning/vertical_fl.md
index 6ffd635..7629463 100644
--- a/chapter_federated_learning/vertical_fl.md
+++ b/chapter_federated_learning/vertical_fl.md
@@ -6,7 +6,7 @@
### 纵向联邦架构
-
+
:width:`800px`
:label:`federated-learning-vfl-arch`
@@ -49,7 +49,7 @@ $${t_i}^{'}=H^{'}(K_{b:i}) \\I=\{t_1,...,t_w\}\cap \{{t_1}^{'},...,{t_v}^{'}\}$$
在确样本ID对齐后,就可以使用这些公共的数据来训练机器学习模型。目前,线性回归、决策树和神经网络等模型已经被广泛应用到纵向联邦系统中。
在纵向联邦的模型训练过程中,一般会引入第三方协作者C来实现中心服务器功能,并且假设这个第三方协作者C是可信的,不会与其他参与方合谋。中心服务器在训练过程中作为中立方,产生和分发密钥,并对加密数据进行解密和计算。但中心服务器角色是非必须的,例如在两方联邦学习的场景下,不需要第三方协作者C来协调双方的训练任务,可以由具有标签数据的企业A来充当中心服务服务器的角色。不失一般性,下面继续以包含第三方协作者C的方案来描述纵向联邦模型联合训练过程。
-
+
:width:`800px`
:label:`federated-learning-vfl-train`
@@ -65,4 +65,3 @@ Paillier算法是一种满足加法的同态加密算法,已经广泛应用在
模型联合训练完成后就可以投入生产环境部署应用。由于纵向联邦中每个参与方具有部分模型结构,因此推理也需要双方协作完成计算。联合推理过程和联合训练类似,首先第三方协作者C将推理数据ID发送给企业A和B,双方在本地完成推理计算后将结果加密后传输到第三方协作者C,由C计算模型最终的联合推理结果。
-
diff --git a/img/ch10/ch10-federated-learning-architecture.png b/img/ch10/ch10-federated-learning-architecture.png
deleted file mode 100644
index 8ec60b6..0000000
Binary files a/img/ch10/ch10-federated-learning-architecture.png and /dev/null differ
diff --git a/img/ch10/ch10-federated-learning-architecture.svg b/img/ch10/ch10-federated-learning-architecture.svg
new file mode 100644
index 0000000..b48b20f
--- /dev/null
+++ b/img/ch10/ch10-federated-learning-architecture.svg
@@ -0,0 +1,1557 @@
+
+
+
+
diff --git a/img/ch10/ch10-federated-learning-vfl-arch.png b/img/ch10/ch10-federated-learning-vfl-arch.png
deleted file mode 100644
index 656882e..0000000
Binary files a/img/ch10/ch10-federated-learning-vfl-arch.png and /dev/null differ
diff --git a/img/ch10/ch10-federated-learning-vfl-arch.svg b/img/ch10/ch10-federated-learning-vfl-arch.svg
new file mode 100644
index 0000000..e2cbada
--- /dev/null
+++ b/img/ch10/ch10-federated-learning-vfl-arch.svg
@@ -0,0 +1,619 @@
+
+
+
+
diff --git a/img/ch10/ch10-federated-learning-vfl-train.png b/img/ch10/ch10-federated-learning-vfl-train.png
deleted file mode 100644
index 4d1c90f..0000000
Binary files a/img/ch10/ch10-federated-learning-vfl-train.png and /dev/null differ
diff --git a/img/ch10/ch10-federated-learning-vfl-train.svg b/img/ch10/ch10-federated-learning-vfl-train.svg
new file mode 100644
index 0000000..92cb18b
--- /dev/null
+++ b/img/ch10/ch10-federated-learning-vfl-train.svg
@@ -0,0 +1,927 @@
+
+
+
+