1

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

4

1 回答 1

1

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

但是,图像分类的联邦学习教程使用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 模拟或实验和研究中有用。

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

于 2021-05-21T13:07:34.760 回答