『』如何在联邦训练中跟踪模型性能指标


联邦学习是一种机器学习技术 , 可以跨多个分散的设备训练机器学习模型 , 每个设备持有一个本地数据样本 , 而无需交换这些数据样本 。 假设通过使用这种技术 , 您已经训练了一个二元分类模型 。 您想要通过在多个设备的每个设备上计算模型ROC-AUC分数 , 然后对结果取均值 , 来对它进行测试 。 这会出现以下问题:

  • 如果所有的数据都位于同一设备上 , 那么这个分数与原本可以得到的ROC-AUC分数有什么不同呢?
  • 在什么情况下两个分数相等?它们是否只在数据在所有设备上分布相同的情况下才相等呢?
本文将通过以数字实例和交互式可视化为支撑的分析案例研究来解决这些问题 。
动机:联邦学习

『』如何在联邦训练中跟踪模型性能指标
本文插图

联邦学习架构
与集中式学习方法(数据存储在单个服务器上 , 我们在训练期间可以不断访问数据)相比 , 在联邦学习设置中 , 数据由多个设备持有 , 这些设备可以在不同的时间参与训练过程而无需共享其数据 。 一个可能的联邦训练过程由以下步骤组成 , 这些步骤重复多次 , 直到训练出机器学习模型为止:
  • 将机器学习模型发送给愿意参与训练过程的每个活动设备;
  • 为每个设备在相应设备的单个数据批次上训练模型;
  • 将训练后的机器学习模型权重返回到中央服务器 , 在中央服务器上以安全的方式汇总模型权重 , 这样服务器就不会知道不同设备对平均模型权值的贡献;
  • 在验证数据集上检查模型性能 , 并决定是否应停止训练过程;
在这个设置中 , 中央服务器只接收来自所有设备的平均模型权值更新 , 这使得它无法猜测不同设备中的数据是什么样子 。
如果我们想要检查模型性能 , 我们希望以一种尽可能少地收集关于数据的信息的方式来做到这一点 。 一种可能的解决方案是计算每个设备中包含的数据的模型性能指标A(如ROC-AUC评分) , 然后将安全计算的指标平均值发送给服务器 。 模型所有者(服务器)接收到这个平均的度量 , 但不知道它如何与度量A(D)相关(如果所有数据D都在一个地方) , 也就是说 , 他不知道:
『』如何在联邦训练中跟踪模型性能指标
本文插图

我们将数据D分为M个子集 。
ROC-AUC定义
我们将考虑有一个二元分类问题的情况 。 组成数据集的特征(x∈??)和目标值(y∈{0,1})用于训练模型g:????分配到每一个特征得分ξ= g (x) 。 通过将分数ξ与阈值T进行比较 , 我们可以确定给定元素是属于类别y = 1(ξ> T)还是属于类别y = 0 。
例如 , 我们可以考虑以下情况的数据集:三个特征(x∈?3) , 目标变量y和模型g的数据集 , 其定义如下:
『』如何在联邦训练中跟踪模型性能指标
本文插图

其中ω表示机器学习模型的训练参数 。
我们可以将计算出的分数ξ分为两类:分别从属于正类(y = 1)和负类(y = 0)的数据点获得的分数 。 两组分数都可以解释为分别来自第一组和第二组元素的概率分布函数f?, f?的样本 。 下图给出了这两种分布的可视化示例 。
『』如何在联邦训练中跟踪模型性能指标
本文插图

属于正类(f?)和负类(f?)的元素的可能分数分布 。 所有在阈值T右侧的预测都将被训练过的模型归为正类 。
该图代表一种常见的情况 , 其中我们无法设置阈值T使得两个概率分布函数可以完全分开 。 某些负类的成员被分类为正(假阳性= FP;T右侧蓝色曲线下的面积) , 一些正类的成员被分类为负(假阴性= FN= FN;T左侧红色曲线下方的区域) 。 一般来说,模型越好 , f? , f?之间的重叠越小 , 假阳性和假阴性的数量越少 。


推荐阅读