Dzień Społeczności ML jest 9 listopada! Dołącz do nas na aktualizacje z TensorFlow Jax i więcej Dowiedz się więcej

Prywatność w uczeniu maszynowym

Ważnym aspektem odpowiedzialnego korzystania z sztucznej inteligencji jest zapewnienie, że modele ML nie będą ujawniać potencjalnie wrażliwych informacji, takich jak dane demograficzne lub inne atrybuty w zbiorze danych szkoleniowych, które można wykorzystać do identyfikacji osób. Jednym ze sposobów osiągnięcia tego celu jest zastosowanie 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, model wytrenowany za pomocą DP nie powinien mieć wpływu na żaden pojedynczy przykład uczący w 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 różnie prywatnej głębokiego uczenia się w oryginalnym papierze .

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 optymalizatorów i modeli można znaleźć w dokumentacji API .