tensorflow-federated - TFF 中的标准裁剪技术

标签 tensorflow-federated federated-learning

我正在使用“DP-FedAvg”算法训练 DP 联邦学习模型,该算法基于以下论文:

Learning Differentially Private Recurrent Language Models

论文提出了“平面裁剪”和“逐层裁剪”两种范数裁剪技术,并利用“逐层裁剪”进行了实验。

对于 TFF,当将 DP 查询和聚合过程附加到联合模型时,默认情况下会实现哪种裁剪技术?有没有办法指定使用的剪辑技术?

最佳答案

您可以使用 tff.learning.dp_aggregator 获得基本的推荐设置,并将其用作

iterative_process = tff.learning.build_federated_averaging_process(
    ...,
    model_update_aggregation_factory=tff.learning.dp_aggregator(...))

有关如何在一般学习算法中使用它的指导,请参阅教程:Tuning recommended aggregations for learning .

使用的默认剪切方法对应于“平面剪切”,如您链接到的论文中的术语。然而,裁剪范数不是固定的,而是根据前几轮训练中看到的值自动调整。有关详细信息,请参阅文档和论文 Differentially Private Learning with Adaptive Clipping .

如果你想使用固定的裁剪范数my_clip_norm,你可以查看实现并看看可以修改哪些组件。我相信您应该能够简单地使用:

tff.aggregators.DifferentiallyPrivateFactory.gaussian_fixed(...,clip=my_clip_norm)

如果您想使用某种形式的每层裁剪,您需要编写自己的聚合器。实现 tff.aggregators.DifferentiallyPrivateFactory 可能是一个好的开始,另请参阅教程 Implementing Custom Aggregations .

关于tensorflow-federated - TFF 中的标准裁剪技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67633859/

相关文章:

grid-search - 网格搜索适用于 TFF 和 FL。?

python - ValueError : Layer "sequential" expects 1 input(s), 但它收到了 10 个输入张量

tensorflow2.0 - 使用 tf.data 与联合核心 API 和远程执行客户端上的数据进行线性回归

python - 如何在不降低精度的情况下调整 tensorflow_federated TFF 中 CIFAR100 的超参数?

tensorflow-federated - 联邦学习中的 state = iterative_process.initialize() 是什么意思

machine-learning - 如何建立不平衡和小数据集的联邦学习模型

python - Tensorflow/Keras : Input 0 of layer lstm is incompatible with the layer: expected ndim=3, 发现 ndim=2

tensorflow-federated - TFF 中高斯自适应裁剪中的 intial_clip_norm 意味着什么?

python - PureFrameworkTensorFoundError,运行时错误 -FedeartedLearning