Potential bug in rdp analysis

Aperta
#166 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python, tensorflow

Direzione di ricerca

Inizia da tensorflow_privacy/privacy/analysis/rdp_accountant.py alla riga collegata, nella parte relativa alla gestione di RDP piccoli, poi esegui l’esempio dell’issue con compute_rdp e get_privacy_spent usando ordini che includano 1 + 1e-8. Il lavoro è completato quando il caso con alfa piccolo restituisce un epsilon diverso da zero coerente con lo stesso calcolo senza quell’ordine, senza modificare inaspettatamente gli altri valori restituiti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Hello !
I'm getting suspicious results when computing epsilon with small alphas.
For example with the code:

from tensorflow_privacy.privacy.analysis.rdp_accountant import compute_rdp
from tensorflow_privacy.privacy.analysis.rdp_accountant import get_privacy_spent

noise_multiplier = 1
batch_size = 105
steps = 1
delta = 1e-3

orders = [1 + 1e-8] + [1 + x / 10. for x in range(1, 100)] + list(range(12, 64))
sampling_probability = batch_size / 100000
rdp = compute_rdp(
    q=sampling_probability,
    noise_multiplier=noise_multiplier,
    steps=steps,
    orders=orders
)
print(get_privacy_spent(orders, rdp, target_delta=delta))  # returns (0, 0.001, 1.00000001)

The privacy spent should be small but not zero. When I remove (1 + 1e-8) of orders, I get the correct answer.
I tracked down this behavior to this line, which puts epsilon to zero for sufficiently small rdp, but I'm not sure why...

Lingua principale
Python
Stelle
2k
Fork
477
Merge medio
17h 24m
PR unite (30g)
4

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di tensorflow/privacy

Tutte le issue di tensorflow/privacy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.