我一直试图在TF Federated的联合学习图像分类笔记本教程上描述学习过程(准确性和损失)。
我看到通过修改epoch超参数,收敛速度有了很大的提高。从5,10,20等改变时期。但我也看到训练精度的大幅提高。我怀疑过拟合正在发生,尽管然后我评估了测试集的准确性仍然很高。
想知道发生了什么事。?
我的理解是,纪元参数控制每轮训练中每个客户的前进/后退道具的数量。这是正确的吗?因此,在10个客户上进行10轮培训,10个时期将是10个时期×10个客户×10轮。意识到需要更大范围的客户端等,但我预计在测试集上会看到较差的准确性。
我能做些什么来看看发生了什么。我可以使用学习曲线之类的评估检查来查看是否发生了过拟合吗?
test_metrics = evaluation(state.model, federated_test_data)似乎只给出了一个数据点,我如何才能获得每个经过验证的测试示例的单独测试精度?
发布于 2020-05-29 20:54:36
增加客户端时期的数量确实可以提高每轮收敛速度;但您绝对正确,存在过度拟合的风险。
在联合平均算法中,客户端时期的数量决定了每个客户端在更新全局模型之前进行的“顺序进度”(或学习)的量。更多的历元将导致每轮更多的局部进展,这可以表现为更快的每轮收敛速度。然而,将这一点与所有客户端上看到的示例数量进行比较,可能会显示出更相似的收敛速度。
在联邦优化设置中,存在新的过度拟合风险,这可能与每个客户端数据集的非IID程度相关。如果每个客户端数据集具有与全局数据分布相同的分布,则可以使用用于非联邦优化的相同实践。每个客户端数据集与“全局”数据集越不相似,当在后面的轮次中使用大量客户端时期时,就越有可能出现“漂移”(客户端收敛到不同的最佳点)。在这种设置下,训练精度仍然很高,因为每个客户在本地训练期间都很好地适应了自己的本地数据。然而,测试精度不太可能提高,因为全局模型平均值可能会非常小(不同的客户端-局部最优点相互抵消)。Praneeth et. al对此进行了一些讨论。
https://stackoverflow.com/questions/62063550
复制相似问题