联邦学习:去中心化数据下的深度网络优化

打印 上一主题 下一主题

主题 949|帖子 949|积分 2847

摘要:本文分析《Communication-Efficient Learning of Deep Networks from Decentralized Data》,聚焦联邦学习在去中心化数据中的通讯优化,探讨高效练习深度网络与数据隐私掩护的方法。这不仅为AI与安全应用奠基,还为将来与区块链的融合提供潜力,建立去中心化的安全模型。
关键字:联邦学习,通讯效率,去中心化数据,深度网络,AI,数据隐私,安全性,区块链
引言:数据安全与去中心化挑战

区块链安全挑战


  • Dexx安全事故,2024年11月16日,损失超2100万美元。事故原因是中心化私钥管理缺乏加密防护。
  • Bybit安全事故,2025年02月21日,损失约14.6亿美元,史上最大的加密盗窃案。事故原因是多签UI敲诈。
  • Infini安全事故,2025年02月24日,损失约5000万美元。事故原因是权限控制和未审计合约。
AI安全挑战

现在AI全赛道在快速发展阶段,AI安全作为潜伏大课题即将伴随发生。现在可预估的安全事故范例包括:


  • AI模型投毒,在练习数据中注入恶意样本,导致模型输出错误猜测,可导致金融类AI错误交易。
  • AI推理劫持,与传统网络攻击相似,通过API劫持窜改推理结果,甚至逆向工程窃取AI模型。
  • 恶意AI代理,AI Agent被控制实行恶意操作。2025年AI Agent 激增,安全岌岌可危。
然而,除传统网络安全范畴以外,AI安全还包括AI伦理、自主性、数据主权、社会风险等。


  • 智能驾驶事故责任如何划分,AI天生的虚假信息传播造成社会动荡谁来负责。
  • AI代理超预期办法,权限过高,导致举动越界,引发经济损失甚至危及物理天下安全。
  • AI练习数据的隐私问题,如泄露或被解密,会侵占数据主权人权益。
安全视角下的联邦学习需求

一句话解释:联邦学习试图在海量个人装备以及语言、图像等富和种类数据下,通过去中心化本地实行计算、集成模型和接收更新,来办理用户个人数据隐私问题和数据会集处理能效问题。
去中心化

去中心化可同时办理用户个人数据隐私问题和数据会集处理能效问题。每台装备都是一个客户端,用户可以选择参与到这个松散自由的联盟组织,通过一个中心化服务器进行统一管理和调理。
每个客户端都有一个永不上传的本地数据集,成千上万个客户端与全局大模型将会有同步拉取、本地计算和更新推送三个动作,其中同步拉取和更新推送才会涉及到与中心化服务器通讯。解耦模型练习需求与直连原始数据。
数据最小化原则,即网络和存储的数据应仅限于必要的部门。源自2012年消费者数据隐私白宫陈诉。
数据要求


  • 来自真实用户装备产生的数据要比数据中心的代理数据有明显上风。
  • 这些数据属于隐私敏感型,大概数据量很大,出于模型练习的目的,勿将其记录到数据中心。
  • 对于监督性使命,数据上的标签可从用户交互中天然地推断出来。
使命示例

(1)图像分类,猜测哪些图片在将来最有可能被多次查看或分享。
(2)语言建模,改进语音识别、触屏键盘的文字输入、下一个词猜测、猜测整段回复。
这些使命的练习数据,明显必要大量用户隐私数据,包括用户持有的所有照片,以及他们通过手机键盘输入的所有文字,包括密码、网址、短信等等。
这些数据的分散性远大于轻易得到的代理数据集。比方:

  • 通过尺度网络语料库,Wikipedia、Baidu、Google等网络文档。
  • Flickr照片库。
