Конфиденциальность в машинном обучении
Важным аспектом ответственного использования ИИ является обеспечение того, чтобы модели машинного обучения не раскрывали потенциально конфиденциальную информацию, такую как демографические данные или другие атрибуты в наборе обучающих данных, которые можно использовать для идентификации людей. Один из способов добиться этого — использовать дифференциально частный стохастический градиентный спуск (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 .