機器學習過程中的隱私權

為了確保以負責任的態度使用 AI,您應避免機器學習模型洩漏可能的機密資訊,例如可用來辨識身分的客層資訊或訓練資料集中的其他屬性。如要達成這個目標,可使用機器學習中標準隨機梯度下降 (SGD) 演算法的修改版本,也就是差異化隱私隨機梯度下降 (DP-SGD) 演算法。

使用 DP-SGD 來訓練的模型提供經過改善的可量化差異化隱私 (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 Privacy

Tensorflow Privacy (TF Privacy) 是由 Google 研究內部的團隊開發的開放原始碼程式庫。這個程式庫包括常用 TensorFlow 最佳化器的導入方式,以透過 DP 訓練機器學習模型。其目標是讓機器學習從業人員使用標準 Tensorflow API,只要修改幾行程式碼就能訓練隱私權保護模型。

具備不同隱私性設定的最佳化器可與採用 Optimizer 類別的高層級 API 合併使用,特別是 Keras。此外,您也可以在部分 Keras 模型中發現具備不同隱私性設定的導入。API 說明文件列出了所有最佳化器和模型。