联邦学习研究综述【联邦学习】
文章目录
- 0 前言
- 机器学习两大挑战:
- 1 什么是联邦学习?
- 联邦学习的一次迭代过程如下:
- 联邦学习技术具有以下几个特点:
- 2 联邦学习的算法原理
- 目标函数
- 本地目标函数
- 联邦学习的迭代过程
- 3 联邦学习分类
- 横向联邦学习
- 纵向联邦学习
- 联邦迁移学习
- 4 Challenges
- 4.1 通信效率短板明显
- 目前的研究中针对通信效率的改进主要有以下 3 种方法:
- (1)算法优化
- (2)压缩
- (3)分散训练
- 综合方法
- 4.2 隐私安全仍有缺陷
- 4.3 缺乏信任与激励机制
- 5 研究热点
- (1)系统异构
- (2)统计异构
- (3)无线通信
- 结合边缘计算的应用
- 6 前景展望
- (1)边缘计算和物联网
- (2)智慧医疗
- (3)金融风控
- (4)智慧城市
- (5)涉密数据的安全共享
0 前言
机器学习两大挑战:
- 数据安全难以得到保障,隐私数据泄露问题亟待解决。
- 网络安全隔离和行业隐私,不同行业、部门之间存在数据壁垒,导致数据形成“孤岛”无法安全共享,而仅凭各部门独立数据训练的机器学习模型性能无法达到全局最优化。
为了解决以上问题
谷歌提出联邦学习(FL,federated learning)技术,其通过将机器学习的数据存储和模型训练阶段转移至本地用户,仅与中心服务器交互模型更新的方式有效保障了用户的隐私安全。
1 什么是联邦学习?
传统的机器学习算法需要用户将源数据上传到高算力的云服务器上集中训练,这种方式导致了数据流向的不可控和敏感数据泄露问题。
Mcmahan 等在 2016 年提出联邦学习技术,允许用户在机器学习过程中既可以保护用户隐私,又能够无须源数据聚合形成训练数据共享。
联邦学习本质上是一种分布式的机器学习技术,其流程如图 1 所示。
多个客户端设备(如平板电脑、手机、物联网设备)和中心服务器(如服务提供商)的协调下,共同训练一个模型。在这一过程中,客户端负责利用本地数据进行模型训练,得到本地模型(local model),而中心服务器则负责将各客户端训练得到的本地模型进行加权聚合,从而形成全局模型(global model)。通过多轮迭代,这一过程最终得到一个效果接近于传统集中式机器学习的模型 ( w w w ),从而有效降低了传统机器学习中由于数据集中带来的隐私风险。
联邦学习的一次迭代过程如下:
- 客户端从服务器下载上一轮的全局模型 w t − 1 w_{t-1} wt−1 。
- 客户端 k k k 利用本地数据训练得到本地模型 w t , k w_{t,k} wt,k (第 k k k 个客户端在第 t t t 轮通信中的本地模型更新)。
- 各客户端将本地模型更新上传至中心服务器。
- 中心服务器接收各客户端的数据后进行加权聚合操作,得到全局模型 w t w_t wt(第 t t t 轮通信中的全局模型更新)。
联邦学习技术具有以下几个特点:
- 参与联邦学习的原始数据保留在本地客户端,与中心服务器交互的只是模型更新信息。
- 联邦学习的参与方共同训练出的模型 w w w 将被各方共享。
- 联邦学习最终的模型精度与集中式机器学习相似。
- 联邦学习参与方的训练数据质量越高,全局模型的精度越高。
2 联邦学习的算法原理
联邦学习的目的是在保证数据隐私的前提下,通过多个客户端设备协作训练一个全局模型 w \mathbf{w} w 。在这种方法中,数据存储和处理都是在本地客户端设备上完成的,只有模型更新的梯度信息需要上传至中心服务器。
目标函数
中心服务器的目标是优化全局模型的目标函数 F ( w ) F(w) F(w) ,这个目标函数通常定义为所有客户端设备的加权平均:
min w F ( w ) , F ( w ) = ∑ k = 1 m n k n F k ( w ) (1) \min_{w} F(w), \quad F(w) = \sum_{k=1}^{m} \frac{n_k}{n} F_k(w) \tag{1} wminF(w),F(w)=k=1∑mnnkFk(w)(1)
其中:
- m m m 是参与训练的客户端设备总数。
- n n n 是所有客户端数据量总和,即 n = ∑ k = 1 m n k n = \sum_{k=1}^{m} n_k n=∑k=1mnk 。
- n k n_k nk 是第 k k k 个客户端的数据量。
- F k ( w ) F_k(w) Fk(w) 是第 k k k 个设备的本地目标函数。
本地目标函数
每个客户端 k k k 的本地目标函数 F k ( w ) F_k(w) Fk(w) 定义为其本地数据损失函数的平均值:
F k ( w ) = 1 n k ∑ i ∈ D k f i ( w ) (2) F_k(w) = \frac{1}{n_k} \sum_{i \in \mathcal{D}_k} f_i(w) \tag{2} Fk(w)=nk1i∈Dk∑fi(w)(2)
其中:
- n k n_k nk 是第 k k k 个客户端的本地数据集的大小。
- D k \mathcal{D}_k Dk 是第 k k k 个客户端的本地数据集。
- f i ( w ) f_i(w) fi(w) 是模型参数 w w w 对应于数据样例 i i i 的损失函数。
联邦学习的迭代过程
-
初始化全局模型:中心服务器初始化全局模型参数 w 0 \mathbf{w}_0 w0。
-
客户端接收全局模型:在每一轮迭代 t t t 开始时,中心服务器将当前的全局模型参数 w t \mathbf{w}_t wt 发送给所有参与训练的客户端。
-
本地模型更新:每个客户端 k k k 接收到全局模型参数 w t \mathbf{w}_t wt 后,利用本地数据 D k \mathcal{D}_k Dk 进行本地训练,更新本地模型参数。可以采用小批量随机梯度下降(SGD)的方法:
w t + 1 k = w t − η ∇ F k ( w t ) \mathbf{w}_{t+1}^k = \mathbf{w}_t - \eta \nabla F_k(\mathbf{w}_t) wt+1k=wt−η∇Fk(wt)
其中, η \eta η 是学习率。 -
上传本地模型:各客户端将更新后的本地模型参数 w t + 1 k \mathbf{w}_{t+1}^k wt+1k 上传至中心服务器。
-
全局模型聚合:中心服务器接收各客户端上传的本地模型参数,并进行加权聚合,得到新的全局模型参数 w t + 1 \mathbf{w}_{t+1} wt+1。聚合操作通常采用加权平均:
w t + 1 = ∑ k = 1 m n k n w t + 1 k \mathbf{w}_{t+1} = \sum_{k=1}^{m} \frac{n_k}{n} \mathbf{w}_{t+1}^k wt+1=k=1∑mnnkwt+1k -
重复迭代:重复上述过程,直到满足预定的停止条件(例如达到最大迭代次数或模型精度达到预期)。
3 联邦学习分类
联邦学习的应用场景不同,客户端之间持有的数据集特征各不相同。
假设:
- D m \mathcal{D}_m Dm 代表客户端 m 持有的数据;
- I I I 表示样本 ID;
- Y Y Y 表示数据集的标签信息;
- X X X 表示数据集的特征信息;
- 一个完整的训练数据集 D \mathcal{D} D 应由 ( I , Y , X ) (I,Y,X) (I,Y,X) 构成。
根据参与训练客户端的数据集特征信息 X X X 的不同,联邦学习被分为横向联邦学习、纵向联邦学习和联邦迁移学习。
横向联邦学习
横向联邦学习的特点是数据集特征 X X X 和标签信息 Y Y Y 相同,但样本 ID 不同,如图所示:
在用户输入法数据上训练的下一词预测模型是典型的横向联邦学习应用。不同的手机用户具有相同的数据特征,数百万个安卓手机在云服务器的协调下训练共享的全局模型,其本质是将多方对不同目标的相同特征描述进行训练提取。
纵向联邦学习
纵向联邦学习的特点是各数据集特征 X X X 和标签信息 Y Y Y 不同,但样本 ID 信息相同,如图所示:
纵向联邦学习中一方掌握训练的标签信息 Y Y Y,各方通过输入特征信息 X X X,得到纵向全局模型。
其典型应用场景如同一地区的银行和电商平台:
- 银行拥有当地用户的收支记录 x 1 x_1 x1,
- 电商平台拥有用户的消费记录和浏览记录 x 2 x_2 x2,
- 双方想通过数据联合对客户信用 Y Y Y 进行评级,从而提供更个性化的服务。
其本质是将多方对相同目标的不同特征描述进行训练提取。
联邦迁移学习
联邦迁移学习的特点是数据集特征 X X X、标签信息 Y Y Y 和样本 ID 信息都不同,如图所示:
联邦迁移学习被用于解决标签样本少和数据集不足的问题,如中国的电商平台与其他国家银行之间的数据迁移,由于跨部门跨国的数据交流很难实现,通过联邦迁移学习可以很好地解决这类痛点问题。
4 Challenges
4.1 通信效率短板明显
联邦学习(Federated Learning)作为一种分布式机器学习方法,旨在保护数据隐私并利用广泛分布的数据进行模型训练。然而,联邦学习在实际应用中面临着许多威胁与挑战,尤其是通信效率方面的短板。以下是一些主要的问题和挑战:
-
通信效率问题:
在联邦学习网络中,服务器与各个远程客户端之间需要频繁地进行模型更新的通信。这种通信要求大量的带宽,尤其是在客户端数量达到万计时,网络负担显著增加。通常,联邦学习的全局模型训练时间包括数据处理时间和通信传输时间。随着计算机设备算力的提升,数据处理时间在不断降低,而通信传输时间却成为了训练速度的主要瓶颈。 -
数据分布的不一致性:
联邦学习的数据集来自不同的终端用户,这些用户产生的数据特征通常是非独立同分布(Non-IID)的。具体来说,各个客户端的数据集可能有不同的概率分布(即,客户端 i i i 和客户端 j j j 的数据分布 P i P_i Pi 和 P j P_j Pj 可能不同)。传统的分布式计算框架算法在处理独立同分布(IID)数据时效果良好,但在处理Non-IID
数据时,会导致训练过程难以收敛,并且需要更多的通信轮次。 -
通信开销问题:
在互联网环境下,大量的本地模型更新和上传会导致中心服务器的通信开销过大,这可能无法满足实际应用的需求。同时,相邻的模型更新中可能包含许多重复的信息或与全局模型不相关的更新。
目前的研究中针对通信效率的改进主要有以下 3 种方法:
(1)算法优化
开发适合处理Non-IID和非平衡分布数据的模型训练算法,减少用于传输的模型数据大小,加快模型训练的收敛速度。这种方法通过改进算法,使得在同样的数据量下能够更快地达到理想的模型性能,从而降低通信负担。
(2)压缩
压缩能够有效降低通信数据大小,但对数据的压缩会导致部分信息的丢失。因此,此类方法需要在模型精度和通信效率之间寻找最佳的平衡。压缩方法包括梯度压缩、模型剪枝、量化等技术,通过减少传输的数据量来提高通信效率。
(3)分散训练
将联邦学习框架分层分级,降低中心服务器的通信负担。例如,通过区域性服务器或中间节点来处理局部模型更新,然后再由中心服务器进行全局模型聚合。这种方法能够减少中心服务器的通信压力,提高整体的通信效率。
综合方法
在大多数情况下,这几种方法是相辅相成的,通过特定的方法把这几种方案结合是研究的热点方向。综合运用算法优化、压缩和分散训练,可以在保证模型精度的前提下,显著提升联邦学习的通信效率。
文献 | 压缩 | 本地优化 | 算法性能 | 算法特点 |
---|---|---|---|---|
基准算法 FedSGD | √ | 弱 | 分布式计算基准算法 | |
McMahan 等针对联邦学习的低带宽环境提出 FedAvg 算法 | √ | 弱 | FedAvg 算法与其优化 | |
MFL、LoAdaBoost | √ | 强 | 针对 FedAvg 算法的优化 | |
CMFL | √ | 强 | 优化筛选机制,过滤无关更新 | |
Konečný 等提出针对本地模型的结构化更新和草图更新算法 | √ | 强 | 传统压缩方法 | |
Caldas 等将Konečný 等提出方法应用于对全局模型更新的压缩中,同时提出 Federated Dropout 思想优化模型更新 | √ | 强 | 传统压缩方法+算法优化 | |
Lu 等提出自适应阈值梯度压缩算法 | √ | 强 | 适应性修改压缩阈值 | |
Sattler 等提出一种新的稀疏三元压缩(STC)框架 | √ | 强 | 对 non-IID 数据表现较好 |
注:以 FedAvg 为基准,算法性能大于 3 倍为强压缩,小于 3 倍为弱压缩。“√”表示通信效率算法的类别。
4.2 隐私安全仍有缺陷
联邦学习通过源数据不出本地而仅交互模型更新(如梯度信息)的方式来保护用户的敏感数据,开创了数据安全的新范式。理想情况下,联邦学习中客户端通过训练源数据上传本地模型,服务器仅负责聚合和分发每轮迭代形成的全局模型。然而,在真实的网络环境中,存在多种隐私安全威胁,这些威胁使得仅通过模型更新来保护用户隐私的方式显然是不够的。
主要威胁
-
模型反演攻击:
研究表明,梯度信息会泄露用户的隐私数据。攻击者可以通过客户端上传的梯度信息间接推出标签信息和数据集的成员信息。Carlini等从训练用户语言数据的递归神经网络中提取出了用户的敏感数据,如特定的银行卡号。Fredrikson等研究了如何从模型信息中窃取数据隐私,并通过药量预测实验实现了对线性回归模型的反演攻击,获得了患者的敏感信息。 -
成员推理攻击:
恶意客户端或服务器通过分析模型更新信息,推测源数据的隐私信息。Hitaj等用生成对抗网络(GAN)对模型聚合发起攻击,实验结果表明,恶意客户端能够通过产生相似的本地模型更新来窃取用户数据隐私。 -
模型推理攻击:
恶意服务器企图获得客户端的源数据。Gei等证明了从梯度信息重建输入数据的可行性,并将一批输入图像用余弦相似度和对抗攻击的方法恢复出来。
如图5所示,联邦学习主要存在三种威胁:
- 恶意客户端修改模型更新,破坏全局模型聚合。
- 恶意分析者通过对模型更新信息的分析推测源数据隐私信息。
- 恶意服务器企图获得客户端的源数据。
增强隐私安全性的方案
为了应对上述威胁,增强联邦学习隐私安全性的主流方案与经典机器学习隐私保护技术结合,包括差分隐私(DP,differential privacy)、安全多方计算(MPC,secure multi-party computation)、同态加密(HE,homomorphic encryption)等技术。
-
差分隐私(DP):
差分隐私通过在数据或梯度信息中添加噪声来保护用户隐私。大量研究表明,联邦学习与差分隐私结合能够在大量客户端参与时提供较强的安全性。然而,在较少客户端参与的情况下,噪声的影响会导致模型精度显著下降,且差分隐私算法中包含的大量超参数限制了进一步的应用。设随机化算法 A A A ,对于两个至多有一条数据不同的数据集 D D D 和 D ′ D' D′ 以及任意可能的输出 S S S ,若算法 A A A 满足:
Pr [ A ( D ) ∈ S ] ≤ e ϵ Pr [ A ( D ′ ) ∈ S ] + δ \text{Pr}[A(D) \in S] \leq e^{\epsilon} \text{Pr}[A(D') \in S] + \delta Pr[A(D)∈S]≤eϵPr[A(D′)∈S]+δ
则称随机化算法 A A A 满足 ( ϵ , δ \epsilon, \delta ϵ,δ) 差分隐私保护。
其中, ϵ \epsilon ϵ 代表隐私保护预算, δ \delta δ 是算法允许的误差,通常为较小的常数。Dwork 等人于 2006 年提出了差分隐私概念,并使用严格的数学推导给出了安全性证明。通常,差分隐私算法的噪声机制分为指数噪声、Laplace 噪声和高斯噪声,其中,指数噪声主要用于处理离散数据集,Laplace 噪声和高斯噪声主要用于处理连续数据集。
-
安全多方计算(MPC):
安全多方计算允许多个参与方在不暴露各自输入的情况下进行联合计算,从而保护隐私。联邦学习与安全多方计算的结合能够提供无损全局模型的构建,但同时会增加通信开销,如何在通信负担和模型安全之间找到平衡是一个重要的挑战。假设有 n n n 个参与方 P 1 , P 2 , … , P n P_1, P_2, \ldots, P_n P1,P2,…,Pn 分别拥有自己的敏感数据 m 1 , m 2 , … , m n m_1, m_2, \ldots, m_n m1,m2,…,mn,这 n n n 个参与者在不泄露各自输入数据的前提下共同执行一个协议函数 f ( m 1 , m 2 , … , m n ) f(m_1, m_2, \ldots, m_n) f(m1,m2,…,mn)。
安全多方计算的研究焦点是在没有可信第三方的条件下,参与训练各方安全计算一个共同的约束函数。姚期智于 1983 年提出了安全多方计算的概念,通过混淆电路、不经意传输、秘密分享等技术实现多方共同运算,并确保各方数据的安全性。
-
同态加密(HE):
同态加密允许对加密数据进行直接计算,从而保护数据隐私。虽然同态加密技术能够确保模型更新过程中的数据安全,但其计算和通信开销较大,也是需要解决的问题。设有明文数据 d 1 , d 2 , … , d n d_1, d_2, \ldots, d_n d1,d2,…,dn,这 n n n 个数据对应的加密数据为 m 1 , m 2 , … , m n m_1, m_2, \ldots, m_n m1,m2,…,mn,若加密算法满足:
Enc ( f ( d 1 , d 2 , … , d n ) ) = f ( Enc ( d 1 ) , Enc ( d 2 ) , … , Enc ( d n ) ) \text{Enc}(f(d_1, d_2, \ldots, d_n)) = f(\text{Enc}(d_1), \text{Enc}(d_2), \ldots, \text{Enc}(d_n)) Enc(f(d1,d2,…,dn))=f(Enc(d1),Enc(d2),…,Enc(dn))则称该加密算法满足同态加密。同态加密能够直接对密文数据进行密码学运算,最终运算结果经解密后与在明文上直接运算的结果一致。Rivest 等人于 1978 年提出了同态加密概念。同态加密分为全同态加密和部分同态加密,其中部分同态加密分为乘法同态和加法同态,若一个算法既满足乘法同态又满足加法同态,则称为全同态加密算法。
4.3 缺乏信任与激励机制
联邦学习为现代社会建立了一个数据安全共享的架构,尤其在未来万物互联的场景中,不同的机构和部门之间的数据联合会形成一个巨大的联邦学习联盟,旨在构建基于大数据和多特征融合的智能分析决策模型。然而,这一理想的实现面临以下两大挑战:
-
缺乏高效的激励机制:
联邦学习需要吸引大量客户端参与到训练过程中,没有高效的激励机制很难吸引足够的训练数据,进而无法保证最终的智能模型质量。客户端的参与意愿直接影响到模型的性能和覆盖范围,因此设计有效的激励机制至关重要。 -
缺乏信任机制:
联邦学习缺乏统一的信任机制,对于客户端的信誉没有统一的分数评价。这会导致难以选择优质的客户端,从而影响全局模型的精度。没有信任机制的约束,可能会出现一些恶意或低质量的客户端,影响整体训练效果。
结合区块链技术的解决方案
为了应对上述问题,学术界提出了结合区块链技术的解决方案。区块链是比特币的底层技术,它作为一种安全可靠、不可篡改和支持查询验证的分布式分类账,被广泛应用于解决各类数据安全存储和信任问题。区块链技术能够为联邦学习提供以下优势:
-
安全记录模型更新:
通过集成区块链,联邦学习能够以一种安全、高度抗中断和可审计的方式记录其模型更新,为系统框架提供可问责性和不可否认性。每次模型更新的信息都可以在区块链上进行记录和验证,防止恶意篡改和数据丢失。 -
激励机制:
区块链的激励机制能够为联邦学习提供一种经济回报,基于客户端对模型构建的贡献给予相应的奖励。这种激励机制可以采用加密货币或代币的形式,鼓励更多的客户端参与训练并提供高质量的数据。通过激励机制,不仅可以提高参与度,还能提升数据质量和模型精度。 -
信誉机制:
区块链可以为每个客户端建立一个信誉评分系统,根据其历史贡献和行为进行评价。信誉评分可以帮助选择优质的客户端,保证模型训练的可靠性和精度。通过区块链技术,所有参与者的行为记录和贡献都可以透明地记录在链上,形成一个可信赖的评价体系。
5 研究热点
不同于传统的分布式机器学习技术,海量客户端与Non-IID数据集对联邦学习提出了新的挑战。目前,学术界对于联邦学习的研究十分活跃,研究者不仅需要掌握机器学习技术,还需要掌握分布式算法优化、密码学、压缩量化、信息论、统计等技术。本文介绍了联邦学习在通信效率、隐私安全、信任与激励机制等方向上的研究进展,但仍有一些其他研究方向值得探索。
(1)系统异构
在联邦学习环境中,由于参与训练的客户端之间硬件配置、网络带宽、电池容量等不同,各终端设备的计算能力、通信速度和存储能力各不相同。除此之外,联邦学习架构通常会限制终端设备参与训练的数量,尤其是在数百万设备参与的训练中,处于活跃状态的往往只有数百个客户端。每个客户端并不一定可靠,随时可能因为网络故障、算力限制等问题退出训练,这些系统级别的异构会给模型整体效能造成极大的挑战。因此,适用于系统异构的联邦学习算法必须满足以下三点要求:
- 客户端的低参与率;
- 兼容不同的硬件结构;
- 能够容忍训练设备的中途退出。
(2)统计异构
不同的终端设备通常使用各式各样的方式生成、存储和传输数据,因此各设备之间数据的特征和体量可能有很大的不同,导致数据呈Non-IID分布和非平衡分布。尽管这类分布的数据集可以通过通信效率优化的方式处理,但仍然存在一些针对统计异构的解决方法,如通过多任务学习框架学习不同的局部模型。类似于元学习,多任务学习由于对个性化和特定于设备建模的支持,已经成为解决数据统计异构性的主流方法。
(3)无线通信
在5G技术日益普及的今天,联邦学习开始逐渐应用于无线网络领域。
由于无线信道的带宽容量有限,因此在发送信息之前,需要对模型更新进行量化压缩,在这种模式下,一个重要的考虑因素是存在量化误差时模型更新的鲁棒性。
除了通信带宽外,无线通信中复杂的噪声和干扰也是加剧信道瓶颈的因素。
因此,开发适用于无线通信的联邦学习算法具有突出的研究意义。
结合边缘计算的应用
除了对联邦学习本身技术的改进,最新的研究进展包括结合边缘计算在物联网领域的应用。
由于部分终端设备没有足够的计算资源,同时为了满足智能决策的低时延响应,边缘计算在云中心和边缘设备之间添加了边缘服务器作为中介层。
联邦学习作为其“操作系统”满足了智能边缘设备实时决策、多点协同、自主可控的要求。
充分利用智能边缘服务器的计算、存储、传输能力,改变传统集中上传数据进行决策的方式,破解了传统集中式机器学习数据难以聚合、隐私难以保护、云中心的单点故障等问题,为未来多功能集群、跨多智能设备的实时安全决策提供了可靠的技术保障。
6 前景展望
在大数据时代,如何在保障数据安全和隐私的前提下,实现数据共享,促进多源数据的碰撞、融合,最大限度地释放数据价值,成为学术界和产业界面临的挑战之一。而联邦学习作为应对该挑战的一项新兴技术,在诸多领域具有广阔的应用前景。
(1)边缘计算和物联网
随着智能手机和移动互联网的普及应用,大量数据产生在设备的边缘端,移动边缘计算使计算发生在本地设备,而不需要将隐私数据发送到云端。联邦学习作为边缘计算的操作系统,提供了一种各方协作与共享的协议规范,使得边缘设备在不向云端设备发送源数据的情况下,能够合作训练出一个最优的全局机器学习模型。未来,随着物联网的进一步发展,人工智能和边缘计算将朝着一体化的方向大步向前。
(2)智慧医疗
为了降低人工成本和减少人为操作失误的可能,机器学习技术越来越多地应用在医疗领域,用于提升医疗诊治的效率和准确率。然而,由于医疗机构的数据对于隐私和安全的敏感性,医疗数据中心很难收集到足够数量、特征丰富的、可以全面描述患者症状的数据。而性能良好的机器学习模型往往需要来自多个数据源,包括医疗报告、病例特征、生理指标、基因序列等。联邦迁移学习是解决这类问题的有效方法,无须交换各医疗机构的私有数据,协同所有的训练参与方训练一个共享模型,同时迁移学习技术可以扩展训练数据的样本空间和特征空间,有效降低各医疗机构之间样本分布的差异性。
(3)金融风控
为了维持金融行业稳定、风险控制和防止金融诈骗,银行和金融企业希望利用人工智能技术为客户提供有效且安全的金融服务。在实际应用中,对客户“肖像”特征的描述通常包括资质信息、购买能力、购买偏好及商品特征等,而这些信息分别分布在银行、电子商务平台和用户的私人社交网络中。出于隐私安全的考虑,将三方数据聚合并不现实,而联邦学习为构建跨企业、跨数据平台以及跨领域的大数据和AI系统提供了良好的技术支持。
(4)智慧城市
随着人工智能、物联网和5G技术的发展,智慧城市的概念已经跃然纸上。然而,在城市的不同信息部门中,如后勤、应急、维稳、安保等,会产生大量的异构数据,形成多个数据孤岛,无法整合利用。联邦学习的异构数据处理能力能够帮助人们创造迅速响应市民需求的智慧城市,解决数据“孤岛”问题,同时基于智慧城市构建的机器学习模型为企业提供个性化服务带来了更多的机遇。
(5)涉密数据的安全共享
在大数据环境下,数据的安全交换显得尤为敏感。常规共享交换使多部门数据汇集的方法,极有可能导致权限难以控制、责任划分不清、问题难以追责,甚至造成失泄密等重大安全事故。如何解决涉密数据的安全共享难题,联邦学习技术的跨域共享特性使各部门之间无须汇集数据即可实现敏感数据的跨域安全共享。
相关文章:
联邦学习研究综述【联邦学习】
文章目录 0 前言机器学习两大挑战: 1 什么是联邦学习?联邦学习的一次迭代过程如下:联邦学习技术具有以下几个特点: 2 联邦学习的算法原理目标函数本地目标函数联邦学习的迭代过程 3 联邦学习分类横向联邦学习纵向联邦学习联邦迁移…...
深入理解Python中的列表推导式
深入理解Python中的列表推导式 在Python编程中,列表推导式(List Comprehension)是一种简洁而强大的语法,用于创建和操作列表。它不仅提高了代码的可读性,还能显著减少代码的行数。本文将详细介绍什么是列表推导式,如何使用它,以及一些实际应用示例,帮助读者更好地理解…...
Android 实现左侧导航栏:NavigationView是什么?NavigationView和Navigation搭配使用
目录 1)左侧导航栏效果图 2)NavigationView是什么? 3)NavigationView和Navigation搭配使用 4)NavigationView的其他方法 一、实现左侧导航栏 由于Android这边没有直接提供左侧导航栏的控件,所以我尝试了…...
如何快速下载拼多多图片信息,效率高
图片是电商吸引顾客的关键因素,高质量的商品图片能提升产品吸引力,增强用户购买欲望。良好的视觉展示有助于建立品牌形象,提高转化率。同时,图片也是商品信息的主要传递媒介,对消费者决策过程至关重要。 使用图快下载器…...
windows 10下,修改ubuntu的密码
(1)在搜索框里面输入cmd,然后点击右键,选择管理员打开 Microsoft Windows [版本 10.0.22631.3880] (c) Microsoft Corporation。保留所有权利。 C:\Windows\System32>C: C:\Windows\System32>cd ../../ C:\>cd Users\ASUS\AppData\Local\Micros…...
【MySQL】慢sql优化全流程解析
定位慢sql 工具排查慢sql 调试工具:Arthas运维工具:Skywalking 通过以上工具可以看到哪个接口比较慢,并且可以分析SQL具体的执行时间,定位到哪个sql出了问题。 启用慢查询日志 慢查询日志记录了所有执行时间超过指定参数(lon…...
RabbitMQ高级特性 - 消息分发(限流、负载均衡)
文章目录 RabbitMQ 消息分发概述如何实现消费分发机制(限制每个队列消息数量)使用场景限流背景实现 demo 非公平发送(负载均衡)背景实现 demo RabbitMQ 消息分发 概述 RabbitMQ 的队列在有多个消费者订阅时,默认会通过…...
信号处理——自相关和互相关分析
1.概括 在信号处理中,自相关和互相关是相关分析非常重要的概念,它们能分析一个信号或两个信号在时间维度的相似性,在振动测试分析、雷达测距和声发射探伤得到了广泛的应用。自相关分析的研究对象为一个信号,互相关分析的研究对象…...
如何解决部分设备分辨率不适配
1)如何解决部分设备分辨率不适配 2)Unity中如何实现草的LOD 3)使用了Play Asset Delivery提交版本被Google报错 4)如何计算弧线弹道的落地位置 这是第396篇UWA技术知识分享的推送,精选了UWA社区的热门话题,…...
C#插件 调用存储过程(输出参数类型)
存储过程 CREATE PROCEDURE [dbo].[GetSum]num1 INT,num2 INT,result INT OUTPUT AS BEGINselect result num1 num2 END C#代码 using Kingdee.BOS; using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Util; using System; using System.…...
代码随想录算法训练营day32 | 509. 斐波那契数 、70. 爬楼梯 、746. 使用最小花费爬楼梯
碎碎念:开始动态规划了!加油! 参考:代码随想录 动态规划理论基础 动态规划常见类型: 动规基础类题目背包问题打家劫舍股票问题子序列问题 解决动态规划问题应该要思考清楚的: 动态规划五部曲࿱…...
【人工智能专栏】Learning Rate Decay 学习率衰减
Learning Rate Decay 学习率衰减 使用格式 optimizer = torch.optim.SGD(model.paraters(), lr=0.1, momentum=0.9, weight_decay=1e-4) scheduler = torch.optim...
浙大版《C语言程序设计(第3版)》题目集
练习4-11 统计素数并求和 本题要求统计给定整数M和N区间内素数的个数并对它们求和。 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。 输入…...
【学习笔记】Day 2
一、进度概述 1、inversionnet_train_light 试运行——未成功 2、DL-FWI基础入门培训-1,2,以及作业1的完成——暂未完成作业 二、详情 1、inversionnet_train_light 试运行 在补充完相关依赖后,运行仍有报错 产生原因:这个代码在当…...
Java中的Map(如果想知道Java中有关Map的知识点,那么只看这一篇就足够了!)
前言:在Java编程语言中,集合框架(Collection Framework)提供了一系列用于存储和操作数据的接口和类。其中,Map和Set是两个非常重要的接口,分别用于存储键值对和无重复元素的集合。 ✨✨✨这里是秋刀鱼不做梦…...
裸金属服务器详解
在云计算飞速发展的今天,裸金属服务器(Bare Metal Server, BMS)作为一种兼具传统物理服务器性能和虚拟化服务优势的计算资源,正逐渐成为企业和个人用户的重要选择。今天我们就来了解下关于裸金属服务器的定义、核心特点以及其在各…...
等待唤醒机制两种实现方法-阻塞队列
桌子上有面条-》吃货执行 桌子上没面条-》生产者制造执行 1、消费者等待 消费者先抢到CPU执行权,发现桌子上没有面条,于是变成等待wait状态,并释放CPU执行权,此时的CPU肯定会被厨师抢到,初始开始做面条,…...
数组项相加和 – 如何将 JavaScript 数组中的数字相加
JavaScript 中的数组是一个对象,它允许您在单个变量名称下存储多个值的有序集合,并以多种方式操作这些值。 在本文中,您将学习如何使用几种不同的方法计算给定数组中所有数字的总和。 具体来说,使用以下方法得到数组中所有数字的总…...
C#和S7-1200PLC S7.NET通信
1、一步步建立一个C#项目 一步步建立一个C#项目(连续读取S7-1200PLC数据)_s7协议批量读取-CSDN博客文章浏览阅读1.7k次,点赞2次,收藏4次。这篇博客作为C#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先创建一个窗体应用。_s7协议批量…...
常用命令git branch
Git Branch 命令总结 列出分支 git branch:显示本地分支,当前分支会被标记。git branch -r:显示远程分支。git branch -a:显示所有本地和远程分支。 创建分支 git branch <branch_name>:创建一个新分支但不自…...
Android 制作系统签名
一、切换目录 cd build/target/product/security二、执行命令 1)将使用.pk8生成platform.priv.pem (.pem即可,文件名可随意修改)openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.pem -nocrypt2)生成.p12,此时需输入两次密码,并且要记住 -name后所设置…...
C语言第13篇
1.下面程序是计算n个数的平均值,请填空.______ #include<stdio.h> void main( ) { int i,n; float x,avg0.0; scanf("%d",&n); for(i0;i<n;i) { scanf("%f",&x); avgavg______; } avg________; printf("avg%f\n",avg); } A) …...
基于FPGA的数字信号处理(22)--进位保存加法器(Carry Save Adder, CSA)
目录 1、拆解多个数的加法 2、进位保存加法器 3、CSA的优点和缺点 4、CSA电路的实现 文章总目录点这里:《基于FPGA的数字信号处理》专栏的导航与说明 1、拆解多个数的加法 考虑3个4bits数相加,10 4 7 21 的过程是这样的: 其中的红色数…...
idea使用free流程,2024idea、2023idea都可以安装免费使用
1.先到官网下载,这里选择win系统的,点击下图的.exe https://www.jetbrains.com/idea/download/?sectionwindows 2.下载好后基本上就是一直点击“下一步”到直到安装好,安装好后先打开软件后关闭退出 3.下载配配套资料 链接: https://pan.ba…...
设计模式 之 —— 抽象工厂模式
目录 什么是抽象工厂模式? 定义 特点 抽象工厂模式(java代码示例) 首先定义第一个接口 实现第一个接口的类 定义第二个接口 实现第二个接口的类 * 创建抽象工厂类 创建扩展了 AbstractFactory 的工厂类 饮料工厂 食物工厂 * 创建一个…...
计量经济学(十六)--一文读懂和学会医学统计学中的四种检验方法
1. 统计学是什么? 统计学是应用数学的一个分支,主要通过利用概率论建立数学模型,收集所观察系统的数据,进行量化的分析、总结,并进而进行推断和预测,为相关决策提供依据和参考。它被广泛的应用在各门学科之上,从物理和社会科学到人文科学,甚至被用来工商业及政府的情报…...
解析 C# Dictionary 代码
entries用于存储当前每个节点的数据,其中四个字段分别表示: hashCode:key对应的hash值next:处理hash冲突,可以理解为是一个链表结构,邻接表key:存储的keyvalue:存储的value bucket…...
如何利用人工智能提升工作效率
在当今这个信息爆炸的时代,我们每天都被大量的工作任务所困扰。然而,随着人工智能技术的不断发展,我们可以通过一些智能工具来提升我们的工作效率。在这篇文章中,我将分享一些关于如何利用人工智能提升工作效率的建议。 首先&…...
Linux驱动开发—Linux内核定时器概念和使用详解,实现基于定时器的字符驱动
文章目录 内核定时器概念在Linux驱动模块中使用定时器软定时器(Soft Timers)jiffies 含义高精度定时器(High Resolution Timers) 实现倒计时字符设备驱动 内核定时器概念 在 Linux 内核中,定时器是用来管理和调度延迟…...
mysql数据库:数据库,表和列的基本概念
mysql:数据库,表和列的基本概念以及导入和导出文件 数据库的概念和用途 数据库是一个有组织的数据集合,它们被存储在计算机上以便于管理和访问。数据库的主要目的是为了存储和管理数据,同时使数据能够被高效地访问、检索和更新。数…...
Nextjs 使用 graphql,并且接入多个节点
写在前面 随着区块链技术的流行,也促进了 subgraph 工具的兴起。那么如何在前端接入 graphql 节点就成了关键,其接入方式既存在与 restful 接口相类似的方式,也有其独特接入风格。本文将介绍如何接入 graphql 以及如何应对多个 graphql 节点…...
小结——知识注入
所谓知识注入,其实不该脱离于LLM的基础工作原理,然后空谈抽象概念。 知识,也就是你问他问题,他能输出正确的回答,这只是一个简单的输出token的过程。输出得准了,就是知识,输出不准了,…...
科普文:微服务之Spring Cloud Alibaba组件Nacos一致性协议Distro+Raft概叙
一、概要 Nacos是阿里开放的一款中间件,它主要提供三种功能:持久化节点注册,非持久化节点注册和配置管理。 二、一致性协议 - AP/CP Nacos不是纯粹的AP服务,也不是纯粹的CP服务,而是两者同时支持。 这要从服务注册…...
python合并音视频-通过ffmpeg合并音视频
🌈所属专栏:【python】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的…...
Yolov8添加ConvNetV1和V2模块
Yolov8添加ConvNet模块 1 ConvNet系列相关内容 (1)2022 论文地址:A ConvNet for the 2020s Code Link 如下图所示,精度、效率、尺寸都很不错。 论文的摘要如下: 视觉识别的“咆哮的 20 年代”始于视觉注意力 &…...
十个常见的 Python 脚本 (详细介绍 + 代码举例)
1. 批量重命名文件 介绍: 该脚本用于批量重命名指定目录下的文件,例如将所有 ".txt" 文件重命名为 ".md" 文件。 import osdef batch_rename(directory, old_ext, new_ext):"""批量重命名文件扩展名。Args:directory: 要处理…...
【C语言】详解feof函数和ferror函数
文章目录 前言1. feof1.1 feof函数原型1.2 正确利用函数特性读写文件1.2.1 针对文本文件1.2.2 针对二进制文件 1.3 feof函数的原理1.4 feof函数实例演示 2. ferror2.1 ferror函数原型 前言 或许我们曾在网络上看过有关于feof函数,都说这个函数是检查文件是否已经读…...
ValueListenableBuilder 和 addListener 在 ChangeNotifier的区别
1、前言 ValueListenableBuilder 和 addListener 在 ChangeNotifier 中有不同的用途和用法,适用于不同的场景。它们的主要区别在于它们如何监听和响应状态变化,以及它们的用法和特性。 2、ValueListenableBuilder用法 ValueListenableBuilder 是一个 …...
ScriptEcho:AI赋能的前端代码生成神器
ScriptEcho:AI赋能的前端代码生成神器 在前端开发中,如果你总是觉得写代码太费时费力,那么 ScriptEcho 将成为你的救星。这个 AI 代码生成平台不仅能帮你省下大量时间,还能让你轻松愉快地写出生产级代码。本文将带你了解 ScriptEc…...
TypeError: ‘float’ object is not iterable 深度解析
TypeError: ‘float’ object is not iterable 深度解析与实战指南 在Python编程中,TypeError: float object is not iterable是一个常见的错误,通常发生在尝试对浮点数(float)进行迭代操作时。这个错误表明代码中存在类型使用不…...
灵茶八题 - 子序列 +w+
灵茶八题 - 子序列 w 题目描述 给你一个长为 n n n 的数组 a a a,输出它的所有非空子序列的元素和的元素和。 例如 a [ 1 , 2 , 3 ] a[1,2,3] a[1,2,3] 有七个非空子序列 [ 1 ] , [ 2 ] , [ 3 ] , [ 1 , 2 ] , [ 1 , 3 ] , [ 2 , 3 ] , [ 1 , 2 , 3 ] [1],[…...
为什么美元债务会越来越多?
美元债务规模持续膨胀,其背后原因复杂多样,可归结为以下几个主要因素: 财政赤字和刺激政策是导致美元债务增加的重要原因。美国政府长期面临财政赤字问题,支出远超收入,为弥补这一缺口,政府不得不大量发行…...
二维凸包算法 Julia实现
问题描述:给定平面上 n n n 个点的集合 Q Q Q,求其子集 P P P 构成 Q Q Q 的凸包,即 ∀ p ∈ Q , ∃ p 0 , p 1 , p 2 ∈ P \forall p \in Q, \exist p_0, p_1, p_2 \in P ∀p∈Q,∃p0,p1,p2∈P 使得点 p p p 在以点 p 0 , p 1 …...
python dash框架
Dash 是一个用于创建数据分析型 web 应用的 Python 框架。它由 Plotly 团队开发,并且可以用来构建交互式的 web 应用程序,这些应用能够包含图表、表格、地图等多种数据可视化组件。 Dash 的特点: 易于使用:Dash 使用 Python 语法…...
2.外部中断(EXTI)
理论 NVIC:嵌套向量中断控制器(解释教程) 外部通用中断线(EXTI0~EXTI15):每个GPIO设置成中断模式,与中断控制器连接的线 外部中断触发方式 上升沿触发、下降沿触发、双边沿触发 外部中断触发函数 在stm32f1xx_it.c文件…...
Python | SyntaxError: invalid syntax 深度解析
Python | SyntaxError: invalid syntax 深度解析 在Python编程中,SyntaxError: invalid syntax是一个常见的错误,它表明Python解释器在尝试解析代码时遇到了语法问题。这个错误通常是由于代码中存在拼写错误、缺少符号(如括号、冒号或逗号&a…...
付费进群系统源码原版最新修复全开源版
付费进群,和平时所见到的别人拉你进群是不一样的,付费进群需要先缴费以后,才会看到群的二维码,扫码进群或者是长按二维码图片识别进群,付费进群这个功能广泛应用于拼多多的砍价群,活动的助力群,…...
Docker容器部署的SpringBoot项目jar包,上传文件但是找不到路径的问题
在docker容器内部署的jar包运行后,请求访问都没有问题,在文件上传时,发现上传图片接口响应成功,但是图片路径报404错误,发现找不到路径。 在服务器上查看也没有找到相关图片。 原因: 启动docker镜像时没…...
云计算学习——5G网络技术
系列文章目录 提示:仅用于个人学习,进行查漏补缺使用。 Day1 网络参考模型 Day2 网络综合布线与应用 Day3 IP地址 Day4 华为eNSP网络设备模拟器的基础安装及简单使用 Day5 交换机的基本原理与配置 Day6 路由器的原理与配置 Day7 网络层协议介绍一 Day8 传…...
matlab仿真 信道编码和交织(上)
(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第八章内容,有兴趣的读者请阅读原书) clear all N10;%信息比特的行数 n7;%hamming码组长度n2^m-1 m3;%监督位长度 [H,G]hammgen(m);%产生(n,n-…...