A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Beyond

Author Sawsan AbdulRahman, Hanine Tout, Hakima Ould-Slimane, Azzam Mourad, Chamseddine Talhi, Mohsen Guizani
Keywords AI; DL; distributed intelligence; FL applications; FL; ML; privacy; resource management; security;
Abstract 在隐私问题和深度学习愿景的驱动下,过去四年见证了机器学习适用机制的范式转变,一种称为联邦学习(FL)的新兴模式正在超越集中式系统和on-site分析。这是一种保护隐私的分散方法,它将原始数据保留在本机并训练本地模型,减轻了数据通信的负担,然后在中心服务器上执行学习和共享模型的联合,以在参与者之间聚合和共享构建的知识。本文首先检查和比较不同的基于ML的部署架构,然后对FL进行深入和广泛的调查。与该领域现有的评论相比,我们在全面分析主要技术挑战和当前相关工作的基础上,对FL课题和研究领域进行了新的分类。在此背景下,我们详细阐述了文献中各种具有挑战性的方面、贡献和趋势,包括核心系统模型和设计、应用领域、隐私和安全以及资源管理。此外,我们还讨论了一些重要的挑战和开放性的研究方向,以实现更强大的FL系统。
Year 2020
Publication INTERNET OF THINGS JOURNAL
DOI 10.1109/jiot.2020.3030072

1 INTRODUCTION

当今人们通过各种互联设备生产了海量的数据,有了这些数据,AI使我们的生活更高效。随着深度学习的迅速发展,现有的方法继续支持云中心架构,数据被集中储存和处理。除了不可接受的延迟和高代价,数据隐私和安全也是主要问题。

没有严格的隐私考虑,敏感数据很容易遭受泄露、攻击和网络风险。21世纪以来记录在案的最严重的违规行为中,各大公司数以亿计的用户受到影响。在这样的环境下,欧盟出台了GDPR法规( General Data Protection Regulation),它通过设置规则、限制数据共享和储存来保护个人隐私。

为了按照上述规章制度进一步加强数据保护工作,on-site ML和FL已经发展起来代替集中式系统。

尽管on-site ML将原始数据保留在本地,云端下发ML任务给设备,但是每个设备建立自己的模型,不从其他设备的数据和经验中获益。

因此联邦学习(FL)被引入克服这些问题,同时仍然保护了隐私,还减轻了数据收集的负担。它是一种在训练数据和本地计算处理上分散式的方法。在FL中,原始数据被保留在设备本地,在中心服务器上,只有来自设备本地计算的更新和分析结果被接收,并聚合成一个加强的全局模型,新模型接着为各客户机所共享。

与当前工作相关的现有调查文章概览:

但是文献仍然缺乏对FL核心建模、应用、技术和部署方面的综合调查,于是本文根据不同的分类学提出一个新分类和领域内关键挑战,包括核心系统模型和设计、应用领域、隐私和安全、资源管理。本文主要贡献如下:

  1. 详细阐述了基于ML的分析的部署架构的演变,对FL范式在当前研究和行业趋势中的努力和贡献进行了分类,并对FL核心系统模型和设计的关键技术方面进行了深入回顾和透彻分析。我们进一步讨论了为下一代FL解决方案铺平道路的挑战和有趣的开放研究方向。研究方向根据FL领域和主题进行分类,即系统模型和设计、应用领域、隐私和安全以及资源管理。
  2. 建立了一个FL应用领域的分类体系,涵盖了迄今为止引入FL方法的所有领域。
  3. 确定并分析了FL范式中解决隐私和安全问题的关键贡献。确定并分析了FL范式中解决隐私和安全问题的关键贡献。
  4. 我们对为FL设置提出的资源管理机制进行了全面分析,并根据目标函数和考虑的参数对优化方法进行了分类。

2 机器学习架构演变

本部分阐述ML架构的演变,从集中式到分布式on-site到FL。

  • 集中式ML:数据上传到云端,在云端训练模型,用户通过请求API的方式使用模型及服务。
  • 分布式on-site学习:每个设备在本地用自己的数据训练自己的模型,在第一次云端下发初始模型给设备之后,设备不再需要与云通信。
  • 联邦学习:每个设备在本地用自己的数据训练自己的模型,之后将模型参数发给中心服务器做聚合。数据保留在本地,知识通过聚合的模型共享给用户。

2.1 集中式学习

在传统方法下,设备产生的数据不断地上传到云端进行分析,在高性能服务器上能够提取更多的特征,模型能够得到更好的训练。Amazon Web Services、Google Cloud、Microsoft Azure都是可用的ML即服务的提供商,模型可以大规模部署和使用。

但是设备产生的数据可能是非常隐私且多样的,当这些数据云上共享的时候,用户隐私很可能为窃听攻击所妥协。这种云集中方式也产生了其他问题:

  1. 延迟。数据可能需要传输几千英里上云。
  2. 数据传输代价。将数据移入移出云都需要代价。

2.2 分布式on-site学习

on-site ML中,服务器下发预训练好的或是通用模型给设备,部署好模型后,每个设备在本地用自己的数据训练自己的模型,然后根据自己的模型做一些预测与推理。

这样的方法隐私上的优势很明显,数据从没离开过本地。皮肤病检测、医疗应用、指挥课堂、神经网络辅助服务等已有应用。

但是这种方法下,设备的模型没有从其他设备的数据中获益,没有发挥群体智慧。

2.3 联邦学习

Google在2016年提出了FL。在on-site ML之上,FL也是将训练任务放在设备本地上,但同时将本地模型和学习联合起来。它的主要目标是构建一个面向隐私保护的ML的框架。

3 预备:FL框架及设计

本部分介绍FL流程、产品应用及正式问题声明。

3.1 产品应用及开源框架

FL首先在Gboard(Google为安卓开发的键盘)上测试,FL加强了未来建议功能及与用户的交互,提供了更好的特性(例如下一词预测、词汇补全及修正等)。

FL开源框架有:tensorflow federated(TFF),federated AI technology enabler(FATE),PySyft,PaddleFL,Clara训练框架。

在科研界,图片分类和语言模型是最先广泛应用基于FL框架的领域,为了测试它们的表现,针对手写字符的Modified National Institute of Standards and Technology(MNIST)和针对图片的the Canadian Institute For Advanced Research(CIFAR)是文献实验中最流行的数据集。

