FedProx 简介笔记

Intro

  • 仅是笔记,如有侵权,请联系作者,将会撤销发布。
  • Federated Optimization for Heterogeneous Networks(arXiv:1812.06127v2)、
  • 网络资源

(gamma) - inexact solution

  • definition
  • (gamma)-inexact solution 用于衡量每个局部solver在每一轮的本地计算量。
  • 根据设备和迭代的不同,(gamma) 可以不同。

(gamma ^t_k)- inexact solution

FedAvg的缺点

  • 超参数的调整对FedAvg很重要。
  • local epochs 的数量对FedAvg在收敛上至关重要。
    • local epochs 数越大,可以增加本地计算量,可能减少通信。因此可以在通信受限的网络下提高总体的收敛速度。
    • 但是由于本地目标函数的不同(异质性),太多的local epochs 可能导致每个设备靠近本地的目标函数的最优,而远离全局的目标函数,可能发散。
    • local epochs 太大可能会导致很多设备无法完成整轮的训练。
  • 所以最好是,能够根据每次的迭代和每个设备的不同调整local epochs的数量--> FedProx。

FedProx

Tolerating partial work

  • 与其对所有设备所有迭代用一个(gamma), FedProx对不同迭代和不同设备调整local epochs的数量。

Proximal term

  • 往local subproblem上增加了一个proximal term以有效的限制多变的本地更新
  • 与其只是最小化损失函数(F_k(cdot)), 第k个设备用它选择的local solver来粗略最小化目标函数(h_k): (min_w h_k(w;w^t) = F_k(w)+frac{mu }{2}left | w-w^t ight | ^2)
    • 区别FedAvg: (min_w f(w) = sum^N_{k=1}p_kF_k(w)= E_k[F_k(w)])
  • proximal term的好处
    • 解决数据异质的问题:限制本地更新要更加接近初始的(全局的)模型,不需要手动调整local epochs
    • 安全地包含系统异质带来的不同的本地工作量

框架

fedprox

  • 分析部分(section 4) 在考虑解决分布式设定中这样的目标的独特之处:
    • Non-IID
    • 有用local solver
    • 每个设备上的不精确更新
    • 每轮中处于活跃状态的设备子集
  • 相应选择(mu)(h_k)的Hessian举证也许会是半正定的,因此:
    • (F_k)是非凸的时,(h_k)是凸的
    • (F_k)是凸的时,(h_k)(mu)-strongly convex((mu-)强凸)的
  • FedAvg实际上就是FedProx的一个特例
    • (mu = 0)
    • local solver选择了SGD
    • 对不同的设备和更新轮次都是同一个(gamma)
原文地址:https://www.cnblogs.com/xuwanwei/p/13200702.html