我想使用带裁剪的差分私有 SGD 来训练模型。为此,我想使用 opacus.accountants.utils.get_noise_multiplier 来计算我应该在每次迭代中添加的噪声(出于某些原因,我不想使用 privacy_engine.make_private)。
有一个问题——文档没有说明如何使用它。最终的
sigma
(添加的高斯噪声的每坐标标准)应计算为 noise_multiplier * clipping_threshold
是否正确?
是的,最终的每坐标噪声标准应计算为
noise_multiplier * clipping_threshold
。请参阅https://github.com/pytorch/opacus/issues/557#issuecomment-1420856753,具有讽刺意味的是,这是缺乏文档的问题。