motivation:相比DPSGD,同样的隐私保证下能够添加更小的噪声。
methods:非凸函数下,通过梯度转换,限制方差,最终得到小噪声。
重要知识点:提供隐私保护近似的一种常见技术是限制函数的灵敏度,并添加与灵敏度界成比例的高斯噪声。为此,我们需要在每一轮SGD中限制梯度的灵敏度。这可以通过几种方式实现。
如果损失函数是可微的(如果不可微则使用子梯度),并且有Lipschitz界,[16]用Lipschitz界对梯度范数设界,并利用它推导梯度的灵敏度。如果损失函数的导数作为输入的函数有界(例如,在逻辑回归的情况下,可以用可能的最大输入范数来限制梯度范数),从而得出梯度的灵敏度。在深度学习应用中,如果损失函数没有已知的Lipschitz界,则很难推导出梯度模的先验界。在训练的每次迭代中,[39]提出使用公共数据来获得梯度范数的近似界,并在这个近似界上剪切梯度。然而,公共数据的可用性是一个强有力的假设,[13,14]剪辑了没有公共数据可用性的梯度。我们还假设不能访问公共数据。
gt是梯度下降向量,辅助向量at,bt
转换向量wt=(gt-at)/bt;裁剪之后wt-hat;加噪声之后变成wt~,最后还原成
通过引理2可以得出,新梯度的方差bias很重要,通过triangle inequality and Jensen’s inequality,得出:
找最优at bt可以去bound ,然后把上述公式简化为:
上式中的第一项对应于变换后的梯度wt可能被裁剪的情况。第二项对应于注入到剪切梯度的高斯噪声。通过公式直接找at bt有点难,所以限制裁剪:
去最小化添加的高斯噪声。
因此最后总的噪声范数的期望就是:
原来的梯度漂白:
现在通过
可以看出传统的加噪声方式添加了更多的噪声。
每一个B之后,调整均值和方差,因为在迭代中没有直接的随机梯度,所以采用指数平均方法对之前的梯度和现在的梯度进行调整。
实验结果较好: