La confidentialité dans le machine learning

Pour une utilisation responsable de l'IA, il est important de s'assurer que les modèles de ML ne puissent pas divulguer d'informations potentiellement sensibles, comme des données démographiques ou d'autres attributs de l'ensemble de données d'entraînement pouvant être utilisés pour identifier des personnes. Pour cela, l'une des méthodes consiste à utiliser une descente de gradient stochastique à confidentialité différentielle (DP-SGD). Il s'agit d'une variante de l'algorithme de descente de gradient stochastique standard (SGD) en machine learning.

Les modèles entraînés avec DP-SGD montrent des améliorations mesurables en termes de confidentialité différentielle (DP), ce qui permet de limiter le risque d'exposition de données d'entraînement sensibles. Étant donné que le but de DP est de contribuer à empêcher l'identification de points de données individuels, un modèle entraîné avec DP ne devrait être affecté par aucun exemple d'entraînement dans son ensemble de données d'entraînement. Les techniques DP-SGD peuvent aussi servir dans l'apprentissage fédéré, pour fournir une confidentialité différentielle au niveau de l'utilisateur. Pour en savoir plus sur le deep learning avec confidentialité différentielle, consultez l'article d'origine.

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)
  

TensorFlow Privacy

Tensorflow Privacy (TF Privacy) est une bibliothèque Open Source développée par les équipes de Google Research. Elle inclut des implémentations d'optimiseurs couramment utilisés de TensorFlow pour entraîner les modèles de ML avec DP. Le but est que les professionnels du ML puissent utiliser les API Tensorflow standards pour entraîner des modèles respectueux de la confidentialité des données en ne modifiant que quelques lignes de code.

Les optimiseurs à confidentialité différentielle peuvent être employés conjointement avec les API de haut niveau utilisant la classe Optimizer, en particulier Keras. Vous trouverez également des implémentations à confidentialité différentielle pour certains modèles Keras. Vous trouverez tous les optimiseurs et les modèles dans la documentation sur les API.