Apa yang dimaksud dengan “Laplace noise”?


9

Saat ini saya sedang menulis algoritma untuk privasi diferensial menggunakan mekanisme Laplace.

Sayangnya saya tidak memiliki latar belakang statistik, oleh karena itu banyak istilah yang tidak saya ketahui. Jadi sekarang saya tersandung istilah: kebisingan Laplace . Untuk membuat diferensial dataset privat, semua makalah hanya berbicara tentang menambahkan noise Laplace sesuai dengan distribusi Laplace ke nilai fungsi.

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

(k adalah nilai pribadi diferensial, f nilai yang dikembalikan oleh fungsi evaluasi dan Y kebisingan Laplace)

Apakah ini berarti saya membuat variabel acak dari distribusi Laplace sesuai fungsi yang saya miliki dari wikipedia https://en.wikipedia.org/wiki/Laplace_distribution ?

Y=μ-b sgn(U)dalam(1-2|U|)

UPDATE: Saya merencanakan hingga 100 variabel acak yang diambil dari fungsi di atas, tetapi ini tidak memberi saya distribusi Laplace (bahkan tidak menutup). Tapi saya pikir itu harus memodelkan distribusi Laplace.

UPDATE2:

Itulah definisi yang saya miliki:

(Mekanisme Laplace). Dengan fungsi apa pun f:N|X|Rk , mekanisme Laplace didefinisikan sebagai: M.L.(x,f(·),ϵ)=f(x)+(Y1,...,Yk) mana Y adalah variabel acak iid yang diambil dari L.Sebuahhal(f/ϵ)

Sebaik:

Untuk menghasilkan Y (X), pilihan umum adalah menggunakan distribusi Laplace dengan rata-rata nol dan parameter skala Δ (f) / ε


Persamaan kedua yang Anda miliki adalah CDF daripada PDF. Anda ingin mengambil sampel dari PDF. Berikut adalah beberapa kode python untuk diambil sampel dari distribusi Laplace (biexponential) ( docs.scipy.org/doc/numpy-1.9.3/reference/generated/… )
Luca

1
Bisakah Anda memberikan referensi yang menyebutkan "Laplace noise"? Saya kira mereka berarti menambahkan rv Y ke X di mana Y mengikuti distribusi Laplace. Mengenai pembaruan Anda, metode ini berfungsi - Anda pasti telah membuat kesalahan dalam kode Anda, atau hanya fakta bahwa Anda hanya membuat 100 undian darinya, jika Anda mencoba 5.000 atau lebih, saya kira itu akan mulai terlihat lebih " Laplace "...
Tim

Saya pikir plot saya sebenarnya lebih mirip CDF, saya menambahkannya di atas, serta kode saya. Berikut adalah tautan ke kutipan: 1 2
Lotte

Saya juga melihat kode yang saya gunakan sebelumnya dan saya tidak tahu mengapa itu memberi saya hasil seperti ini. Plot menunjukkan kode saya, dilingkarkan 1000 kali untuk f = 1 dan eps = 1. Tapi saya pikir poin utama saya adalah, jika saya mengerti "Laplace noise" benar. Kode saya bisa berolahraga entah bagaimana.
Lotte

Jawaban:


14

Anda benar, menambahkan noise Laplace berarti bahwa ke variabel Anda menambahkan variabel yang mengikuti distribusi Laplace . Ada beberapa alasan mengapa ini disebut noise . Pertama, pikirkan pemrosesan sinyal, di mana pesan dikirim melalui beberapa saluran dan karena sifat saluran yang tidak sempurna maka sinyal yang diterima berisik, jadi Anda harus mengisolasi sinyal dari kebisingan. Kedua, dalam kriptografi kami juga berbicara tentang kebisingan pseudorandom dan privasi diferensial terkait dengan kriptografi. Ketiga, dalam statistik dan pembelajaran mesin, kami juga dapat berbicara tentang kebisingan statistik, model statistik mencakup persyaratan kebisingan atau kesalahan, dll. (Bahkan ada buku tentang perkiraan namaYXYSinyal dan suara oleh Nate Silver). Jadi kami menggunakan noise sebagai sinonim yang lebih tepat untuk keacakan yang ambigu .

Mengenai generasi acak, ada sejumlah cara bagaimana Anda bisa menggambar nilai acak berikut distribusi Laplace, misalnya:

  1. The invers transformasi metode yang dijelaskan di Wikipedia:
f <- function(n) {
   u <- runif(n, -0.5, 0.5)
   sign(u)*log(1-2*abs(u))
}
  1. Jika dan adalah variabel acak independen yang mengikuti distribusi eksponensial, maka mengikuti distribusi Laplace :V Y = U - VUVY=U-V
g <- function(n) { rexp(n)-rexp(n) }
  1. Jika mengikuti distribusi Laplace, makamengikuti distribusi eksponensial , jadi:| Y |Y|Y|
h <- function(n) { rexp(n)*sample(c(-1,1), n, replace = TRUE) }

Pada plot di bawah ini Anda dapat melihat distribusi sampel yang diambil menggunakan masing-masing fungsi dengan menyertai kepadatan Laplace (garis merah).105

masukkan deskripsi gambar di sini

Untuk menyederhanakan contoh, saya menggunakan distribusi Laplace standar dengan skala = 1, tetapi Anda dapat dengan mudah mengubah hasil dengan mengalikan hasilnya menggunakan faktor penskalaan yang berbeda.


Terima kasih! Itu menjawab pertanyaan saya, saya benar-benar bingung tentang istilah "kebisingan" dan tidak dapat menemukan penjelasan yang tepat.
Lotte

Saya merencanakan histogram untuk kode saya dan kelihatannya bagus :)
Lotte

2

Distribusi Laplace atau double eksponensial jatuh secara eksponensial ke kiri dan kanan di sekitar beberapa rata-rata. Ini pada dasarnya adalah cermin eksponensial ke sisi lain.

  • Jika Anda menginginkan kemungkinan tersebut, gunakan kemungkinan eksponensial dan tambahkan abs () ke nilai yang diamati. Kemungkinan log hanyalah abs () dari residu, dikalikan dengan laju eksponensial.

  • Untuk sampel, yang paling mudah adalah menggambar dari -1,1, dan mengalikannya dengan menggambar dari distribusi eksponensial, yang tersedia di sebagian besar bahasa pemrograman. Atau, seperti yang disebutkan di atas, Anda juga akan menemukan implementasi langsung dari Laplace, tetapi mungkin memerlukan sedikit lebih banyak pencarian.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.