機械学習におけるプライバシー
責任ある AI の使用において重要なことは、潜在的な機密情報、たとえば、トレーニング データセットに含まれるユーザー属性情報など、ユーザーを特定できるような情報が ML モデルから漏えいしないようにすることです。これを実現する一つの方法として、機械学習における標準的な確率的勾配降下法(SGD)アルゴリズムを改良したものである、差分プライバシー確率的勾配降下法(DP-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 Privacy
Tensorflow Privacy(TF Privacy)は、Google Research のチームによって開発されたオープンソース ライブラリです。このライブラリには、DP を使って ML モデルをトレーニングするための一般的な TensorFlow オプティマイザーの実装が含まれています。このライブラリの目的は、標準的な TensorFlow API を使用する ML の実務担当者が、わずか数行のコード変更でプライバシー保護モデルをトレーニングできるようにすることです。
差分プライベート オプティマイザーは、オプティマイザー クラスを使用する高レベル API(特に Keras)と組み合わせて使用できます。さらに、一部の Keras モデルでは、差分プライベート実装もあります。すべてのオプティマイザーとモデルは、API ドキュメントに記載されています。