Cosa si intende per "rumore di Laplace"?


9

Attualmente sto scrivendo un algoritmo per la privacy differenziale usando il meccanismo di Laplace.

Sfortunatamente non ho un background in statistica, quindi molti termini mi sono sconosciuti. Quindi ora sto inciampando sul termine: rumore di Laplace . Per rendere un differenziale del set di dati privato tutti i documenti, basta parlare dell'aggiunta del rumore di Laplace in base alla distribuzione di Laplace ai valori della funzione.

k(X)=f(X)+Y(X)

(k è il valore privato differenziale, f il valore restituito dalla funzione di valutazione e Y il rumore di Laplace)

Questo significa che creo variabili casuali dalla distribuzione di Laplace secondo questa funzione che ho da Wikipedia https://en.wikipedia.org/wiki/Laplace_distribution ?

Y=μb sgn(U)ln(12|U|)

AGGIORNAMENTO: ho tracciato fino a 100 variabili casuali tratte dalla funzione sopra, ma questo non mi dà una distribuzione di Laplace (nemmeno vicino). Ma penso che dovrebbe modellare una distribuzione di Laplace.

UPDATE2:

Queste sono le definizioni che ho:

(Il meccanismo di Laplace). Data qualsiasi funzione , il meccanismo di Laplace è definito come: dove Y sono le variabili casuali tratte daf:N|X|RkML(x,f(·),ϵ)=f(x)+(Y1,...,Yk)Lap(f/ϵ)

Così come:

Per generare Y (X), una scelta comune è quella di utilizzare una distribuzione di Laplace con media zero e parametro scala Δ (f) / ε


La seconda equazione che hai è il CDF piuttosto che il PDF. Vuoi campionare dal PDF. Ecco un po 'di codice Python da campionare dalla distribuzione Laplace (biexponential) ( docs.scipy.org/doc/numpy-1.9.3/reference/generated/… )
Luca

1
Potete fornire il riferimento esatto che menziona il "rumore di Laplace"? Immagino che intendano aggiungere rv Y a X dove Y segue la distribuzione di Laplace. Come circa l'aggiornamento, questo metodo non lavoro - è necessario aver fatto errori nel codice, o è solo il fatto che hai fatto solo 100 pareggi da esso, se si cerca di 5000 o più Credo che sarebbe cominciare a guardare più " Laplace "...
Tim

Penso che la mia trama in realtà assomigli di più a un CDF, l'ho aggiunta sopra, così come il mio codice. Ecco i link alle citazioni: 1 2
Lotte

Ho anche visto il codice che sto usando prima e non so perché mi dia un risultato come questo. La trama mostra il mio codice, ripetuto 1000 volte per f = 1 e eps = 1. Ma penso che il mio punto principale sia, se ho capito bene il "rumore di Laplace". Il codice che posso allenare in qualche modo.
Lotte,

Risposte:


14

Hai ragione, aggiungere rumore di Laplace significa che alla tua variabile aggiungi la variabile che segue la distribuzione di Laplace . Ci sono molte ragioni per cui si chiama rumore . Innanzitutto, pensa all'elaborazione del segnale, in cui il messaggio viene inviato su alcuni canali e, a causa della natura imperfetta del canale, il segnale ricevuto è rumoroso, quindi devi isolare il segnale dal rumore. In secondo luogo, nella crittografia si parla anche di rumore pseudocasuale e la privacy differenziale è correlata alla crittografia. In terzo luogo, nelle statistiche e nell'apprendimento automatico possiamo anche parlare di rumore statistico , i modelli statistici includono termini di rumore o errore ecc. (C'è anche un libro sui nomi delle previsioniXYSignal and the noise di Nate Silver). Quindi usiamo il rumore come sinonimo più preciso di casualità ambigua .

Per quanto riguarda la generazione casuale, esistono diversi modi per disegnare valori casuali dopo la distribuzione di Laplace, ad esempio:

  1. Il metodo di trasformazione inversa descritto su Wikipedia:
f <- function(n) {
   u <- runif(n, -0.5, 0.5)
   sign(u)*log(1-2*abs(u))
}
  1. Se e sono variabili casuali indipendenti che seguono la distribuzione esponenziale, allora segue la distribuzione di Laplace :UVY=UV
g <- function(n) { rexp(n)-rexp(n) }
  1. Se segue la distribuzione di Laplace, allorasegue la distribuzione esponenziale , quindi:Y|Y|
h <- function(n) { rexp(n)*sample(c(-1,1), n, replace = TRUE) }

Sui grafici seguenti è possibile vedere la distribuzione di campioni disegnati usando ciascuna delle funzioni con la densità di Laplace di accompagnamento (linea rossa).105

inserisci qui la descrizione dell'immagine

Per semplificare gli esempi, utilizzo la distribuzione standard di Laplace con scale = 1, ma è possibile modificare facilmente i risultati moltiplicando i risultati utilizzando un fattore di ridimensionamento diverso.


Grazie! Sta rispondendo alla mia domanda, ero davvero confuso sul termine "rumore" e non sono riuscito a trovare una spiegazione corretta.
Lotte,

Ho tracciato l'istogramma del mio codice e sembra buono :)
Lotte,

2

La Laplace o doppia distribuzione esponenziale cade esponenzialmente a sinistra e a destra attorno a una media. Fondamentalmente è l'esponenziale rispecchiato dall'altra parte.

  • Se si desidera la probabilità, utilizzare la probabilità dell'esponenziale e aggiungere un abs () al valore osservato. La probabilità logaritmica è semplicemente abs () dei residui, moltiplicato per il tasso dell'esponenziale.

  • Per campionare, il più semplice è disegnare da -1,1 e moltiplicare con un disegno dalla distribuzione esponenziale, che è disponibile nella maggior parte dei linguaggi di programmazione. In alternativa, come notato sopra, troverai anche implementazioni dirette di Laplace, ma potrebbe richiedere un po 'più di ricerca.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.