【问题标题】:In FL, can clients train different model architectures?在 FL 中,客户可以训练不同的模型架构吗?
【发布时间】:2021-05-21 09:40:09
【问题描述】:

我在这个tutorial上练习,我希望每个客户训练不同的架构和不同的模型,这可能吗?

【问题讨论】:

    标签: tensorflow-federated federated-learning


    【解决方案1】:

    TFF 确实支持具有不同模型架构的不同客户端。

    但是,Federated Learning for Image Classification tutorial 使用 tff.learning.build_federated_averaging_process,它实现了联合平均 (McMahan et. al 2017) 算法,定义为每个客户端接收相同的架构。这在 TFF 中通过将模型“映射”(在函数式编程意义上)到每个客户端数据集以生成新模型,然后聚合结果来完成。

    要实现具有不同架构的不同客户端,需要实施不同的联合学习算法。有几种(非详尽的)可以表达的方式:

    1. 实现ClientFedAvg 的替代方案。此方法将固定模型应用于客户端数据集。替代实现可能会为每个客户端创建不同的架构。

    2. tff.learning.build_federated_averaging_process 创建一个替代品 使用不同的函数签名,拆分客户端组 这将收到不同的架构。例如,当前 FedAvg 看起来像:

      (<state@SERVER, data@CLIENTS> → <state@SERVER, metrics@SERVER>
      

      这可以替换为带有签名的方法:

      (<state@SERVER, data1@CLIENTS, data2@CLIENTS, ...> → <state@SERVER, metrics@SERVER>
      

      这将允许函数在内部 tff.federated_map() 不同的模型架构到不同的客户端数据集。这可能只在 FL 模拟或实验和研究中有用。

    但是,在联邦学习中,如何将服务器上的模型聚合回单个全局模型会遇到一些难题。这可能需要先设计出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      相关资源
      最近更新 更多