¿Qué se entiende por "ruido de Laplace"?

9

Actualmente estoy escribiendo un algoritmo para privacidad diferencial usando el mecanismo de Laplace.

Lamentablemente no tengo antecedentes en estadísticas, por lo tanto, muchos términos son desconocidos para mí. Así que ahora estoy tropezando con el término: ruido de Laplace . Para que un conjunto de datos diferencial sea privado, todos los documentos solo hablan de agregar ruido de Laplace de acuerdo con la distribución de Laplace a los valores de la función.

k(X)=F(X)+Y(X)

(k es el valor privado diferencial, f el valor devuelto por la función de evaluación e Y el ruido de Laplace)

¿Significa esto que creo variables aleatorias de la distribución de Laplace de acuerdo con esta función que tengo de wikipedia https://en.wikipedia.org/wiki/Laplace_distribution ?

Y=μ-si sgn(U)En(1-2El |UEl |)

ACTUALIZACIÓN: tracé hasta 100 variables aleatorias extraídas de la función anterior, pero esto no me da una distribución de Laplace (ni siquiera cerca). Pero creo que debería modelar una distribución de Laplace.

ACTUALIZACIÓN2:

Esas son las definiciones que tengo:

(El mecanismo de Laplace). Dada cualquier función F:norteEl |XEl |Rk , el mecanismo de Laplace se define como: METROL(X,F(·),ϵ)=F(X)+(Y1,...,Yk) donde Y son iid variables aleatorias extraídas de Lunapag(F/ /ϵ)

Tanto como:

Para generar Y (X), una opción común es usar una distribución de Laplace con media cero y parámetro de escala Δ (f) / ε

Lotte
fuente
La segunda ecuación que tiene es el CDF en lugar del PDF. Desea muestrear del PDF. Aquí hay un código de Python para probar de la distribución de Laplace (biexponential) ( docs.scipy.org/doc/numpy-1.9.3/reference/generated/… )
Luca
1
¿Puede proporcionar la referencia exacta que menciona el "ruido de Laplace"? Supongo que significan agregar rv Y a X donde Y sigue la distribución de Laplace. Como sobre su actualización, este método hace el trabajo - usted debe haber cometido un error en su código, o es sólo el hecho de que usted ha hecho solamente 100 saca de ella, si se intenta 5000 o más, supongo que sería empezar a buscar más " Laplace "...
Tim
Creo que mi trama en realidad se parece más a un CDF, lo agregué arriba, así como mi código. Aquí están los enlaces a las citas: 1 2
Lotte
También he visto el código que estoy usando antes y no sé por qué me da un resultado como este. El gráfico muestra mi código, en bucle 1000 veces para f = 1 y eps = 1. Pero creo que mi punto principal es, si entendí bien "ruido de Laplace". El código que puedo entrenar de alguna manera.
Lotte

Respuestas:

14

Tienes razón, agregar ruido de Laplace significa que a tu variable agregas la variable que sigue a la distribución de Laplace . Hay varias razones por las que se llama ruido . Primero, piense en el procesamiento de la señal, donde el mensaje se envía a través de algún canal y debido a la naturaleza imperfecta del canal, la señal recibida es ruidosa, por lo que debe aislar la señal del ruido. En segundo lugar, en criptografía también hablamos sobre ruido pseudoaleatorio y la privacidad diferencial está relacionada con la criptografía. Tercero, en estadística y aprendizaje automático también podemos hablar sobre ruido estadístico , los modelos estadísticos incluyen términos de ruido o error, etc. (incluso hay un libro sobre pronosticar nombresXYSeñal y el ruido de Nate Silver). Por eso, utilizamos el ruido como sinónimo más preciso de aleatoriedad ambigua .

En cuanto a la generación aleatoria, hay varias formas de dibujar valores aleatorios después de la distribución de Laplace, por ejemplo:

  1. El método de transformación inversa descrito en Wikipedia:
f <- function(n) {
   u <- runif(n, -0.5, 0.5)
   sign(u)*log(1-2*abs(u))
}
  1. Si y son variables aleatorias independientes que siguen la distribución exponencial, entonces sigue la distribución de Laplace :UVY=U-V
g <- function(n) { rexp(n)-rexp(n) }
  1. Si sigue la distribución de Laplace, entoncessigue la distribución exponencial , entonces:YEl |YEl |
h <- function(n) { rexp(n)*sample(c(-1,1), n, replace = TRUE) }

En las siguientes gráficas, puede ver la distribución de muestras extraídas utilizando cada una de las funciones con la densidad de Laplace (línea roja).105 5

ingrese la descripción de la imagen aquí

Para simplificar los ejemplos, uso la distribución estándar de Laplace con escala = 1, pero puede cambiar fácilmente los resultados multiplicando los resultados usando diferentes factores de escala.

Tim
fuente
¡Gracias! Eso responde a mi pregunta, estaba realmente confundido sobre el término "ruido" y no pude encontrar una explicación adecuada.
Lotte
Tracé el histograma para mi código y se ve bien :)
Lotte
2

La distribución exponencial de Laplace o doble cae exponencialmente a la izquierda y derecha alrededor de alguna media. Es básicamente el exponencial reflejado al otro lado.

  • Si desea la probabilidad, use la probabilidad de la exponencial y agregue un abs () al valor observado. La probabilidad logarítmica es simplemente el abs () de los residuos, multiplicado por la tasa de la exponencial.

  • Para muestrear, lo más fácil es dibujar de -1,1 y multiplicar con un dibujo de la distribución exponencial, que está disponible en la mayoría de los lenguajes de programación. Alternativamente, como se señaló anteriormente, también encontrará implementaciones directas de Laplace, pero puede requerir un poco más de búsqueda.

Florian Hartig
fuente