3.2 FL生命周期及协议

FL生命周期分为许多连续的通信往来(round),一旦全局模型达到预期准确度则流程完毕。服务器首先生成一个通用模型,每轮(round)重复以下步骤:

  1. 服务器选取部分客户机。尽管客户机选择的典型条件是基于设备充电、空闲和未测量的连接状态,但是很少有这方面的工作。
  2. 被选中的客户机从服务器下载当前的模型参数并初始化本地模型。
  3. 被选中的客户机使用本地数据训练并优化全局模型。在典型的大多数被使用的技术中,客户机采用随机梯度下降算法(SGD)计算更新。受通信带宽限制,每算一个梯度就上传服务器带宽会不够用,所以在一轮(round)中采用mini-batch在本机上多训练几个epoch再上传服务器,这样可以获得更好的模型更新并减少通信代价。
  4. 一旦训练完成,客户机将优化后的模型参数发送给服务器。在这个过程中,一些客户机可能会由于连接差、受限的计算资源及大量的训练数据而掉线,因此超出服务器能掌控的客户机的宕机率会被报告,处理继续。如果及时报告的客户机的数量不够,当前轮(round)终止。
  5. 服务器在根据客户机的数据集大小对其进行加权后,聚合客户机更新(即联邦平均算法)。新的全局模型诞生,投入下一轮。
\[\begin{aligned}
& 算法1:Federated\ Averaging算法(FedAvg)。 \\
& K个客户端编号为k;B,E,\eta分别代表本地的minibatch\ size,epochs,学习率learning\ rate \\
& \\
& 服务器执行:\\
& \quad 初始化w_0 \\
& \quad for \ 每轮t=1,2,...,do \\
& \qquad m \leftarrow max(C \cdot K,1) \qquad\qquad //C为比例系数 \\
& \qquad S_t \leftarrow (随机选取m个客户端) \\
& \qquad for \ 每个客户端k \in S_t 同时\ do \\
& \qquad \qquad w^k_{t+1} \leftarrow 客户端更新(k,w_t) \\
& \qquad w_{t+1} \leftarrow \sum^K_{k=1} \frac{n_k}{n} w^k_{t+1} \qquad\qquad //n_k为客户机k上的样本数量,n为所有被选中客户机的总样本数量\\
& \\
& 客户端更新(k,w): \qquad \triangleright 在客户端k上运行 \\
& \quad \beta \leftarrow (将P_k分成若干大小为B的batch) \qquad\qquad //P_k为客户机k上数据点的索引集,P_k大小为n_k \\
& \quad for\ 每个本地的epoch\ i(1\sim E) \ do \\
& \qquad for\ batch\ b \in \beta \ do \\
& \qquad \qquad w \leftarrow w-\eta \triangledown l(w;b) \qquad\qquad //\triangledown 为计算梯度,l(w;b)为损失函数\\
& \quad 返回w给服务器
\end{aligned}
\]

3.3 问题公式化

FL关注有监督ML,样本\(i\)特征向量为\(x_i\),标签为\(y_i\),训练目标是通过最小化损失函数\(f_i(w)\)来找到模型参数向量\(w\)。基于ML模型,问题可以是凸的和非凸的。由于FL建立在非凸神经网络上,它的有限和函数优化算法描述如下(整个样本集的平均损失函数值最小):

\[\begin{aligned}
\min f(w), \quad \text { where } \quad f(w) &=\frac{1}{n} \sum_{i=1}^{n} f\left(x_{i}, y_{i}, w\right) \\
f(w) &=\frac{1}{n} \sum_{i=1}^{n} f_{i}(w)
\end{aligned}
\]

在FL里客户机的数据从未被组装,所以上式需要修改一下。设\(K\)个客户机参与学习,每个客户机有\(n_k=|P_k|\)个样本,\(P_k\)是整个数据集\(P\)分配给客户机\(k\)的部分,\(P=\cup_{k=1}^{K} P_{k}\)。因此,代表全局损失的新的损失函数是将每个本地损失\(F_k(w)\)加权平均(根据各自样本数量加权):

\[f(w)=\sum_{k=1}^{K} \frac{n_{k}}{n} F_{k}(w), \quad \text { where } \quad F_{k}(w)=\frac{1}{n_{k}} \sum_{i \in P_{k}} f_{i}(w)
\]

4 FL技术挑战及研究领域:新的分类

本部分讨论FL技术挑战并对主要研究领域进行新分类。

为什么FL区别于传统分布式学习环境:

  1. 非独立同分布数据(Nonindependent and Nonidentically Distributed,Non-IID):每个客户机根据自己的使用情况生成自己的数据集,数据是本地的、分散的,其他客户端看不到,这使得每个设备的数据不具有代表性,在总体中分布不一致。
  2. 不平衡数据:设备不同使用方式、客户机本地环境和客户机之间不交流导致了客户机之间训练数据量差异很大。
  3. 大规模分布式数据:FL的参与者可以达到几百万,从移动手机到物联网设备、组织机构、交通工具等。参与者的数量预计比每个参与者的平均样本数量还要大得多。
  4. 不可靠的设备连接:在大多数时候,客户机处于低速、受限、昂贵和不可用的连接下,这大大降低了可用客户机数量。此外,由于不同的计算能力,许多可用客户机无法每轮都参与学习。
  5. 受限的设备存储:通常在移动设备,特别是在物联网设备中,可用的存储预算通常是受限的。另外,随着batch size提升,内存占用也会提升。这不仅会导致设备在训练阶段掉线,也会迫使设备采用小batch训练简单模型。
  6. 投毒攻击:客户机匿名可能会使一名攻击者被选中参与FL训练,因此,攻击者可以在训练阶段通过提供有毒数据来利用这一优势,同时使模型产生偏离。

FL问题研究主要分为四类:

  • 系统模型及设计
  • 应用领域
  • 隐私与安全
  • 资源管理

5 FL系统模型及设计

FL系统模型及设计的努力与贡献可以分为五个主要领域:通信代价、客户机选择、优化与聚合算法、Non-IID、激励措施。