此外,用户交互的数据是自带标签的,这些标签是天然客观的定义,远比二手代理数据的标签更具多样性。
以上解释了AI智能搜刮与传统搜刮(Baidu、Google)的区别,前者是通过大量天然数据标签进行猜测,后者是二手代理数据标签进行索引。前者是可思考的智能大脑,后者是图书馆索引头脑。
这两个使命都非常适合神经网络学习。对于图像分类而言,前馈深度网络尤其是卷积网络可提供最先进的结果。对于语言建模使命的递归神经网络,尤其是LSTM(Long Short-Term Memory,长短时记忆网络)取得了最先进的成果。
隐私掩护

比数据中心良好


  • 在传统的数据中心练习中,数据通常必要被网络和存储,而即使是“匿名化”的数据集,也可能会通过与其他数据的联合暴露用户的隐私。
  • 联邦学习的信息是最小更新,仅包含改善特定模型所需的最少信息。由于这些信息只是模型参数的变化,而非直接的原始数据,因此他们自己不会比原始练习数据包含更多的隐私信息。
  • 这种更新可以并且应该是短暂的,以确保信息最小化。同时,传输这些更新时不必要标识泉源,因此可以通过混合网络(如Tor)或可信第三方传输,进一步加强隐私掩护。
更新的隐私影响


  • 如果更新内容是所有本地数据的总梯度,而特征是稀疏的词袋模型,那么这些非零梯度可以暴露用户在装备上输入的详细单词。
  • 对于更密集的模型(如卷积神经网络,CNN),梯度的总和更难成为攻击者获取单个练习实例信息的目标,但攻击仍旧是可能的。
词袋模型是一种忽略词序、仅统计词频的文本向量化方法。
CNN通过卷积操作提取特征,再用池化和全毗连层进行分类,尤其善于处理图像。
梯度是模型参数的变化方向,非零梯度指这些变化中不为零的部门,可能泄露用户输入的详细词。
在词袋模型中,每个词对应一个特征位置,如果用户输入某个词,模型更新时只有这些词的梯度会变成非零,攻击者通过观察非零梯度就能推测出详细输入的词。
联邦优化:通讯效率的核心

1、联邦优化的特质:


  • 非IID(非独立同分布)
由于每个客户端的练习数据通常基于特定用户的装备使用,数据集通常不会代表整个群体的分布。

  • 数据不平衡性
有些用户会比其他用户更频繁地使用服务或应用,从而导致本地练习数据量的差异。

  • 大规模分布式
参与优化的客户端数目通常远远大于每个客户端的平均数据点数。

  • 有限通讯
移动装备经常处于离线状态,大概毗连速度慢且通讯费用高。
2、联邦优化的实践问题


  • 客户端数据变化:随着数据的增删,客户端的数据集会集会发生变化。
  • 客户端的可用性:客户端的可用性与本地数据分布密切相干。比方,讲美式英语的手机和讲英式英语的手机可能会在不同时间毗连。
  • 丢失或破坏的更新:有些客户端可能无法响应或发送破坏的更新。
为了应对这些问题,实行中使用了一个受控环境,专注于客户端的可用性以及不平衡和非IID数据的挑战。
3、同步更新机制说明

我们假设一个同步更新机制,该机制以多轮通讯进行:

  • 设,共有一个固定的客户端联合K,每个均有自己的本地数据集。
  • 每轮通讯的开始阶段,一个随机的少量的C个客户端会被选中,均会接收到来自服务端的当前全局算法状态(比方当前模型参数聚集)。
  • 为了效率,我们只选择少量客户端,因为我们的实行表明,当增加的客户端凌驾肯定数目时,收益会递减。
  • 每个被选中的客户端会基于全局状态和本地数据集立即实行本地运算,然后给服务端发送更新。
  • 服务端会接收这些更新并合入全局状态 ,然后重复这个流程。
4、非凸目标函数公式剖析

①有限和目标函数形式

尽管我们关注的是非凸神经网络目标(即损失函数或优化目标是非凸的),但是我们考虑的算法实用于任何具有以下形式的有限和目标函数:
“非凸”指的是一个函数或聚集不是凸的,意思是它没有一个唯一的最小点,可能有多个局部最小点或鞍点。简单来说,就是函数图像不出现单一的“山谷”形状,可能有多个低谷。
这是总目标函数的形式:

