【联邦学习论文阅读】FedProx(2018)Federated Optimization in Heterogeneous Networks

FedProx是为了解决联邦学习中的系统异构性和统计异构性问题,它在FedAvg基础上增加了近端项,允许设备执行可变工作量,同时保证模型收敛性。在非独立同分布数据和系统约束下,FedProx展现出更好的稳定性和鲁棒性。实验表明,FedProx在处理系统异构性(如设备间工作量差异)和统计异构性(如数据分布差异)时,相比于FedAvg有显著优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【FedProx】论文链接:https://arxiv.org/abs/1812.06127

摘要

联邦学习面临两个关键挑战:系统异构性统计异构性。本文的FedProx可以解决联邦学习的异构性,可看作FedAvg的泛化和再参数化。理论上保证了当数据为非独立同分布时模型的收敛性,同时通过允许每个参与设备执行可变的工作量,保证了设备级别的系统约束。实验证明,广义FedProx框架相对于FedAvg,在异质网络中更具稳健性和稳定性。

一、介绍

  为了应对异构性和高通信成本,允许局部更新和低参与度的优化方法已经成为联邦学习的流行方法(McMahan等人FedAvg,2017;Smith等人,2017)。虽然FedAvg可用于解决异构性问题,但它不允许参与设备根据底层系统约束执行可变的本地计算,而是简单丢弃无法完成指定计算轮数的设备。
  在联邦学习中,系统异构性和统计异构性相互作用,无论是丢弃落后者,还是合并来自落后者的部分信息,都会隐式地增加统计异构性,不利于收敛。为缓解这一问题,在目标函数中增加一个近端项来提高稳定性。

二、相关工作

联邦学习需要解决隐私、异构数据和设备以及大规模分布式计算网络的新挑战

  • 过去十年中,大规模机器学习(特别是在数据中心设置下)的研究,推动了分布式优化方法的发展。然而随着计算基元的能力和普及率的增长,直接通过分布式设备网络学习统计模型变得越来越有吸引力。
  • 针对联邦环境中的挑战提出的优化方法,相比传统的分布式方法(如ADMM或mini-batch方法)有了显著改进。它们允许不精确的局部更新以平衡大型网络中的通信和计算,并且允许在任何通信回合中仅使用部分设备。
    如Smith等人(2017)提出的一种通信效率高的原始-对偶优化方法,通过多任务学习框架学习每个设备的独立但相关的模型,尽管该方法具有理论上的保证和实际的有效性,但这种方法不能推广到非凸问题,例如深度学习(不再保证强对偶性);在非凸情况下的FedAvg

FedAvg是一种基于原始数据的平均局部随机梯度下降进行更新的启发式方法

  • 它在实际中表现中确实有效,但由于其本地更新方案、每轮使用的设备很少且数据经常以异构形式分布的问题,其分析非常具有挑战性。
  • 最近的工作已经朝着在更简单的非联邦设置中分析FedAvg迈出了一步(如在IID设置中研究的并行SGD和相关变体),它们在IID设置下研究了类似于FedAvg的本地更新。但结果依赖于“每个局部求解器是同一随机过程的副本”这一前提,不适用于异构环境。

解决统计异构性的工作:

  • 一些工作研究了统计异构环境下的收敛保证,但提出了限制性假设,即所有设备都参与每一轮通信,这在现实的联邦网络中通常是不可行的。与本文中提出的求解器无关框架相比,它们要求每个设备上使用特定求解器(SGD或GD),并且在分析中增加了额外的凸性假设或一致有界梯度假设。
  • 也有一些方法旨在通过共享本地设备数据或一些服务器端代理数据来解决统计异构性问题。然而,这些方法向服务器发送本地数据,不仅增加了网络带宽负担,还违背了联邦学习的密钥隐私假设;需向所有设备发送全局共享代理数据,而生成或收集这样的辅助数据较为困难。

系统异构性

  • 联邦网络中每个设备的存储、计算和通信能力可能因硬件、网络连接和电力的可变性而有所不同,这加剧了减少掉队者和容错等挑战。
  • 简单忽略掉队者可能对收敛产生负面影响;若掉队设备有特定数据特征,还会导致设备采样偏差。

