A privacidade diferencial é uma estrutura para medir as garantias de privacidade fornecidas por um algoritmo e pode ser expressa usando os valores ε (épsilon) e δ (delta). Dos dois, ε é mais importante e mais sensível à escolha dos hiperparâmetros. Grosso modo, eles significam o seguinte:
- ε fornece um teto sobre o quanto a probabilidade de uma saída específica pode aumentar ao incluir (ou remover) um único exemplo de treinamento. Você geralmente quer que seja uma constante pequena (menos de 10, ou para garantias de privacidade mais rigorosas, menos de 1). No entanto, este é apenas um limite superior, e um grande valor de epsilon ainda pode significar uma boa privacidade prática.
- δ limita a probabilidade de uma mudança arbitrária no comportamento do modelo. Normalmente, você pode definir isso para um número muito pequeno (1e-7 ou mais) sem comprometer a utilidade. Uma regra prática é configurá-lo para ser menor que o inverso do tamanho dos dados de treinamento.
A relação entre os hiperparâmetros de treinamento e a privacidade resultante em termos de (ε, δ) é complicada e difícil de declarar explicitamente. Nossa abordagem atual recomendada está na parte inferior da página Introdução , que envolve encontrar o multiplicador de ruído máximo que se pode usar enquanto ainda tem utilidade razoável e, em seguida, dimensionar o multiplicador de ruído e o número de microlotes. O TensorFlow Privacy fornece uma ferramenta, compute_dp_sgd_privacy
, para calcular (ε, δ) com base no multiplicador de ruído σ, no número de etapas de treinamento realizadas e na fração dos dados de entrada consumidos em cada etapa. A quantidade de privacidade aumenta com o multiplicador de ruído σ e diminui quanto mais vezes os dados são usados no treinamento. Geralmente, para atingir um epsilon de no máximo 10,0, precisamos definir o multiplicador de ruído para cerca de 0,3 a 0,5, dependendo do tamanho do conjunto de dados e do número de épocas. Consulte o tutorial de privacidade de classificação para ver a abordagem.
Para mais detalhes, consulte o documento DP-SGD original .
Você pode usar compute_dp_sgd_privacy
para descobrir o epsilon dado um valor delta fixo para seu modelo [../tutorials/classification_privacy.ipynb]:
-
q
: a taxa de amostragem - a probabilidade de um ponto de treinamento individual ser incluído em um minilote (batch_size/number_of_examples
). -
noise_multiplier
: Um float que controla a quantidade de ruído adicionado durante o treinamento. Geralmente, mais ruído resulta em melhor privacidade e menor utilidade. -
steps
: o número de etapas globais realizadas.
Uma descrição detalhada da teoria por trás do cálculo de épsilon e delta está disponível em Differential Privacy of the Sampled Gaussian Mechanism .