5.1 通信代价

  • [32]提议研究两种方法。一种是结构化更新,通过提出两种类型:低位掩码和随机掩码,为更新施加一个预定义的结构。低秩将模型参数分为两个矩阵,其中一个是固定的,另外一个发送到云。另一方面,随机掩码可以以只发送非零值而不是整个条目的方式生成矩阵结构;第二种方法是草图更新,它要求更新完整模型,有损压缩后发给服务器。
  • [43]致力于减小服务器与客户机生成的模型大小。首先,采用federated dropout技术生成一个有较少参数的较小的子模型,然后服务器对生成模型进行有损压缩后发送给客户机。客户机解压缩后开始训练,训练后有损压缩后发送给服务器,服务器解压后做聚合。
  • [44]采用over-the-air计算法则提出了更快的聚合模型。
  • [45]致力于满足FL的以下需求:允许上下游压缩、使模型在小batch及不平衡的非独立同分布数据下变得鲁棒、可以掌控大量参与学习的客户机。
  • [46]提出了一个加强的FL框架,不仅降低了通信代价(采用异步策略),也提升了模型准确度(考虑到前几轮训练模型成果而非只考虑本轮训练)。
  • [47]采用双流模型。
  • [48]应用在讲话场景中的唤醒语检测(“Hey Siri”),用Adam-based adaptive averaging策略代替标准的FedAvg算法。
  • [49]提出一个通信减负FL方案(CMFL),解决FL通信负担瓶颈。

我们天真地以为只要恪守FL协议就能完整地传输模型,然而事实并非如此,通信负担成为了FL的一个瓶颈,连通性成为一个大问题,特别是当上行链路比下行链路网络连通更差的时候。

5.2 客户机选择

客户机选择的典型条件是基于设备充电、空闲和连接到未测量网络(例如WIFI)。然而,在处理通信和计算资源方面异构的客户机时,仅依赖这些标准会带来许多缺点,例如训练时间长。

  • [41]讨论了客户机的不同特征,这些特征会影响整个训练过程的效率。该提案由一个新的FL协议FEDC组成,确定了能够在特定期限内完成下载、更新和上传模型的FL步骤的客户端子集。
  • 在[42]中,除了资源调度算法之外,这项工作还扩展到了客户机选择方面。在前者中,选择两组客户机,一组更新模型,另一组通过提供一些激励将自己的数据上传到服务器。服务器首先使用基于IID的原始数据更新模型,然后使用聚合模型进行更新。此外,利用一些验证数据对模型性能进行了测量。

当随机选取参与FL的客户机时,模型训练到部署将会依赖于客户机的表现。

5.3 优化与聚合算法

  • [3]选取了FedAvg算法并经过广泛评估证明该方法可以被实际应用。
  • [51]讨论了现存FL算法的不足,不能满足以下FL需求:大规模分布数据点、Non-IID、不平衡数据。据此提出了联邦随机方差减少梯度,仅经过几轮迭代收敛到最优分类准确度。
  • [53]除了集中优化之外,他们对FedAvg、FSVRG、CO-OP三种算法进行了基准测试,以比较它们的性能,结果表明FedAvg比其他算法表现更优。至于集中式优化,它在Non-IID划分中的性能优于FedAvg,但两者的性能在IID方式下相似。
  • [54]表明原生FL在最小化损失的时候完全依赖于数据的均匀分布,然而,这使模型偏向于特定的客户,使得FL系统不够完善。因此,作者提出了一个不可知FL框架,当出现任何客户机分布组合时,该框架会优化聚合模型。作者还提出了一种新的快速随机优化方法来解决上述问题。
  • [55]强调了在FL中,为了提高模型的准确性,需要进行多轮的通信,这会导致无法忍受的延迟和网络饱和。为了减少所需的通信轮数,通过部署移动边缘服务器作为客户机和云端之间的中介,提出了一种分层联邦平均算法。提议的解决方案最初在边缘服务器上进行多个本地聚合,以便在稍后阶段将客户端模型发送到云端进行全局聚合。
  • [56]中,中央服务器和客户端之间的大量通信轮被替换为一轮,以克服FL中通信的关键瓶颈。
  • [57]选择了一组关于客户机的标准,作为每个客户贡献的基础。接下来,为这些标准分配优先级,并对参数聚合使用在线调整。

FL里通信比计算代价更大,实现可以在不给主干网络造成负担的情况下以快速收敛的方式最大限度地减少轮数的优化和聚合算法至关重要。

5.4 Non-IID数据

非独立同分布的数据会使模型产生偏差,特别是在使用SGD训练的时候。

  • [58]解决了倾斜Non-IID数据下准确性降低的问题。这意味着每个客户机设备只能根据自己的行为训练一个单独的类。方案旨在通过与所有参与的客户共享一组包含类(标签)均匀分布的小数据来提高准确性水平。除了共享数据之外,每个客户机还使用其本地私有数据来构建ML模型。
  • [42]通过提出混合FL解决了FL中的Non-IID问题。后者为客户提供了一些激励措施,鼓励他们将数据上传到服务器。
  • [59]首先指出,当在分布式的节点上执行FL时,FL面临两个挑战,即统计和系统。当需要从不同节点生成的Non-IID分布式数据中学习模型时,会出现统计挑战。在系统挑战方面,由于贡献的设备在通信、存储和计算方面具有不平衡的数据和不同的容量,这导致了一些容错和掉队。作者证明了多任务学习可以解决统计问题,还提出了新的优化方法MOCHA应对系统挑战。

在高倾斜Non-IID数据下使用FedAvg时,CNN准确度大大降低。基本上,在FL中部署DNN依赖于SGD。后者训练数据应代表整个样本分布,以免在梯度估计中产生偏差。虽然这种属性基于IID数据分布,但FL遵循非IID方式,因为独立客户机根据自己的行为和使用情况生成数据,因此实现最初的FedAvg算法并没有保证性能。

5.5 激励

虽然现存的方法关注优化FL的方方面面,但是很少在意客户机不情愿参与训练或者选择了模型更新质量低的客户机的情况。

  • [61]得出,一些被服务器选择的、算力和通信能力受限的客户机不愿意浪费自己的资源。作者解决该问题通过基于合同理论设计一个激励机制鼓励用户在FL中做贡献。训练模型的数据质量越高,准确度越高,模型迭代次数越少。因此,客户机数据质量越高,得到的奖励越多。
  • [62]提出一种基于荣誉的可靠工作者的选择方法,为了选出有着高准确度和高效的训练数据的客户机,采用一种依靠于客户机以往的同其他FL服务交互及行为的客观的逻辑模型去评估“荣誉”。

