当使用非 IID 数据集的联邦学习中的工作人员数量增加时,验证准确度会降低

问题描述

我使用具有 6 个类的人类活动识别 (HAR) 数据集,使用联邦学习 (FL)。在这种情况下,我通过将 (1) 每个类数据集分配给不同的 6 个工人,(2) 两个类分配给 3 个不同的工人,以及 (3) 三个类分配给 2 个不同的工人来实现非 IID 数据集。

当我运行 FL 过程时,场景 (3) > (2) > (1) 的验证准确性。我希望所有场景都能获得几乎相同的验证准确度。对于每个场景,我都使用相同的超参数设置,包括批量大小、shuffle 缓冲区和模型配置。

非 IID 数据集在 FL 中很常见,还是我的结果有问题?

解决方法

每个工人只有一个(和所有)一个标签的场景可以被认为是联合平均的“病态不良”非 IID。

在这种情况下,每个工人可能只学习预测它拥有的标签。该模型不需要区分任何特征:如果一个工人只有第 1 类,它可以预测第 1 类并获得 100% 的准确率。每一轮,当所有的模型更新被平均时,全局回到一个模型,只以 1/6 的概率预测每个类。

每个worker的示例分布越接近全局分布(或彼此之间,即客户端数据集的IID越大),其本地训练将产生与全局模型相同方向的更新越接近平均更新,导致更好的训练结果。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...