\[\min_{w \in \mathbb{R}^d} f(w)\]
这个公式表示要最小化一个目标函数 f(w),其中 w 是优化参数向量,位于 \mathbb{R}^d 空间中,表示一个 d-维的参数空间。优化问题的目标是找到一个最优的 w,使得 f(w) 达到最小值。
这是目标函数的定义:

\[f(w) = \frac{1}{n} \sum_{i=1}^n f_i(w)\]
这个公式定义了目标函数 f(w) 为多个子目标函数 f_i(w) 的平均值。详细来说,f_i(w) 是第 i 个子目标函数,通常代表一个数据点或使命的损失函数。这里,总目标函数是所有 f_i(w) 的平均值,因此优化问题变成了最小化这些子目标的平均损失。
②机器学习中的损失函数

在机器学习中,损失函数f_i(w)通常表示模型在给定输入 x_i 和真实标签 y_i 下的猜测偏差,记作

\[\ell(x_i, y_i; w)\]
,其中 w 是模型的参数。
也就是说,对于每一个练习样本 (x_i, y_i),我们计算损失函数 f_i(w),它反映了模型在该样本上的猜测偏差。整个目标是通过优化这些损失函数的平均值 f(w) 来最小化模型的整体偏差。
③客户端数据分布

在该算法中,假设数据集被分配到 K 个客户端上,客户端 k 上的数据集索引为 P_k,其中 n_k = |P_k| 是客户端 k 上的数据量。这样,我们可以将目标函数 f(w) 重写为:

\[f(w) = \sum_{k=1}^{K} \frac{n_k}{n} F_k(w)\]
表示全局目标函数 f(w) 是由每个客户端 k 的局部目标函数 F_k(w) 加权平均得到的,其中 n_k 是客户端 k 上的数据点数目,n 是总的数据点数目。
其中 F_k(w) 表示客户端 k 上的局部目标函数,定义为:

\[F_k(w) = \frac{1}{n_k} \sum_{i \in P_k} f_i(w)\]
换句话说,F_k(w) 是客户端 k 上的数据的损失函数的平均值。目标函数 f(w) 是这些局部目标函数的加权平均。
表示客户端 k 上的局部目标函数 F_k(w),它是客户端 k 上所有数据点 i 的损失函数 f_i(w) 的平均值,其中 n_k 是客户端 k 上的数据点数目,P_k 是客户端 k 上数据点的索引聚集。
④IID假设

IID(独立同分布)指的是数据中的每个样本既相互独立,又遵循相同的概率分布。
接下来,假设数据 P_k 是通过将练习样本匀称随机地分配到各个客户端上形成的。在这种环境下,每个客户端上的局部目标函数 F_k(w) 的期望值应当与全局目标函数 f(w) 相称,即:

\[E_{P_k}[F_k(w)] = f(w)\]
这里的期望是对分配给固定客户端 k 的数据进行计算的。换句话说,在IID(独立同分布)假设下,每个客户端上的数据分布是相同的,因此每个客户端计算的损失函数期望值与全局损失函数同等。
表示当数据匀称随机地分配到各个客户端 k 时,客户端 k 上的局部目标函数 F_k(w) 的期望值等于全局目标函数 f(w),即每个客户端的数据分布是独立同分布(IID)的环境下,局部目标函数的期望与全局目标函数相称。
⑤非IID设置

然而,在实际的联邦学习设置中,数据往往不满足IID假设。也就是说,客户端上的数据分布可能不同,这会导致每个客户端上的局部目标函数 F_k(w) 与全局目标函数 f(w) 之间存在偏差。对于非IID的环境,我们称 F_k(w) 可能是对全局目标函数 f(w) 的一个非常不正确的近似。
如果数据在客户端之间分布不均或存在偏差(即数据不再是IID的),那么每个客户端的局部目标函数可能与全局目标函数的关系会变得不那么精确。这种环境被称为非IID设置,它是联邦学习中必须考虑的一个重要因素。
5、联邦优化的核心挑战


  • 通讯本钱的主导地位
