联邦学习中的数据非独立同分布问题

本文探讨了联邦学习中数据非独立同分布(Non-IID)带来的问题,如模型性能下降,重点介绍了Weightdivergence的定义以及针对Non-IID数据的模型改进策略。研究指出,模型鲁棒性和效率是当前研究热点,Non-IID问题仍待解决。

联邦学习中的数据非独立同分布(Non-IID)

从集中式机器学习到联邦机器学习

  1. 集中式模型:传统的集中式机器学习是将所有的数据收集到服务器端,在服务器端统一进行模型训练和处理,并将预测的结果分发给用户。但将数据上传到服务器具有隐私和安全风险,而且在服务器端统一进行训练浪费了终端的算力。,
  2. 分布式模型:将数据集分为多个子集,云端将模型和不同子集分发给各个终端,终端根据本地数据对模型进行训练和预测,可以加快训练速度,但每个终端只能看到部分数据集,导致模型的泛化能力下降。
  3. 联邦学习模型:数据集分布在多个设备或计算节点上,每个节点有自己的数据,并子啊本地进行训练,然后各个节点将自己训练的参数上传给中央服务器,中央服务器将参数聚合形成一个全局模型参数。联邦学习保证数据不离开本地,也充分利用了终端设备的算力,但也引入了新的问题。
    在这里插入图片描述

数据的独立同分布

  1. 独立性:采样样本之间相互独立,互不影响。比如扔骰子,假如只是看每次扔到的点数大小,每次扔到几就是几,它们之间是相互独立的,但要是看连续两次的和大小,那么第一次扔到的结果和第二次的结果是关联的他们不符合独立性的要求
  2. 同分布:在概率空间中不论进行几次抽样,他们都服从同一个分布。当扔骰子时,每次扔到任何一个数字的概率都是1/6。

  在传统的机器学习中,可以把训练集和测试集看成两个客户端,在之前的训练中,我们都是假设这两个客户端是IID的,这是通过训练数据集获得的模型在测试数据集上也能表现较好的重要保障。
在这里插入图片描述<

独立同分布(Non-IID)数据联邦学习研究是当前联邦学习领域的重要课题。传统的联邦学习假设数据独立同分布(IID)的,但在现实场景中,不同设备上的数据往往具有不同的分布特征,即Non-IID数据,这给联邦学习带来了新的问题和挑战[^1]。 ### 研究动机 以往研究只评估了一个或两个Non-IID数据分布策略,缺乏标准的基准测试或系统研究来评估联邦学习(FL)算法在Non-IID数据上的有效性。因此,开发一个具有更全面的数据分布以及数据分区策略的基准,评估现有FL算法的优缺点,并概述未来在Non-IID数据联邦学习的挑战和发展方向是该领域研究的重要动机[^2]。 ### 数据特征 在联邦学习中,Non-IID数据具体分为以下几种情况: - **特征分布偏斜(Feature Distribution skew)**:同一类别有不同的表现形式,如在手写体识别的数据集中,同样的数字不同人写法不同[^4]。 - **标签分布偏斜(Label distribution skew)**:不同的数据标签有不同的表现形式,如疾病案例数据中,一些医院在几种特定的疾病上更专业,会有更多相关患者的记录[^4]。 - **相同标签不同特征(Same label, different features)**:对于不同的客户,相同的标签y可能有不同的特征,如不同地区的建筑物存在很大差别[^4]。 - **相同特征不同标签(Same features, different label)**:由于个人喜好,训练数据中相同的特征向量可以有不同的标签,如反映情绪的标签具有个人和区域差异[^4]。 - **数量偏斜或不平衡(Quantity skew or unbalancedness)**:不同的客户端可以拥有常不同的数据量[^4]。 ### 研究方法 为了解决Non-IID数据带来的问题,研究人员提出了个性化的跨领域联邦学习方法,针对不同设备上的数据分布特征进行建模并进行个性化的模型训练[^1]。 ### 代码复现 有研究提供了Non-IID数据环境下,深度神经网络的分布式联邦学习代码复现,基于CIFAR - 10和Fashion - MNIST数据集,实现了分布式联邦学习的多种策略,帮助研究者和开发者更好地理解和应用联邦学习技术[^5]。 ### 代码示例 虽然没有直接给出Non-IID数据联邦学习的代码,但可以简单示意联邦学习中参数聚合的基本代码逻辑: ```python import numpy as np # 假设有3个客户端上传的参数 client_params = [ np.array([0.1, 0.2, 0.3]), np.array([0.2, 0.3, 0.4]), np.array([0.3, 0.4, 0.5]) ] # 简单的参数聚合(平均) global_params = np.mean(client_params, axis=0) print(global_params) ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值