受FedAvg启发,探索了一个更广泛的框架FedProx

  • 能够处理异构联邦数据,同时保持类似的隐私和计算优势;
  • 分析了框架的收敛性,不仅考虑局部函数间存在统计异构表征,还考虑到实际的系统约束;
  • 对统计异构的处理方法,受到求解线性方程组的随机化Kaczmarz方法的启发,该方法的类似假设已被用于分析其他情况下的SGD变种;
  • 所提框架在异构联邦网络中有更好的鲁棒性和稳定性。

本文工作中的近端项,和分析中使用的有界不同假设,在其他文献中已经被研究过(动机不同),在附录B中进一步说明了相关背景工作。

三、联邦优化:算法

联邦学习方法用于处理收集数据的多个设备和协调整个网络全局学习目标的中央服务器,目标是最小化:
min ⁡ w f ( w ) = ∑ k = 1 N p k F k ( w ) = E k [ F k ( w ) ] \min _{w} f(w)=\sum_{k=1}^{N} p_{k} F_{k}(w)=\mathbb{E}_{k}\left[F_{k}(w)\right] wminf(w)=k=1NpkFk(w)=Ek[Fk(w)]

N是设备数量;pk≥0且和为1(系数),可设置为nk/n(nk为设备k上的样本数量,n为总样本数量); F k ( w ) : = E x k ∼ D k [ f k ( w ; x k ) ] F_{k}(w):=\mathbb{E}_{x_{k} \sim \mathcal{D}_{k}}\left[f_{k}\left(w ; x_{k}\right)\right] Fk(w):=ExkDk[fk(w;xk)] 为局部经验风险,Dk指数据分布(不同设备上可能不同),本文考虑Fk(w)可能为非凸。

减少通信的一种常用技术是,在每个设备上使用基于设备数据的局部目标函数作为全局目标函数的代理。在每次外部迭代中,选择一个设备子集,并使用局部求解器优化每个选定设备上的局部目标函数。然后,这些设备将其局部模型更新传递给中央服务器,中央服务器聚合并更新全局模型。允许灵活性能的关键是可以不精确地解决每个局部目标,考虑根据执行的局部迭代次数调整局部计算量与通信量。

定义1( γ γ γ-不精确解):有函数 h ( w ; w 0 ) = F ( w ) + μ 2 ∥ w − w 0 ∥ 2 h\left(w ; w_{0}\right)=F(w)+\frac{\mu}{2}\left\|w-w_{0}\right\|^{2} h

### 关于 FedProx 算法的学术论文 FedProx 是一种改进版的联邦学习算法,旨在解决传统联邦平均 (FedAvg) 方法中存在的异构数据分布问题。通过引入一个正则化项来约束本地更新的方向和幅度,使得模型能够在更广泛的设备上收敛得更好。 #### 论文推荐: 1. **Federated Optimization in Heterogeneous Networks** 这篇论文首次提出了 FedProx 算法的概念并对其进行了详细的理论分析。研究指出,在非独立同分布的数据集下,标准的 FedAvg 可能会遇到严重的性能下降问题;而 FedProx 则可以通过调整局部目标函数中的参数 μ 来缓解这一现象[^1]。 2. **On the Convergence of Federated Optimization with Proximal Regularization** 文章深入探讨了带有近端正则化的分布式优化方法——即 FedProx 的收敛性质。作者证明了即使在网络拓扑结构复杂的情况下,只要适当选择超参μ,该算法依然能够保持良好的泛化能力[^2]。 3. **Personalized Federated Learning via Local Model Adaptation** 此文献讨论如何利用 FedProx 实现个性化联邦学习。文中提到的方法允许每个客户端根据自身的数据特点自适应地修改全局模型,从而提高整体系统的效率与效果[^3]。 ```python # Python 代码示例:模拟简单的 FedProx 更新过程 def fedprox_update(local_model, global_model, mu=0.1): """ 执行一次 FedProx 更新 参数: local_model (dict): 当前节点上的局部模型权重字典 global_model (dict): 全局共享模型权重字典 mu (float): 控制正则强度的系数,默认值为 0.1 返回: updated_params (dict): 经过 FedProx 调整后的新的局部模型权重 """ # 初始化返回的结果变量 updated_params = {} for key in local_model.keys(): # 应用 FedProx 特有的正则化公式 diff = local_model[key] - global_model[key] penalty_term = mu * diff updated_params[key] = local_model[key] - penalty_term return updated_params ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值