La privacy differenziale è un framework per misurare le garanzie di privacy fornite da un algoritmo e può essere espressa utilizzando i valori ε (epsilon) e δ (delta). Dei due, ε è più importante e più sensibile alla scelta degli iperparametri. In parole povere, significano quanto segue:
- ε fornisce un tetto su quanto la probabilità di un determinato output può aumentare includendo (o rimuovendo) un singolo esempio di addestramento. Di solito vuoi che sia una piccola costante (meno di 10, o per garanzie di privacy più rigorose, inferiore a 1). Tuttavia, questo è solo un limite superiore e un grande valore di epsilon può comunque significare una buona privacy pratica.
- δ limita la probabilità di un cambiamento arbitrario nel comportamento del modello. Di solito puoi impostarlo su un numero molto piccolo (1e-7 o giù di lì) senza compromettere l'utilità. Una regola pratica è impostarla su un valore inferiore all'inverso della dimensione dei dati di addestramento.
La relazione tra gli iperparametri di addestramento e la privacy risultante in termini di (ε, δ) è complicata e difficile da dichiarare esplicitamente. Il nostro attuale approccio consigliato è in fondo alla pagina Inizia , che implica trovare il moltiplicatore di rumore massimo che si può usare pur avendo un'utilità ragionevole, e quindi ridimensionare il moltiplicatore di rumore e il numero di microbatch. TensorFlow Privacy fornisce uno strumento, compute_dp_sgd_privacy
, per calcolare (ε, δ) in base al moltiplicatore di rumore σ, al numero di passaggi di addestramento eseguiti e alla frazione di dati di input consumati in ogni passaggio. La quantità di privacy aumenta con il moltiplicatore di rumore σ e diminuisce più volte i dati vengono utilizzati durante l'allenamento. In genere, per ottenere un epsilon al massimo di 10,0, è necessario impostare il moltiplicatore di rumore su un valore compreso tra 0,3 e 0,5, a seconda delle dimensioni del set di dati e del numero di epoche. Vedere il tutorial sulla privacy della classificazione per vedere l'approccio.
Per maggiori dettagli, vedere il documento DP-SGD originale .
Puoi usare compute_dp_sgd_privacy
per scoprire l'epsilon dato un valore delta fisso per il tuo modello [../tutorials/classification_privacy.ipynb]:
-
q
: il rapporto di campionamento - la probabilità che un singolo punto di addestramento venga incluso in un mini batch (batch_size/number_of_examples
). -
noise_multiplier
: un float che regola la quantità di rumore aggiunta durante l'allenamento. In generale, più rumore si traduce in una migliore privacy e minore utilità. -
steps
: il numero di passi globali effettuati.
Un resoconto dettagliato della teoria alla base del calcolo di epsilon e delta è disponibile su Differential Privacy of the Sampled Gaussian Mechanism .