在联邦学习中,通讯本钱成为了瓶颈,因为每个客户端的数据集相对于整个体系来说较小,并且每个客户端的带宽通常受限,上传速度可能低至1MB/s或更低。此外,客户端参与优化的条件较为严格,通常只有在电池充足、毗连Wi-Fi且不计流量费用时才会参与。因此,通讯的频繁交换增加了本钱,并限制了优化的效率。

  • 计算本钱的相对上风
与数据中心环境不同,现代智能手机的计算能力较强(包括内置的GPU),并且计算的本钱相对较低。因此,相比于通讯,计算本钱险些可以忽略不计。这意味着,增加计算量比增加通讯回合数更具上风。

  • 如何办理通讯本钱问题
    为了减少通讯回合次数,从而提高练习效率,必须采取增加计算量的计谋。详细来说,办理方案包括:

    • 增加并行性:通过更多的客户端在每次通讯回合之间独立工作,分担计算使命,从而加快练习速度。
    • 增加每个客户端的计算量:每个客户端在本地进行更复杂的计算,而不仅仅是简单的梯度计算。这可以通过让每个客户端处理更多的计算使命,减少必要进行的通讯回合次数。

  • 最终目标
通过适当的计算量增加和并行化,减少联邦学习所需的通讯轮次,从而提高整体优化效率,降低通讯本钱。
技术细节:联邦平均算法(FedAvg)

FederatedAveraging (FedAvg) 算法是一种用于联邦学习(Federated Learning, FL)的优化方法。它通过在多个客户端上进行本地练习,并在服务器端进行参数聚合,以提高计算效率并减少通讯本钱。
1、配景

传统深度学习依靠 随机梯度下降(SGD)全局性质】 进行优化,但在 联邦学习 场景下,数据是去中心化的,存储在不同的客户端上,不能直接访问所有数据进行全局优化。
FedSGD(Federated SGD) 是一种直接在联邦学习环境中应用 SGD 的方法,但每轮练习都必要所有选定客户端上传梯度,通讯开销较大。
FedAvg 通过让客户端实行 多步本地梯度更新 再聚合,提高了计算效率,减少了通讯轮数。
SGD 通过每次随机挑选一个样本计算梯度(偏差)并更新模型参数,来逐步逼近损失函数的最优解。
2、算法思路

FedAvg 通过 三个关键参数 控制练习过程:

  • C:每轮选取的客户端比例(C-fraction)。
  • E:每个客户端的本地练习 epoch 数,即每个客户端本地练习多少轮后才向服务器报告参数。
  • B:本地小批量(minibatch)大小。若 B=∞,则使用整个本地数据集进行练习。
核心思想:

  • 选取 C% 的客户端。
  • 在每个客户端上运行 E 轮本地 SGD 练习(即实行多个梯度下降步骤)。
  • 客户端将本地模型参数返回给服务器,而不是梯度。
  • 服务器实行 加权平均,合并客户端更新的模型。