经典的FL基于被选中的客户机总是可用的并且随时可以开始学习的假设,然而现实场景并非如此,相当数量的设备极可能在处理过程中掉线,甚至由于资源代价和限制拒绝参与学习。为了更快收敛全局模型,激励有着高质量数据的客户机是非常需要的。

6 FL应用领域

本部分为FL应用领域做一个新的分类。

6.1 Gboard应用

FL最初在Gboard(Google虚拟键盘)上使用,[4]改善了Gboard的搜索建议。为了验证参与FL的资格,客户机需要满足不同的需求,包括环境需求(设备规格、语言限制)及其他服务器声明的限制(参与学习的客户机的目标数量、每轮学习最小客户机数量、训练频率、等待接收模型更新的时间阈值、为了进行一轮必须报告的客户机比例)。

评估表明,晚上训练样本较多,白天损失较大。对实时部署的观察进一步显示,实际的查询点击率与预期的查询点击率相比有时略有下降。

Gboard也在[5]中使用FL为了训练一个更复杂的神经网络模型,证明了比在集中式数据上训练的模型有更好的表现。

  • [63]证明了RNN在Gboard上通过FL预测emoji(表情)的能力。
  • [64]改编了FL,更精确地联合基于字符的RNN学习字典之外的词汇(OOV)。

6.2 健康关怀

  • [10]提出了一种策略叫FADL,神经网络第一层使用所有数据以联邦的方式训练,其他层用各自数据本地训练。
  • [11]提出了一种基于集群的FL算法预测死亡与住院时间。基于通常的医疗方面在医院内部将电子健康记录聚类成簇(集群),每个集群内部进行学习和共享。
  • [65]中,FL也被用来预测心脏病患者的住院情况。考虑了两种情况,第一种是半集中的场景,其中每个代理/数据源持有多个样本,而第二种是完全分散的场景,其中每个代理持有一个样本。
  • [66]在医疗网络物理系统领域设计了一个基于FL的入侵检测系统。为了提供高性能模型,对具有相似特征的同质患者进行聚类,每个聚类创建其个性化的局部和全局模型。
  • [67]提出了可穿戴医疗设备的联邦迁移学习方法。
  • [68]中提出了一个FL框架,用于生物医学数据的分析。本研究分别使用局部任务的特征选择和交替方向乘数法和聚集法,研究神经系统疾病等多种疾病中的亚顺序脑改变。
  • [69]和[70]在考虑FL的同时,专注于用于脑肿瘤分割的医学图像预测。他们的解决方案允许多个机构通过共享本地计算模型进行协作。
  • [71]中,FL还用于对从各种设备收集的脑电图(EEG)信号进行分类。

6.3 物联网(IoT)系统

为了限制大规模物联网设备的漏洞,FL被应用在了物联网系统上。由于设备上密集的计算负载,边缘计算被设想去支持和卸载从物联网到边缘节点之间的任务。

  • [72]提出了一种基于物联网异常检测的入侵检测系统。不同的安全网关,每个网关监控一种特定设备类型的流量,在本地训练封闭的循环单元模型,并将其发送给物联网安全服务进行聚合。这样的系统可以在没有用户干预的情况下工作,并且能够检测到新的攻击。
  • [8]提出了一种针对资源受限设备的轻量级学习模型。首先,提出的解决方案在设备级应用高斯随机投影,以模糊训练数据。接下来,对于没有足够计算资源进行训练的参与设备,由协调器接管。
  • [9]考虑到边缘级别的代理数据与存储在物联网设备上的数据相关性较小。因此,后者负责训练模型,而边缘节点执行更新聚合。
  • [73]中考虑了许多方面,以实现物联网的完全安全FL方法。

6.4 其他应用领域

  • 首先,FL已经被应用于边缘系统,同时在[74]中整合了深度强化学习。
  • [75]利用FL动态分配资源块,并为可能处于常规或报警模式的机器类型设备传输功率。
  • [12]中应用了机器人中的联邦强化学习。这项工作使机器人能够融合和转移他们的学习经验,以便快速适应新的环境设置。
  • [76]提出了一种基于强化学习的FL方法,旨在通过代理之间共享有限的加密信息来学习代理的Q网络策略。
  • [77]引入了一种自适应方法来确定局部模型更新和全局聚合参数之间的权衡,该方法能够在客户端资源约束下最小化学习损失。
  • [78]提出了一种针对FL设置的协同过滤方法。这项工作生成了一个推荐系统,根据其他客户的反馈为用户个性化推荐。
  • [79]将FL用于异常检测。
  • [80]选择将FL应用于在线零售业务活动。
  • [18]在无线通信中保护了数据的隐私。在介绍了FL及其显著特征后,作者讨论了该领域的几种可能应用,同时主要关注边缘、频谱管理和5G核心网络中的内容兑现和数据计算。
  • [81]分析了驾驶员行为指标,以预测电动汽车在电池和相关附件方面的故障。

6.5 总结

  1. 在IoT中,第一个挑战是所有IoT系统级特点,例如1)设备在硬件、连接、功率方面的异构性;2)网络规模及每台设备的限制(影响它们在 FL 过程中活动的能力,使包括掉队者和容错在内的障碍比其他环境(如数据中心)更加普遍)。另外,通信应当高效,因为在这样的环境中通信是很昂贵的。
  2. 虽然基于强化学习的FL方案可以融合学习经验并在新环境中将其迁移到导航上,使得允许FL的机器人导航可以处理多样的输入输出维度,给机器人系统提供了广泛的帮助,但这仍然是一个开放性挑战。
  3. 虽然FL证明了在推荐系统中保护隐私的能力,但在该领域仍然有许多挑战。首先,处理在线学习以对系统进行基准测试,换句话说,分析有着来自客户端的连续异步更新的现实生活系统。另外,在这样的系统中,处理分析通信能力和效率的方法是一个挑战。保护推荐系统学习模型免受攻击和威胁的技术也是一个挑战。
  4. 对于网络安全而言,在将权重更新存储在区块链上之前,提出一种聚合算法来应对所有硬件异构性、不可靠连接和间歇性连接的节点,以缓解投毒攻击,仍然是一项挑战。
  5. 无线通信中的一个重要挑战是模型的鲁棒性,其中任何通信带宽、噪声、干扰和其他方面都是可能加剧信道瓶颈的因素。此外,收敛时间是另一个相当大的挑战,它不仅取决于本地节点和集中式聚合器,而且还取决于它们之间的通信信道的质量,在优化更新交换频率和聚合频率时应考虑这一点。最后,聚合器和任何本地学习者之间的无线信道质量会影响训练过程,这是一个更具挑战性的问题。

