Featured image of post A&B

A&B

我们设计了 V9 ,并将方案A,B融入其中,并设计了以下消融实验。

A&B

我们设计了 V9 ,并将方案A,B融入其中,并设计了以下消融实验:

下表是我们在alpha=0.05的前提下,对四种V9消融实验组合在第49轮(最终轮)的指标进行的比较:

组合 (Plan A + Plan B)inter_client_proto_stdg_protos_std最终准确率
V7 (A-, B-) [基线]0.04190.913658.77%
纯方案 A (A+, B-)0.05210.917659.04%
纯方案 B (A-, B+)0.04060.915356.87%
方案 A + B (A+, B+)0.04940.920758.21%
(参考) V4 (FAFI原文)~0.055+~1.006~57.74%

显然 Plan A 的优化效果是成功的,而 Plan B则只有负效果。同时 inter_client_proto_std 和 g_protos_std 则在数值上有值得注意之处。我们将试着分析一下这两个数据,为效果给出猜想。

为了理解上表的深刻含义,我们要将这两个指标的物理意义理清。

  • inter_client_proto_std (直接不一致性)

    • 它测量的是在服务器进行任何聚合操作之前,所有客户端上传的本地原型,在特征空间的平均离散程度。
    • 代码: torch.std(local_protos, dim=0).mean()
    • 这是一个直接的不一致性度量。值越高,说明客户端模型之间的原型差异越大。
  • g_protos_std (间接不一致性)

    • 它测量的是所有本地原型被聚合之后,得到的最终的全局原型的内部结构性或确定性。
    • 代码: torch.std(g_protos)
    • 这是一个间接的、推断性的指标。
      • 如果本地原型的观点高度一致,最终的结果充满确定信息 -> g_protos_std低。
      • 如果本地原型的观点随机混乱,最终的结果充满了不确定性 -> g_protos_std高。

观察数据,纯方案A在直接不一致性 (inter_client_proto_std) 上表现出有控制的、中等程度偏高,但在间接不一致性 (g_protos_std) 上表现出决定性的“好”。我们可以这么说:A在保持一致性的前提下展现出有益的多样性。

相比之下,B通过服务器端优化,强行将所有模型拉到最齐,获得了最低的inter_client_proto_std(0.0406)。绝对一致可能使得低熵客户端的细粒度数据被掩盖了,最终准确率下降。

B的失败,也意味着C方案极有可能会失败。这两个方案都追求绝对一致,本质是共通的。

我们的研究始于通过对齐锚点解决模型不一致性。然而,现在我们发现,在OFL中,最优的解决方案并非追求极致的一致性。 而是要将其不一致从无序的、破坏性的差异,转化为一种有序的、有益的多样性。通过允许低熵客户端保留其独特性,同时让高熵客户端维护核心共识,才能为后续的服务端集成提供了信息量丰富的输入,从而实现了全局性能的最优化。

保留所有权。
comments powered by Disqus