2

我正在尝试使用高斯自适应裁剪几何方法实现差分私有 FL 二进制分类模型。

aggregation_factory = tff.aggregators.DifferentiallyPrivateFactory.gaussian_adaptive(
            noise_multiplier=0.6,
            clients_per_round=10,
            initial_l2_norm_clip=0.1,
            target_unclipped_quantile=0.8,
            learning_rate=0.2)

我知道 initial_l2_norm_clip 是根据 target_unclipped_quantile 值更新的裁剪范数的初始值。

我们如何为特定模型确定适当的 initial_l2_norm_clip 值?

当我将它(initial_l2_norm_clip)设置为 0.1 时,我得到了一个非常低的 AOC(大约 0.4),但是当我将它设置为更高的值 1.0 时,我得到了一个更好的 AOC 值(大约 0.8)并且在这两种情况下都是“剪辑”迭代过程记录的度量总是增加(即从 0.1 到 0.3 和 1.0 到 1.2)

我的模型运行了 13 轮,每轮有 10 个客户,这有什么不同吗?

4

1 回答 1

2

我要指出的一件事是,一般来说,13 轮训练相对较少。如果您进行更长时间的训练,我希望剪辑范数最终会稳定在相同的值附近,而不管初始值如何。

裁剪范数的自适应选择的要点是初始范数的超参数配置应该没有那么重要。如果您在训练期间看到指标中报告的剪裁范数增加,则意味着initial_l2_norm_clip相对于target_unclipped_quantile运行时实际看到的值而言,该值很小。因此,您可以增加初始范数,它应该更快地匹配目标分位数。如果你想花时间调整这个参数,你也可以使用gaussian_fixed构造函数,并在整个训练过程中保持裁剪范数不变。

但是,请注意,如果您对差异隐私感兴趣,较大的裁剪规范可能会降低您可以获得的保证。因此,需要权衡取舍,以及训练模型的总轮数。

于 2021-06-03T06:17:41.353 回答