7 隐私和安全

尽管FL的首要问题是通过防止数据共享来实现严格的隐私保护,但与隐私和安全相关的新挑战已经出现。最近所做的努力已经清楚地证明,模型更新的传输仍然可以披露有关客户端的敏感信息[19],[97],甚至更糟的是,可能会引发安全问题[98]。在本节中,我们将概述解决这些问题的相关方法。

7.1 隐私

现有隐私保护算法仍然会使用户隐私遭受风险。如[99]所示,FL中的攻击者可能会从客户机的训练数据中泄露信息。作者表示,恶意客户机能够推断训练集中是否存在确切的数据点,例如特定位置。此外,作者还研究了如何从参与的客户数据中推断属性。因此,保护FL模型需要严格的隐私保障。由于参与者可以在整个过程中自由加入和退出一轮沟通,FL环境会导致许多角色产生各种威胁模型和漏洞。

FL系统中不同的恶意角色(如上图所示):

  1. 恶意服务器:潜在的恶意服务器不仅可以检查模型更新,还会篡改模型。
  2. 内部对手:会有恶意的客户机参与学习。
  3. 外部对手:在信任的客户机于服务器之间通信更新的时候,信道中会有窃听者出现。

鉴于这些威胁,最近的提议被推进以防止数据泄露。[98]调查了FL系统中的隐私与安全相关问题,首先,除了在整个FL框架上应用安全性,还讨论了在客户和服务器侧着手的几种保护方案。接着,隐私与安全问题被分类为收敛、数据中毒、拓展规模和模型聚合,对于每种分类,一些实验与可能的方案被提出以构建一个隐私保护的FL系统。另一方面,其他研究人员已经使用了不同的隐私技术(如下图所示),主要属于加密协议和差分隐私(DP)的范畴下。

差分隐私(Differential Privacy,DP):通过注入一些噪声来掩盖客户对模型参数的影响[97]。

  • [101]介绍了一种算法,旨在使用DP解决数据泄漏问题。在所提出的算法中,使用了两种方法:1)随机子采样,其中在每一轮通信中,服务器选择一个随机的客户端子集与之共享全局模型;2)应用高斯技术来扭曲聚合的更新,但确保这不会超过一定的限制,因为它将添加影响学习过程准确性的不希望的噪声。
  • [102]中提出了联邦平均算法的新版本,其中Moments Accountant用于满足用户级隐私。
  • [103]将DP机制应用于医疗应用。在真实世界的健康数据集上进行了实验,结果表明,在没有DP的情况下,FL的性能接近集中式系统。此外,在应用DP时,尽管增加了隐私级别,但是所研究的医疗保健应用程序产生了重大损失。这将促使研究人员考虑未来基于DP的系统的应用。

安全多方计算(Secure Multiparty Computation,SMC):它是密码学协议的一个子领域,目的是当多方在其私人输入上联合执行任意功能时,只显示输出。

  • [104]中的一项研究使用SMC构建FL系统。所提出的协议考虑秘密共享,在密钥共享过程中添加新的回合(round)、保护恶意服务器的双掩蔽回合、有效交换秘密的密钥协议以及最小化信任的服务器中介密钥协议。

同态加密(Homomorphic Encription,HE):它是一种通过直接在密文上做计算来保护客户机数据的加密形式[105]。

  • [106]在使用HE时提出SecureBoost(一种用于保护隐私的无损树增强系统)。本文的创新之处在于多个参与方的协作模型,这些参与方的数据是垂直分区的,而不是水平分区的。
  • [107]使用HE为私有FL处理垂直划分的数据。具体来说,在跨特征空间中,逻辑回归使用Paillier加密进行私密联合。此外,还分析了影响学习过程的实体解析错误。

混合协议(Hybrid Protocols):使用组合技术来更好地保护原始数据。

  • [108]提出了联邦迁移学习,以构建隐私保护的FL框架。为了尽量减少对神经网络结构的调整,这种方法使用了HE到多方计算的方法。
  • [109]中,隐私保护FL系统是使用跨异构特征空间的转移学习构建的。该方法在HE和秘密共享设置下提供,包括以下步骤:1)安全域适配;2) 安全特征映射;3) 安全FL;4) 安全模型集成;5)局部模型推理。
  • [110]中的工作强调了计算多方聚合的需要,在这种情况下,所有参与者都不会透露其更新,不仅是在彼此之间,也不会向聚合器透露。
  • [111]提出以混合方法实现DP和SMC。实验表明,该方法能够训练决策树、SVM和CNN模型。

其他技术

  • [112]构建了一个系统来对抗投毒攻击。在模型被提取和聚合之后,所提出的方法允许共享黑盒环境下构建的模型的知识。
  • [113]旨在检测诱发型攻击(对手喂给分类器恶意活动以干扰最终模型)。
  • [114]允许客户机对神经网络参数编码和压缩,服务器解码它们以聚合,形成了一个端到端的加密模式。

7.2 安全

除了针对用户隐私的恶意角色,在其他类型的攻击和可能的漏洞下,FL系统也是很脆弱的。后者通常是用户不经意间造成的,例如训练混乱的数据、嘈杂的标签等。另一方面,对手会有意伤害模型表现。下图描绘的是敌对攻击者可能做的两种攻击类型:数据投毒和模型更新投毒。

数据投毒(Data Poisoning):在FL学习的过程中,一个或多个客户机在正确地参与一或多轮学习之后可能恶意作为,给联合模型投毒。这样的敌人可以通过clean-label和dirty-label攻击操纵训练阶段,其中dirty-label攻击允许用一个不相关命不中的标签替换原有标签,而clean-label攻击看起来无害,因为它注入了有毒数据,导致模型本身在没有攻击者对标签进行任何控制的情况下被干扰。

