Privacidade no aprendizado de máquina

Um aspecto importante do uso responsável da IA ​​é garantir que os modelos de ML sejam impedidos de expor informações potencialmente confidenciais, como informações demográficas ou outros atributos no conjunto de dados de treinamento que podem ser usados ​​para identificar pessoas. Uma maneira de conseguir isso é usando o gradiente descendente estocástico diferencialmente privado (DP-SGD), que é uma modificação do algoritmo SGD (gradiente descendente estocástico) padrão no aprendizado de máquina.

Os modelos treinados com DP-SGD têm melhorias mensuráveis ​​de privacidade diferencial (DP), o que ajuda a mitigar o risco de exposição de dados de treinamento confidenciais. Como o objetivo do DP é ajudar a evitar que pontos de dados individuais sejam identificados, um modelo treinado com DP não deve ser afetado por nenhum exemplo de treinamento único em seu conjunto de dados de treinamento. As técnicas DP-SGD também podem ser usadas no aprendizado federado para fornecer privacidade diferencial no nível do usuário. Você pode aprender mais sobre aprendizado profundo diferencialmente privado no artigo original .

import tensorflow as tf
from tensorflow_privacy.privacy.optimizers import dp_optimizer_keras

# Select your differentially private optimizer
optimizer = tensorflow_privacy.DPKerasSGDOptimizer(
    l2_norm_clip=l2_norm_clip,
    noise_multiplier=noise_multiplier,
    num_microbatches=num_microbatches,
    learning_rate=learning_rate)

# Select your loss function
loss = tf.keras.losses.CategoricalCrossentropy(
    from_logits=True, reduction=tf.losses.Reduction.NONE)

# Compile your model
model.compile(optimizer=optimizer, loss=loss, metrics=['accuracy'])

# Fit your model
model.fit(train_data, train_labels,
  epochs=epochs,
  validation_data=(test_data, test_labels),
  batch_size=batch_size)
  

Privacidade do TensorFlow

O Tensorflow Privacy (TF Privacy) é uma biblioteca de código aberto desenvolvida por equipes do Google Research. A biblioteca inclui implementações de otimizadores TensorFlow comumente usados ​​para treinar modelos de ML com DP. O objetivo é permitir que os profissionais de ML que usam APIs padrão do Tensorflow treinem modelos de preservação de privacidade alterando apenas algumas linhas de código.

Os otimizadores diferencialmente privados podem ser usados ​​em conjunto com APIs de alto nível que usam a classe Optimizer, especialmente Keras. Além disso, você pode encontrar implementações privadas diferenciadas de alguns modelos Keras. Todos os Otimizadores e modelos podem ser encontrados na Documentação da API .