Privacidad en el aprendizaje automático

Un aspecto importante del uso responsable de la IA es garantizar que los modelos de ML no expongan información potencialmente confidencial, como información demográfica u otros atributos en el conjunto de datos de entrenamiento que podrían usarse para identificar personas. Una forma de lograr esto es mediante el uso de descenso de gradiente estocástico diferencialmente privado (DP-SGD), que es una modificación del algoritmo de descenso de gradiente estocástico estándar (SGD) en el aprendizaje automático.

Los modelos entrenados con DP-SGD tienen mejoras medibles de privacidad diferencial (DP), lo que ayuda a mitigar el riesgo de exponer datos de entrenamiento confidenciales. Dado que el propósito de DP es ayudar a evitar que se identifiquen puntos de datos individuales, un modelo entrenado con DP no debería verse afectado por ningún ejemplo de entrenamiento único en su conjunto de datos de entrenamiento. Las técnicas DP-SGD también se pueden utilizar en el aprendizaje federado para proporcionar privacidad diferencial a nivel de usuario. Puede obtener más información sobre el aprendizaje profundo diferencialmente privado en el artículo 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)
  

Privacidad de TensorFlow

Tensorflow Privacy (TF Privacy) es una biblioteca de código abierto desarrollada por equipos en Google Research. La biblioteca incluye implementaciones de TensorFlow Optimizers de uso común para entrenar modelos ML con DP. El objetivo es permitir que los profesionales de ML utilicen las API estándar de Tensorflow para entrenar modelos que preserven la privacidad cambiando solo unas pocas líneas de código.

Los optimizadores diferencialmente privados se pueden usar junto con API de alto nivel que usan la clase Optimizer, especialmente Keras. Además, puede encontrar implementaciones privadas diferenciales de algunos modelos de Keras. Todos los optimizadores y modelos se pueden encontrar en la documentación de la API .