3、FedAvg代码实现
  1. import random
  2. import numpy as np
  3. def compute_loss(model, data):
  4.     """计算模型在给定数据上的损失值(这里使用简单的均方误差)"""
  5.     # 假设数据的最后一列是标签
  6.     X = data[:, :-1]
  7.     y = data[:, -1]
  8.     predictions = np.dot(X, model)
  9.     loss = np.mean((predictions - y) ** 2)
  10.     return loss
  11. def initialize_model():
  12.     """初始化全局模型参数"""
  13.     return np.random.rand(9)  # 改为9维,因为最后一列是标签
  14. def client_update(model, data, epochs, lr):
  15.     """客户端本地训练"""
  16.     losses = []
  17.     for _ in range(epochs):
  18.         gradient = compute_gradient(model, data)
  19.         model -= lr * gradient
  20.         loss = compute_loss(model, data)
  21.         losses.append(loss)
  22.     return model, np.mean(losses)
  23. def compute_gradient(model, data):
  24.     """计算梯度(使用均方误差的梯度)"""
  25.     X = data[:, :-1]
  26.     y = data[:, -1]
  27.     predictions = np.dot(X, model)
  28.     gradient = -2 * np.dot(X.T, (y - predictions)) / len(data)
  29.     return gradient
  30. def aggregate_models(client_models, num_samples):
  31.     """聚合客户端模型参数(加权平均)"""
  32.     total_samples = sum(num_samples)
  33.     weights = [n / total_samples for n in num_samples]
  34.     new_global_model = np.zeros_like(client_models[0])
  35.     for model, weight in zip(client_models, weights):
  36.         new_global_model += model * weight
  37.     return new_global_model
  38. def federated_training(num_rounds, num_clients, fraction, local_epochs, lr):
  39.     """联邦训练过程"""
  40.     global_model = initialize_model()
  41.     # 生成模拟数据:每个客户端100条数据,每条数据9个特征和1个标签
  42.     client_data = {
  43.         i: np.concatenate([
  44.             np.random.rand(100, 9),  # 特征
  45.             np.random.rand(100, 1)   # 标签
  46.         ], axis=1)
  47.         for i in range(num_clients)
  48.     }
  49.    
  50.     global_losses = []
  51.    
  52.     for round in range(num_rounds):
  53.         selected_clients = random.sample(range(num_clients), max(1, int(fraction * num_clients)))
  54.         client_models = []
  55.         client_losses = []
  56.         num_samples = []
  57.         
  58.         for client in selected_clients:
  59.             local_model = global_model.copy()
  60.             updated_model, local_loss = client_update(local_model, client_data[client], local_epochs, lr)
  61.             client_models.append(updated_model)
  62.             client_losses.append(local_loss)
  63.             num_samples.append(len(client_data[client]))
  64.         
  65.         # 计算这一轮的平均损失
  66.         avg_loss = np.mean(client_losses)
  67.         global_losses.append(avg_loss)
  68.         
  69.         global_model = aggregate_models(client_models, num_samples)
  70.         print(f"Round {round+1}: Average Loss = {avg_loss:.6f}")
  71.    
  72.     print("\n训练完成!")
  73.     print(f"初始损失值: {global_losses[0]:.6f}")
  74.     print(f"最终损失值: {global_losses[-1]:.6f}")
  75.     print(f"损失下降率: {((global_losses[0] - global_losses[-1]) / global_losses[0] * 100):.2f}%")
  76.    
  77.     return global_model, global_losses
  78. # 运行联邦学习
  79. final_model, losses = federated_training(num_rounds=10, num_clients=5, fraction=0.6, local_epochs=5, lr=0.1)
复制代码
4、FedAvg VS. FedSGD

特性FedSGD (Federated SGD)FedAvg (Federated Averaging)优化方式服务器端聚合单次梯度更新服务器端聚合多轮本地练习后的模型计算频率每轮通讯时,每个选中客户端计算一次梯度每轮通讯时,每个选中客户端进行多次本地练习通讯开销高,每次迭代都必要通讯低,本地练习多轮后才通讯客户端计算量低,每次只进行一个 mini-batch 的计算高,每轮进行多个 epoch 的本地练习全局模型更新直接聚合所有客户端梯度更新先在本地练习多次,再进行模型参数平均实用场景实用于高通讯带宽、计算资源受限的装备实用于计算能力较强、通讯受限的场景收敛速度必要更多轮通讯才气收敛收敛更快,减少通讯轮次5、关键长处


  • 减少通讯轮数:这是分布式用户装备的关键特性,FedAvg答应客户端实行多个本地更新,而不是每次迭代都发送梯度,从而减少通讯开销。
  • 模型平均化:FedAvg直接对本地模型参数求均值,而不是梯度求和,在深度神经网络的优化上表现较好。
  • 避免不好的局部最优解:当所有客户端从相同的随机初始化开始练习时,FedAvg的参数平均化方式在某些场景下表现优于单个客户端练习模型。
