【问题标题】:Federated Averaging and TensorFlow联合平均和 TensorFlow
【发布时间】:2021-11-28 14:58:31
【问题描述】:

我是联邦学习的新手,刚刚开始了解 TensorFlow Federated TFF 框架。我心中有一些问题,如果有人能澄清它们,我将不胜感激:

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

提前致谢

【问题讨论】:

    标签: tensorflow tensorflow-federated federated-learning


    【解决方案1】:

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

    回答您的其他问题:

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

    【讨论】:

    • 非常感谢@mangodream 的详细回答。我会进一步询问有关跨筒仓的问题。 1)我的数据是关于一个组织的,我要做的分区是把不同的部门分配给客户。所以每个客户都代表一个部门。我在想这是水平分区,因为所有客户端都共享相同的功能?你怎么看? 2)关于FedAvg,我假设这是一个聚合函数,使用神经网络,并在每个客户端计算SGD?这是正确的吗?再次感谢
    • 是的,如果所有客户端共享相同的功能,我同意它应该是水平的。关于 FedAvg:有客户端和服务器端计算,但你是对的。请参阅tensorflow.org/federated/api_docs/python/tff/learning/… 了解更多信息。
    • 非常感谢您宝贵的 cmets。 ?
    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 2021-06-02
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多