Intro
- 仅是笔记,如有侵权,请联系作者,将会撤销发布。
- Federated Optimization for Heterogeneous Networks(arXiv:1812.06127v2)、
- 网络资源
\(\gamma\) - inexact solution
- \(\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 \right \| ^2\)
- 区别FedAvg: \(min_w f(w) = \sum^N_{k=1}p_kF_k(w)= E_k[F_k(w)]\)
- proximal term的好处
- 解决数据异质的问题:限制本地更新要更加接近初始的(全局的)模型,不需要手动调整local epochs
- 安全地包含系统异质带来的不同的本地工作量
框架
- 分析部分(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\)