プライバシーを測定する

差分プライバシーは、アルゴリズムによって提供されるプライバシー保証を測定するためのフレームワークであり、値ε(イプシロン)およびδ(デルタ)を使用して表すことができます。 2つのうち、εはより重要であり、ハイパーパラメータの選択に対してより敏感です。大まかに言えば、それらは次のことを意味します。

  • εは、単一のトレーニング例を含める(または削除する)ことによって、特定の出力の確率がどれだけ増加するかについての上限を示します。通常は、小さな定数(10未満、またはより厳格なプライバシー保証の場合は1未満)にする必要があります。ただし、これは上限にすぎず、イプシロンの値が大きい場合でも、実用的なプライバシーが良好であることを意味する場合があります。
  • δは、モデルの動作が任意に変化する確率を制限します。通常、ユーティリティを損なうことなく、これを非常に小さい数(1e-7程度)に設定できます。経験則では、トレーニングデータサイズの逆数よりも小さくなるように設定します。

トレーニングハイパーパラメータと(ε、δ)に関する結果のプライバシーとの関係は複雑であり、明示的に述べるのは難しいです。現在推奨されているアプローチは、[はじめに]ページの下部にあります。これには、妥当な有用性を維持しながら使用できる最大のノイズ乗数を見つけ、ノイズ乗数とマイクロバッチの数をスケーリングすることが含まれます。 TensorFlow Privacyは、ノイズ乗数σ、実行されたトレーニングステップの数、および各ステップで消費された入力データの割合に基づいて(ε、δ)を計算するツールcompute_dp_sgd_privacyを提供します。プライバシーの量は、ノイズ乗数σとともに増加し、トレーニングでデータが使用される回数が増えるほど減少します。一般に、最大10.0のイプシロンを達成するには、データセットのサイズとエポック数に応じて、ノイズ乗数を約0.3〜0.5に設定する必要があります。アプローチについては、分類プライバシーチュートリアルを参照してください。

詳細については、元のDP-SGDペーパーを参照してください。

compute_dp_sgd_privacyを使用して、モデルの固定デルタ値が与えられたイプシロンを見つけることができます[../tutorials/classification_privacy.ipynb]:

  • q :サンプリング比-個々のトレーニングポイントがミニバッチに含まれる確率( batch_size/number_of_examples )。
  • noise_multiplier :トレーニング中に追加されるノイズの量を制御するフロート。一般に、ノイズが多いほどプライバシーが向上し、ユーティリティが低下します。
  • steps :実行されたグローバルステップの数。

イプシロンとデルタの計算の背後にある理論の詳細な記述は、サンプリングされたガウスメカニズムの差分プライバシーで入手できます。