练习剖析:联邦学习实行分析

目标:通过选取适当规模的数据集,以便深入研究FedAvg的超参数,从而提高移动装备上的模型可用性,主要研究图像分类语言建模使命。
实行筹划

1、数据集和模型


  • MNIST(手写数字识别)

    • 2NN(双层全毗连神经网络):2层隐蔽层,每层200个神经元,共199,210个参数。
    • CNN(卷积神经网络):两个5x5 卷积层(分别有32和64个通道),池化层,全毗连层(512单元),Softmax输出层,总参数1,663,370。

  • CIFAR-10(图像分类)

    • 论文这里未介绍实行细节,但后续分析会涉及该使命。

  • Shakespeare(语言建模)

    • 构建数据集的方法:基于莎士比亚戏剧中的角色台词,每个角色至少有两行台词,被视为一个独立的客户端。
    • 练习模型:字符级LSTM,使用8维字符嵌入,2层LSTM(256单元),最终输出层位Softmax,总参数866,578。

2、数据分布方式


  • IID(独立同分布):数据随机分配个客户端,比方MNIST数据集分成100个客户端,每个客户端有600个样本。
  • Non-IID(非独立同分布):数据按种别排序,在分成200份,每个客户端仅得到2类数据的样本。这种环境下,单个客户端的样本种别较少,更具挑战性。
3、实行变量


  • E(本地练习轮数):每个客户端在本地练习的迭代次数。
  • B(本地批量大小):练习过程中,每次使用的样本量。
  • C(客户端参与比例):每轮练习时,参与更新的客户端比例。
实行结果

1、MNIST实行


  • 影响客户端参与比例(C)

    • C从0.0(每轮1个客户端)增加到1.0(所有100个客户端),通讯轮数减少,练习加速。
    • 非IID数据环境下,提高C对练习效率提升更明显,C=1.0时2NN的练习速度比C=0.0快8.6倍,CNN使命快9.9倍

  • FedAvg VS. FedSGD

    • FedSGD 直接在所有客户端上进行梯度下降并平均,而FedAvg答应每个客户端进行多轮本地练习(E>1),然后在汇总。

  • 实行结果

    • MNIST(CNN,目标99%正确率):FedAvg(E=5,B=10)练习20轮即告竣目标,而FedSGD必要626轮(提升31.3倍)。
    • Shakespeare(LSTM,目标54%正确率):FedAvg(E=5,B=10)练习41轮,而FedSGD必要3906轮(提升95.3倍)。

2、CIFAR-10实行


  • 数据集

    • CIFAR-10数据集包含50,000个练习样本和10,000个测试样本,每张图像大小为32x32像素,具有3个RGB通道。
    • 实行中将数据集划分为100个客户端,每个客户端包含500个练习样本和100个测试样本。

  • 模型架构

    • 使用了一个从TensorFlow教程中得到的尺度卷积神经网络模型,包括两个卷积层、两个全毗连层和一个线性变换层,总共有大约106个参数。

  • 练习

    • 数据预处理包括裁剪图像为24x24,随机所有翻转,以及调解对比度、亮度和白化等。
    • 采用了FedAvg与尺度的FedSGD方法进行对比。FedAvg的表现远超FedSGD,显示其具有较好的通讯效率。

  • 实行结果

    • 尺度SGD方法颠末197,500次小批量更新后达到了86%的测试精度,而FedAvg方法仅通过2000次通讯轮次就达到了85%的测试精度
    • 这个结果显示,FedAvg在通讯效率上比传统的SGD方法有显著提升。