label-flipping是dirty-label攻击的一个特例,在[115]中已被证明是FL漏洞之一。根据已进行的实验,可以清楚地证明,仅仅两个恶意sybils即可使最终模型受到严重影响。作者还表明,ML中现有的防御不适用于FL环境,尤其是基于sybil的攻击。因此,他们提出了一种基于客户机贡献相似性的新解决方案来防止此类攻击。使用上述DP技术可以缓解此类攻击。

模型更新投毒(Model Update Poisoning):与往训练集中注入恶意数据的方式不同,模型更新投毒攻击试图通过欺骗本地模型直接破坏全局模型。与数据投毒攻击相比,模型更新投毒攻击看起来不那么自然,但更有效。

如[116]和[117]所示,入侵者可以单独行动,也可以与其他共谋参与者一起行动。此外,[116]通过证明参与FL步骤的任何客户机都可以在共享的全局模型中呈现隐藏的后门(backdoor)功能,将秘密后门引入到全局模型中。它们表明,一个攻击者的单次攻击足以在后门任务上实现100%的准确率。在他们对单词预测任务进行的实验中,8万名参与者中有8人被认为是恶意的,与数据中毒攻击中的400名入侵者相比,他们能够在后门上实现50%的准确率。

防御投毒攻击:为了保护系统免受投毒攻击,已经提出一些方法。

  • [118]中,区块链取代了vanilla FL中中心协调员的支持,本地模型在区块链网络中共享和验证,同时为客户提供奖励。在这项工作中,学习过程的整体延迟被规范化并最小化。
  • [119]在物联网环境中提出了一种安全的数据协作系统。为了保证数据的私密性和安全性,在FL的设置下,利用区块链范式建立了高效的数据访问控制,保证了大规模分布式数据计算的安全协作。
  • [105]考虑了这样一种情况:一个客户机有问题要解决,一些客户机持有适当的数据,而另一些客户机拥有具有足够计算资源的设备。针对这种情况,提出了一种加密方案,初始客户机创建公钥和私钥,并对模型参数进行加密。然后,适当的客户机协作利用提供的资源和私有加密数据,以便成功地训练模型。区块链技术和数据完整性也被用于提议的方法中,以实现更稳健的FL解决方案。

7.3 总结

FL的主要思想是将ML模型引入数据源,以避免将数据引入模型,从而保证数据隐私。目前关于FL安全和隐私的工作提出了无损方法,并证明了它们的有效性,同时保留了原始的准确性。然而,其中一些技术带来了巨大的额外通信成本,而其他方法包含了一系列超参数,这些超参数不仅会影响准确性,还会影响通信。此外,压缩技术和DP之间的融合将带来更大的好处。此外,安全和隐私约束可能会从一个设备转移到另一个设备,甚至可能跨越单个设备上的数据片段,这是一个挑战。因此,从这样的角度来看,可以解决各种特定样本数据和特定设备边界的新技术看起来很有希望。

8 资源管理

FL应用于动态环境中,在动态环境中,客户端拥有受限的资源设备,并通过带宽受限的网络进行通信,其中一些设备可以共享相同的链路。因此,许多贡献一直以来关注资源管理以做出有关客户机选择、超参数学习、训练轮的次数与持续时间、聚合策略的最佳决定。在这样的环境下,假设以下指标(如下图所示)子集的可用性/可预测性,各种优化问题被定义和解决。

  1. 客户机可靠性:资源(CPU,电量),定位追踪(GPS定位),本地训练时间,更新参数的质量(准确度,损失)。一些相关工作在每轮学习中假设这些指标“实际”值的可用性,而其他人采用各种方法“预测”这些值。
  2. 网络连接质量:上行链路/下行链路带宽(已经可用的或可能分配的)。
  3. 中心聚合服务器:聚合时间,全局模型准确度,损失。

文献针对各种目标提出了优化方法,包括全局模型(准确度、损失)收敛时间、客户机消耗资源、无线连接使用。在这方面,我们提供了下表所示的FL资源管理方法的分类。

主要的优化方法

  • [120]通过联合优化本地训练batchsize和无线资源分配,解决了加速DNN训练任务的问题。
  • [77]在考虑Non-IID数据分布的情况下,对FL的收敛边界进行了分析。此外,他们提出了一种控制算法,在有限的资源预算下,在最小化损失函数的同时,实现局部更新和全局聚合之间的预期权衡。
  • [121]将客户选择问题描述为一个在线时变非线性整数规划,该规划将计算和通信资源的总累积使用量降至最低,分别取决于服务器容量以及每个设备和服务器上本地和聚合模型的长期收敛要求。

无线网络相关方法

  • [122]提出了无线网络上的FL问题,该问题包含以下权衡:1)通过采用Pareto效率模型,权衡学习时间与客户机能耗;2)通过计算最佳学习精度,权衡计算与通信学习时间。
  • [123]通过制定一个联合带宽分配和调度问题来最小化训练时间,并达到所需的模型精度,从而最大化FL训练相对于时间的收敛速度。
  • [124]将联合学习、无线资源分配和客户选择问题描述为最小化FL损失函数的优化问题。提出了一个封闭形式的表达式来量化无线因素对FL收敛速度的影响。他们使用匈牙利算法来寻找最佳的用户选择和资源分配,以最小化FL损失函数。
  • [125]提出了一种通过无线网络实现自组织FL的方法。他们采用启发式算法来最小化全局FL时间,同时考虑局部能耗和资源块。
  • [126]提出了一个分析和描述FL性能的模型。考虑到调度方案和小区间干扰的影响,推导了FL收敛速度的可处理表达式。此外,他们还研究了随机调度、循环调度和比例公平调度策略的有效性(收敛速度)。

从所研究的贡献中,我们可以看到,在移动和无线网络环境下,FL管理的主要挑战是在参与的客户端之间最佳地共享带宽。至于管理能量完善,其基础是:1)减少模型参数更新的传输,2)优化局部模型训练。前一种策略是有效的,后一种策略受到无线设备及其其他计算任务的异构性的限制。

