其他
横向联邦优化的原理与思考
点击上方蓝字 关注我们
clients的“梯度”是经过多个epoch的训练产生的,这原本是为了加速联邦学习,减小通信次数,但也带来了问题。与SGD中单个样本产生的梯度不同,客户端数据分布的差异会造成clients之间的“梯度”差异巨大,此时简单的平均会严重破坏单个“样本”原始的优化方向,这种破坏也可以称为知识遗忘问题。也可以这么理解,在平滑性假设下,SGD中Batch内每个样本只是走了一小步,这样的话他们的平均结果不会造成loss的巨大波动,而联邦学习设定里,每个样本的“梯度”都走的很远,一个批里面的“样本”带来的梯度已经不再处于一个平滑的局部区域内了。 SGD中Batch内的梯度直接平均即可,但是clients的数据量不平衡,使得我们需要在参数平均时考虑引入合适的权重,也有文章考虑自适应权重,否则平均会被大数据量(或者大的迭代次数)的客户端的“梯度”所主导,这样会造成聚合模型对于不同客户端的不公平问题。 SGD的梯度完全来自于当前模型参数和当前的输入样本,而client的“梯度”不仅仅取决于本轮拿到的模型参数和client数据集,它还受client的优化过程影响,同样的模型和数据集,可能会给client带来无数个不同的“梯度”,最终聚合时,不同client的“梯度”越接近,聚合过程引入的破坏就越小。 还有一些问题,比如client和server的loss的最优解不一致造成他们始终无法共赢。这些个人认为不算是general的问题,所以先不展开了。 待补充
本文作者来自复旦大学,知乎号TRADEOFF
编辑:刘翔宇、陈袁园
END