联合平均和 TensorFlow

Ree*_*eem 3 tensorflow tensorflow-federated federated-learning

我是联邦学习的新手,刚刚了解 TensorFlow Federated TFF 框架。我脑子里有一些问题,如果有人能澄清这些问题,我将不胜感激:

  1. 联合平均算法是 TFF 支持的唯一聚合算法吗?它与联合随机梯度下降有何不同?
  2. 联合平均是否需要每个客户端接受神经网络培训?或者可以使用任何机器学习算法来训练本地数据?
  3. 我有大数据,我计划将数据划分为较小的数据集,并将每个部分作为一个客户端进行模拟?这在 TFF 中有效吗?它是否考虑水平或垂直联合学习?

提前致谢

Wen*_*Zhu 6

图像分类联合学习教程将是学习 TFF 的良好开始: https: //www.tensorflow.org/federated/tutorials/federated_learning_for_image_classification “准备输入数据”部分与您的第三个问题相关。关于垂直与水平:我知道最近的出版物中定义了多种类型的联邦学习。就我个人而言,我将您所描述的称为跨筒仓联邦学习,请参阅本文第 2.2 节以获取更多信息:https ://arxiv.org/abs/1912.04977

回答您的其他问题:

请参阅上面的教程,了解如何创建具有联合平均的 iterative_process,同时在服务器和客户端设置 SGD 学习率。您还可以实现定制的联邦学习算法:https://www.tensorflow.org/federated/tutorials/building_your_own_federated_learning_algorithm(本教程也可能回答您关于定制本地训练的第二个问题?)

  • 是的,我同意如果所有客户端都共享相同的功能,那么它应该是水平的。关于 FedAvg:有客户端和服务器端计算,但你是对的。有关更多信息,请参阅 https://www.tensorflow.org/federated/api_docs/python/tff/learning/build_federated_averaging_process。 (3认同)