Prywatność w uczeniu maszynowym

Ważnym aspektem odpowiedzialnego korzystania z sztucznej inteligencji jest zapewnienie, że modele ML nie mogą ujawniać potencjalnie wrażliwych informacji, takich jak dane demograficzne lub inne atrybuty w zestawie danych szkoleniowych, które można wykorzystać do identyfikacji osób. Jednym ze sposobów na osiągnięcie tego jest użycie zróżnicowanego prywatnego stochastycznego zejścia gradientowego (DP-SGD), który jest modyfikacją standardowego algorytmu stochastycznego zejścia gradientowego (SGD) w uczeniu maszynowym.

Modele wytrenowane za pomocą DP-SGD mają wymierne ulepszenia prywatności różnicowej (DP), co pomaga zmniejszyć ryzyko ujawnienia poufnych danych szkoleniowych. Ponieważ celem DP jest zapobieganie identyfikowaniu poszczególnych punktów danych, na model wytrenowany za pomocą DP nie powinien mieć wpływu żaden pojedynczy przykład uczący w jego zestawie danych uczących. Techniki DP-SGD mogą być również używane w sfederowanym uczeniu się, aby zapewnić prywatność różnicową na poziomie użytkownika. Możesz dowiedzieć się więcej o zróżnicowanym prywatnym uczeniu głębokim z oryginalnego artykułu .

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)
  

Prywatność TensorFlow

Tensorflow Privacy (TF Privacy) to biblioteka typu open source opracowana przez zespoły Google Research. Biblioteka zawiera implementacje powszechnie używanych Optymalizatorów TensorFlow do uczenia modeli ML z DP. Celem jest umożliwienie praktykom ML korzystającym ze standardowych interfejsów API Tensorflow do trenowania modeli chroniących prywatność poprzez zmianę tylko kilku linijek kodu.

Optymalizatory prywatnie różnicowo mogą być używane w połączeniu z interfejsami API wysokiego poziomu, które używają klasy Optimizer, zwłaszcza Keras. Dodatkowo można znaleźć implementacje różniące się prywatnością niektórych modeli Keras. Wszystkie optymalizatory i modele można znaleźć w dokumentacji API .