JavaScript 中的拉普拉斯噪声分布
laplace noise distribution in JavaScript
我想创建一个基于 Web 的差分隐私演示。为此,我需要拉普拉斯噪声分布的 JavaScript 实现。
我一直无法在 JavaScript 中找到基本的噪声分布,例如高斯分布。这是令人惊讶的,因为我希望会有很多很酷的 JavaScript 演示来展示分布是如何建立的,一个接一个地绘制,以产生漂亮的钟形曲线。
如何在 Javascript 中生成拉普拉斯噪声分布?
function sgn(x) {
return x < 0 ? -1 : 1;
}
// From wikipedia:
// Lap(X) = mu - b sgn(U) ln (1-2|U|) where U is a random variable between -0.5 and 0.5
function laplace(mu, b) {
var U = Math.random() - 0.5;
return mu - (b * sgn(U) * Math.log(1 - 2* Math.abs(U)));
}
function privatize(F,deltaF,epsilon) {
return F + laplace(0.0, deltaF/epsilon);
}
我想创建一个基于 Web 的差分隐私演示。为此,我需要拉普拉斯噪声分布的 JavaScript 实现。
我一直无法在 JavaScript 中找到基本的噪声分布,例如高斯分布。这是令人惊讶的,因为我希望会有很多很酷的 JavaScript 演示来展示分布是如何建立的,一个接一个地绘制,以产生漂亮的钟形曲线。
如何在 Javascript 中生成拉普拉斯噪声分布?
function sgn(x) {
return x < 0 ? -1 : 1;
}
// From wikipedia:
// Lap(X) = mu - b sgn(U) ln (1-2|U|) where U is a random variable between -0.5 and 0.5
function laplace(mu, b) {
var U = Math.random() - 0.5;
return mu - (b * sgn(U) * Math.log(1 - 2* Math.abs(U)));
}
function privatize(F,deltaF,epsilon) {
return F + laplace(0.0, deltaF/epsilon);
}