进一步分析:通过对比不同批量大小(B = 50)下的SGD和FedAvg实行,FedAvg在每个小批量计算中取得了类似的进展。进一步,增加客户端数目有助于平滑精度波动,减少尺度SGD和FedAvg中仅有一个客户端时的波动。
3、大规模LSTM实行


  • 使命配景

    • 实行中的大规模使命是一个基于LSTM的下一个单词猜测使命,数据集来自一个大型社交网络,共有1000万个公共帖子,数据按作者分组,客户端数目凌驾50万个。
    • 每个客户端的数据集最多包含5000个单词,测试集包含10万个不同作者的帖子。

  • 模型

    • 使用了一个256节点的LSTM模型,词汇表大小为10,000个单词,每个单词的输入和输出嵌入维度为192,共有495万多个参数。
    • 输入序列为10个单词。

  • 练习与结果

    • 为了验证FedAvg的有用性,采用了200个客户端进行每轮练习,FedAvg使用B=8和E=1的配置。
    • 实行结果表明,FedAvg在35轮通讯内达到了10.5%的正确率,而FedSGD必要18轮通讯才达到相同的正确率,这表明FedAvg在通讯轮次上的效率更低(必要更多的轮次才气达到同样的正确率)。
    • 并不意味着FedAvg表现更差,而是表明FedAvg的上风在于处理更大规模的分布式数据时的稳定性和长远表现。FedAvg能够通过更多的客户端参与和更好的平均化,减少由于个别客户端数据分布差异造成的噪声,最终取得更好的整体性能。对于FedAvg,减少通讯轮次可能会带来更多的计算量和通讯开销,但其精度的稳定性是一个长期的上风。

主要结论


  • FedAvg使用非IID数据,尤其在E(本轮练习轮数)较大时,能够大幅减少通讯轮数,提高练习效率。
  • 在较小批量(B=10)时,FedAvg练习收敛速度更快。
  • 适当增加客户端参与比例(C>=0.1)能显著提高非IID数据环境下的练习速度。
这个实行验证了FedAvg在去中心化数据场景(如移动装备)下的高效性,尤其实用于真实天下数据分布不均的环境。
联邦学习:提高通讯效率与隐私掩护的将来方向

模型实用性

实行表明,联邦学习(Federated Learning)可以通过较少的通讯轮次练习出高质量的模型,实行结果在多种模型架构上都有表现,包括:

  • 多层感知机(MLP)
  • 两种不同的卷积神经网络(CNN)
  • 两层字符级LSTM(长短时记忆网络)
  • 大规模的词级LSTM模型
联邦学习的上风:这些实行结果证明白FedAvg算法(联邦学习中的一种常用算法)能够在较少的通讯轮次下,练习出效果较好的模型,表明联邦学习具有实用性,尤其是在分布式、隐私掩护和大规模数据处理方面。
隐私掩护和安全性


  • 隐私掩护的上风:联邦学习自己就具有隐私掩护的上风,因为数据并不会离开客户端,避免了数据会集存储可能带来的隐私泄露风险。
  • 差分隐私安全多方计算(Secure Multi-Party Computation,SMPC)等技术:为了进一步加强隐私掩护,将来的研究可以考虑引入这些技术,提供更强的隐私保证。这些技术可以与联邦学习联合,进一步提升数据的隐私性和安全性。

    • 差分隐私:是一种强大的隐私掩护方法,通过加入噪声来保证任何单个用户的数据不会泄露,实用于联邦学习中的数据掩护。
    • 安全多方计算:可以确保在多个方之间进行计算时,数据保持加密状态,避免泄露私家书息。

同步算法的实用性

上述隐私掩护技术(差分隐私、安全多方计算)最天然地应用于同步算法,如FedAvg。这是因为同步算法的练习过程依靠于各客户端的更新结果的汇聚,而隐私掩护方法通常必要在全局聚合时引入噪声或加密技术,适合在同步框架下实行。
参考资料

Communication-Efficient Learning of Deep Networks from Decentralized Data
FedAvg Github
更多文章请转到一面千人的博客园


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表