覆盖客户模型参数的方法:最近,一些研究人员开始研究在FL通信轮(round)中由模型改进机会指导的调度技术。

  • [127]设计了调度策略,用于根据信道条件和本地模型更新的重要性来决定处理每轮传输的设备子集。实验结果表明,与仅基于这两个指标之一的调度相比,该方法具有更好的长期性能。
  • [128]的贡献为客户端共享公共无线链路的无线网络中的资源分配提供了一个长期的视角。该方法基于实验观察,表明在最初的学习轮中选择较少的客户,并逐渐增加这个数量,是对学习绩效影响最大的策略。作者提出了一个随机优化问题,用于选择客户端和分配带宽,同时考虑长期客户端能量限制。这一贡献的一个关键设计元素是利用Lyapunov技术,为每个客户机构建一个虚拟能量不足队列。
  • [129]提出了一种基于分层的FL(TiFL)系统,该系统根据客户机的训练表现将客户机分为多个层次,同时应用基于分层的自适应客户机选择。
  • [130]提出了一种调度策略,以利用多用户信道的多样性和边缘设备学习更新重要性的多样性(通过梯度散度测量)。他们提出了一种新的概率调度框架,以产生无偏的更新聚合。
  • [131]提出了一种主动算法,该算法基于对移动客户端未来训练和报告质量的预测来选择移动客户机。所采用的方法包括两个主要部分:1)预测用户的移动轨迹模式及其智能手机的应用程序使用习惯;2)基于深度强化学习的客户机选择算法,处理大都市MEC(边缘云)环境中发生的意外动态事件。

虽然考虑到客户机模型更新的质量对于提高FL管理技术的效率非常有希望,但这些方法面临着许多挑战。首先,通信的模型参数和实际的本地训练活动之间没有可追溯性。第二,识别(Non-IID)数据的情况非常困难。最后,不能保证在前几轮中提供良好参数的客户在未来几轮中会提供相同质量的参数。

基于卸载(Offloading-Based)的方法:一个有趣的方向是卸载到边缘结点与分层组织。

此”卸载“非彼”卸载“,这里offload是指将任务”卸货“到某些地方,并非是指将应用程序卸载。

  • [132]介绍了一种分层联邦边缘学习框架,其中模型聚合部分从云端卸载到边缘服务器。提出并解决了一个联合计算和通信资源分配及边缘关联问题。在优化收敛时间和资源消耗时,考虑了带宽、时间和电量约束。
  • [133]提出了一种针对异构蜂窝网络的方法。FL由小型基站在其小区内的移动用户之间协调,这些基站定期将模型更新传达给宏基站,以获得全局共识。他们的方法通过联合稀疏化和周期平均以及最小化端到端延迟的资源分配策略来确保高效通信。

虽然呼吁FL计算卸载,但这些方法在移动设备(主要是智能手机)环境中的适用性有限,在移动设备中几乎不可能组织设备。然而,在无线传感器网络中,这些方法预计会对FL的采用产生重大影响,在无线传感器网络中,大多数传感器设备都有严重的资源限制,并且通常围绕更强大的边缘设备组织在一个层次中。

总结:现有方法的主要目标是在优化资源消耗的同时达到最好的全局学习效果(最小化损失并/或最大化准确度)。然而,这些方法的效率取决于客户机在通信所需的指标(CPU,时间等)时是否诚信,或者取决于预测算法的可靠性。另外,一个中心服务器没有对于用于训练客户机本地模型的数据的数量和质量的核查机会,这解释了为什么少有方法([127] [129])考虑客户机模型参数的质量。事实上,中央服务器无法控制相关客户端的资源监控工具。无线网络带宽是唯一动态分配给客户端并由现有方法管理的资源,前提是调度实体位于网络节点(如基站)处。

9 研究方向

本部分给出一些挑战与未来方向。

9.1 核心系统模型及设计

该类别涵盖FL的不同技术方面,包括使用的ML算法、优化和聚合机制、模型通信技术、部署模型和数据分布,以及采用的框架等。在这方面,基线聚合算法、联邦平均算法都已发展到了只考虑数据集大小去做聚合和加权更新的模型。然而,这种算法的收敛性取决于应用,更复杂的方法值得研究。新方法可以在减少通信次数的情况下达到预期的精度,从而降低通信成本。此外,在FL实现中高度鼓励使用神经网络以外的算法。这种模型尺寸较小的算法也有助于最小化通信和计算成本。尽管在这方面提出了一些令人鼓舞的方法,但仍有很大的工作空间。更进一步的,FL另一基本方面是客户机的选择,通常,从一轮到另一轮(round),不同客户机集被选择。当选择涉及资源有限的一些客户机时,例如物联网设备,客户机不仅需要更长的处理时间,而且可能无法完成训练任务,从而影响模型的准确性。因此,随机选择客户端会导致客户端发送的更新数量减少,因此一些FL轮将被丢弃[31]。因此,需要更多的努力来优化FL客户机选择,同时考虑网络特性和为训练模型而选择的设备的生存能力。

9.2 应用领域

更广泛的努力和贡献是针对应用领域的,其中医疗保健和物联网系统是最广泛的目标领域。在另一个方向上,在边缘FL中,以最小的学习开销证明了良好的性能效率,但在这方面仍需要考虑一些挑战。首先,为优化学习计算任务而制定定制技术仍然是一项挑战。此外,无论是在边缘节点还是移动设备上,都需要协作人工智能任务的调度方法。

此外,自主车辆和无人机(UAV)是很有前景的领域,可能有很多有用的应用,例如出租车、食品配送、医疗配送、虚拟现实应用、检查、公共安全、事故报告、交通监控等。无人机应用分为三类[134]:1)配送系统;2) 实时多媒体流媒体;3)智能交通系统,每个系统都面临许多无线和安全挑战。为了解决后者,[134]在没有提供完整框架的情况下,为第一类和第三类引入了基于FL的解决方案。因此,研究适用于自动驾驶车辆和无人机系统的FL方法可能是一个有希望的投资方向。

