• 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)
  • 相关阅读:
    linux-nginx
    mysql数据库的多实例与主从同步。
    MySQL的命令
    Mysql的管理
    linux之mariadb的安装
    Linux进程基础
    linux网络基础
    解锁HMC8及HMC9的root用户
    RHEL8.0-beta-1.ISO
    RHEL6误安装RHEL7的包导致glibc被升级后系统崩溃处理方法
  • 原文地址:https://www.cnblogs.com/xuwanwei/p/13200702.html
Copyright © 2020-2023  润新知