微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 TFF 中的高斯自适应裁剪中 intial_clip_norm 是什么意思?

如何解决在 TFF 中的高斯自适应裁剪中 intial_clip_norm 是什么意思?

我正在尝试使用高斯自适应裁剪几何方法实现差分私有 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 个客户,这有什么不同吗?

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?