此外,[135]提出了FL环境下智能家居的一个用例。在他们的解决方案中,共享同一智能设备的不同用户可以受益于经过训练的模型,智能家居中的不同设备可以受益于其他设备的数据和模型。在这种情况下,当智能家居设备受到攻击时,可以实施基于IDS的体系结构,我们可以假设:1)所有连接的设备都有足够的资源来执行训练任务;2) 这些设备都没有所需的资源,监护人可以负责训练;3)一些设备能够训练模型。对于所描述的体系结构,[135]为其实现提供了一个完整的模拟试验台。智能家庭环境可能是研究FL部署的一个极好的匹配。

另一方面,大多数现有解决方案考虑FL应用的标记数据。然而,在实际场景中,有标记的数据集,甚至高质量的标记数据集都是一个挑战。因此,迫切需要新的解决方案来解决这种限制。

9.3 隐私与安全

虽然隐私和安全性是采用FL作为相关解决方案的最初目标之一,但分布式方面提出了其他需要解决的问题,例如泄露用户的敏感信息或毒害本地数据和共享模型。尽管最近的努力采用了不同的基于隐私的解决方案,但仍存在一些挑战。当使用DP时,会注入不同级别的噪声,这会导致一些缺点。首先,噪声会损害已建立的模型,导致精度损失。只有少数设备参与,才能保持可接受的精度。此外,这种做法不能保护数据隐私免受恶意服务器攻击。另一方面,即使密码方法被认为是无损的,也会带来密集的通信开销,有些方法甚至没有强大到可以检测中毒攻击的程度。因此,迫切需要设计强大的隐私保护和安全系统,在这种情况下,隐私和安全需要正式的保证,并且精确性会受到严重损失。

9.4 资源管理

由于ML训练和学习通常需要大量计算,因此资源管理对于实现相关、可持续和高效的基于FL的解决方案起着重要作用。在这方面,很少有研究开始将边缘计算集成到FL[8]、[73]、[74]中,以支持具有额外计算资源的终端设备。然而,在两个主要方向上仍然需要鲁棒系统。首先,由于FL的关键瓶颈在于通信带宽,边缘节点之间的一些协作可以决定向云发送的最佳客户端更新、发送更新的频率,以及有助于减少通信周期的其他标准。其次,由于FL不仅包括移动电话,还包括范围更广的设备,如物联网、车辆等,因此训练任务可以移动或卸载到边缘节点,以释放资源受限设备的密集计算[136],[137]。

10 总结

FL已成为一种新兴的学习范式,它可以应对智能手机、可穿戴设备和自动驾驶车辆等设备不断增长的计算能力,同时还可以保护私人数据。在减少数据通信开销的同时,本地存储数据和将ML计算推送到终端设备的需求不断增加,这促使研究人员做出了许多努力,将这种FL训练设置应用于许多学科。在这种背景下,本文对FL体系结构、设计和部署进行了深入和广泛的研究,并将其与基于ML的集中式和分布式现场系统进行了比较。此外,在全面文献综述的基础上,对FL主题和研究领域进行了新的分类,并对其关键技术和新兴方面进行了分类,包括核心系统模型和设计、应用领域、隐私和安全以及资源管理。最后,讨论了为外语教学的未来前景量身定制的一些挑战和新的研究方向。我们相信,我们调查FL的拟议方法可以为未来的研究进展和领域进展提供基本见解。

【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Beyond(综述)的更多相关文章

  1. 论文笔记系列-Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves

    I. 背景介绍 1. 学习曲线(Learning Curve) 我们都知道在手工调试模型的参数的时候,我们并不会每次都等到模型迭代完后再修改超参数,而是待模型训练了一定的epoch次数后,通过观察学习 ...

  2. 论文笔记系列-Neural Network Search :A Survey

    论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...

  3. 【论文笔记系列】AutoML:A Survey of State-of-the-art (下)

    [论文笔记系列]AutoML:A Survey of State-of-the-art (上) 上一篇文章介绍了Data preparation,Feature Engineering,Model S ...

  4. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  5. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  6. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  7. 论文笔记(1):Deep Learning.

    论文笔记1:Deep Learning         2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...

  8. 论文笔记(2):A fast learning algorithm for deep belief nets.

    论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...

  9. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

随机推荐

  1. 半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session

    1正则表达式 1.1基本的匹配字符串 $p = '/apple/'; $str = "apple banna"; if (preg_match($p, $str)) { echo ...

  2. Schema和数据类型优化?

    整数TinyInt,SmallInt,MediumInt,Int,BigInt 使用的存储8,16,24,32,64位存储空间.使用Unsigned表示不允许负数,可以使正数的上线提高一倍.实数 Fl ...

  3. Kafka 的设计架构你知道吗?

    Producer :消息生产者,就是向 kafka broker 发消息的客户端. Consumer :消息消费者,向 kafka broker 取消息的客户端. Topic :可以理解为一个队列,一 ...

  4. Mybatis 的一级、二级缓存?

    1)一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 C ...

  5. volatile 类型变量提供什么保证?

    volatile 变量提供顺序和可见性保证,例如,JVM 或者 JIT 为了获得更好的性能 会对语句重排序,但是 volatile 类型变量即使在没有同步块的情况下赋值也不会 与其他语句重排序. vo ...

  6. 什么是 Spring MVC 框架的控制器?

    控制器提供一个访问应用程序的行为,此行为通常通过服务接口实现.控制器解 析用户输入并将其转换为一个由视图呈现给用户的模型.Spring 用一个非常抽象 的方式实现了一个控制层,允许用户创建多种用途的控 ...

  7. 解释基于 XML Schema 方式的切面实现?

    在这种情况下,切面由常规类以及基于 XML 的配置实现.

  8. spring aware 的个人理解

    今天学习到了spring aware ,特地百度了下这方面的知识,现在谈下我的理解. Spring的依赖注入的最大亮点就是你所有的Bean对Spring容器的存在是没有意识的.即你可以将你的容器替换成 ...

  9. Java Lambda详解

    Lambda表达式是JDK 8开始后的一种新语法形式. 作用:简化匿名内部类的代码写法 简化格式 (匿名内部类被重写方法的形参列表) -> { 重写方法 } Lambda表达式只能简化函数式接口 ...

  10. 完美解决 scipy.misc.imread 报错 TypeError: Image data cannot be converted to float

    File "/home/harrison/anaconda3/lib/python3.7/site-packages/matplotlib/image.py", line 634, ...