Конфиденциальность в машинном обучении

Важным аспектом ответственного использования ИИ является обеспечение того, чтобы модели машинного обучения не раскрывали потенциально конфиденциальную информацию, такую ​​как демографические данные или другие атрибуты в наборе обучающих данных, которые можно использовать для идентификации людей. Один из способов добиться этого — использовать дифференциально частный стохастический градиентный спуск (DP-SGD), который является модификацией стандартного алгоритма стохастического градиентного спуска (SGD) в машинном обучении.

Модели, обученные с помощью DP-SGD, обладают измеримыми улучшениями дифференциальной конфиденциальности (DP), что помогает снизить риск раскрытия конфиденциальных обучающих данных. Поскольку цель DP состоит в том, чтобы помочь предотвратить идентификацию отдельных точек данных, на модель, обученную с помощью DP, не должен влиять ни один обучающий пример в ее наборе обучающих данных. Методы DP-SGD также могут использоваться в федеративном обучении для обеспечения дифференциальной конфиденциальности на уровне пользователя. Вы можете узнать больше о дифференциально-приватном глубоком обучении в оригинальной статье .

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

Tensorflow Privacy (TF Privacy) — это библиотека с открытым исходным кодом, разработанная командами Google Research. Библиотека включает в себя реализации часто используемых оптимизаторов TensorFlow для обучения моделей машинного обучения с помощью DP. Цель состоит в том, чтобы позволить специалистам по машинному обучению, использующим стандартные API-интерфейсы Tensorflow, обучать модели, сохраняющие конфиденциальность, путем изменения всего нескольких строк кода.

Дифференциально частные оптимизаторы можно использовать в сочетании с высокоуровневыми API, которые используют класс Optimizer, особенно Keras. Кроме того, вы можете найти дифференциально частные реализации некоторых моделей Keras. Все оптимизаторы и модели можно найти в документации по API .