学习笔记12/18 联邦学习 非独立同分布

非独立同分布 (non-independent and identically distributed, non-IID)

是指在统计学和机器学习中,样本数据不满足独立同分布的假设。在独立同分布的假设下,样本数据是独立且从相同的概率分布中独立抽取的。而在非独立同分布的情况下,样本数据可能具有相关性或者来自不同的概率分布。

举一个时间序列数据的例子来说明非独立同分布。

假设我们要预测某个城市未来一周的气温,我们可以收集该城市过去一年的气温数据作为训练集。如果我们假设这些数据是独立同分布的,那么我们可以简单地使用一些经典的时间序列模型,如ARIMA、LSTM等来进行预测。

然而,在实际情况中,这些气温数据并不是独立同分布的。因为气温数据存在明显的季节性和周期性,例如夏季的气温通常比冬季高,每天的气温也存在昼夜变化等。这意味着相邻时刻的气温数据可能存在相关性,不满足独立性假设。此外,不同年份的气温数据也可能存在分布不一致的情况,例如某年夏季气温比其他年份高等。

因此,对于这种非独立同分布的数据,我们需要采用一些特殊的时间序列模型,如季节性ARIMA、周期性LSTM等,来更准确地描述数据的统计特性,从而提高模型的预测能力。

首先这个概念应用于统计学和机器学习中,是为了统计或者模型预测的。独立是指两个或多个随机变量之间的关系。如果两个随机变量是独立的,那么它们的取值不会相互影响。"同分布"指的是来自同一概率分布的数据。换句话说,如果两组数据具有相同的统计特性和分布特征,比如均值、方差等,我们就可以说它们是同分布的。所以独立同分布对于模型的预测非常重要,如果数据不独立或者不同分布,就可能导致模型泛化能力不佳。
 

同步SGD和异步SGD:

同步随机梯度下降(Synchronous Stochastic Gradient Descent,Sync-SGD)和异步随机梯度下降(Asynchronous Stochastic Gradient Descent,Async-SGD)是两种分布式训练机器学习模型的方法。

在同步随机梯度下降中,所有的计算节点同时计算梯度并将其汇总到中央服务器,然后根据这些梯度来更新模型参数。这意味着所有计算节点必须等待其他节点完成计算,然后才能进行参数更新。这种方式保证了模型参数的一致性,但也可能导致计算节点之间的通信开销较大,尤其在计算能力不均衡的情况下,效率可能不高。

举个通俗的例子来解释同步随机梯度下降:假设一家快餐连锁店有多个分店,每个分店都需要根据当天的销售情况来调整定价策略。在同步模式下,每个分店的经理都需要等待其他分店的销售数据,然后汇总到总部,最后总部统一制定定价策略,然后再下发到各个分店。这种方式保证了所有分店的定价是一致的,但可能会导致通信和决策的延迟。

在异步随机梯度下降中,每个计算节点独立计算梯度并更新模型参数,不需要等待其他节点的计算结果。这种方式可以减少通信开销,提高计算效率,但可能会导致模型参数的不一致性,因为各个节点的参数更新是独立进行的。

举个通俗的例子来解释异步随机梯度下降:假设一群朋友一起玩拼图游戏,每个人独立寻找拼图的位置并拼接。在异步模式下,每个人都独立寻找自己的拼图位置,不需要等待其他人,这样可以提高寻找速度,但可能会导致拼图不完整或者重复拼接的情况。

在实际应用中,选择同步还是异步的方式取决于具体的分布式训练场景和模型特性。在联邦学习中,我们使用大批量同步SGD,已有相关论文证明,它是优于异步方法的。


结论:联邦学习使用相对较少的通信轮次来训练高质量模型

FedSGD的一种典型的实现方式:C=1(非SGD),学习率η固定,每一个客户端算出自己所有数据损失的梯度(平均梯度),然后传递给中央服务器,中央服务器整合所有梯度,来更新全局的参数Wi。

在数据中心优化中,通信成本相对较小,计算成本占主导地位,最近的重点是使用GPU来降低这些成本。相比之下,在联邦优化通信成本中占主导地位。因此,我们的目标是使用额外的计算来减少训练模型所需的通信轮数。我们可以添加计算的两种主要方法:

1. 增加并行性。使用更多客户端在每个通信周期之间独立工作。
2. 增加对每个客户端的计算。即每个客户端在每个通信回合之间执行更复杂的计算。

B表示每一次本地更新时的数据量,E表示本地更新的次数,可以看到,随着B减小或者E增加,达到目标精度所需的通讯次数是减小的,也就是说:每轮添加更多本地SGD更新可以显著降低通信成本

减少本地更新的数据量可以提高通信效率,增加本地更新次数意味着本地设备在本地训练模型并计算梯度更新的次数增加,这意味着更多的梯度信息在本地被计算出来。这样可以在本地更充分地利用本地数据进行模型训练,从而减少了每次通信的必要性,可能减少了总的通信次数。

联邦学习可以变得切实可行,因为可以使用相对较少的通信轮次来训练高质量模型。联邦学习将是未来比较热门的一个方向!

联邦学习更关注数据本身,利用联邦学习保证了数据不出本地,并根据数据的特点,如:非独立同分布、非平衡数据、大规模分布、通信限制等对联邦学习模型进行改进。

FedSGD和FedAvg的区别:FedSGD是一轮轮的接收梯度,然后聚合梯度,再用来更新模型参数;FedAvg是每一轮都用梯度更新模型参数,然后聚合模型参数。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React 18是React的最新版本,它引入了一些新的功能和改进。在学习React 18时,你可以关注以下几个方面: 1. React组件:React组件是构建用户界面的基本单元。你可以使用React.createElement()函数或JSX语法来创建React元素和组件。React元素是不可变的,而React组件是可复用的。\[1\] 2. react-dom.development.js或react-dom/client模块:这些模块提供了处理真实DOM的功能,包括Diff算法和渲染成真实DOM的过程。你可以在HTML文件中引入这些模块,并使用ReactDOM.createRoot()方法来渲染React的DOM。\[2\] 3. Hook:Hook是React中的特殊函数,它允许你在函数组件中添加状态和其他特性。例如,useState是一个Hook,它可以让你在函数组件中添加状态。你可以使用useState来定义和更新状态,并在组件中使用它们。\[3\] 在学习React 18时,你可以通过阅读官方文档、参考教程和实践项目来深入了解这些概念和用法。同时,你也可以与其他开发者交流和分享经验,加深对React的理解。 #### 引用[.reference_title] - *1* *2* *3* [2023年React18笔记【慕课网imooc】【尚硅谷】【Vue3+React18 + TS4考勤系统】](https://blog.csdn.net/qq_28838891/article/details/124598439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值