1
0

メンバーシップ推定攻撃対策(MemGuard・概要編)

Posted at

はじめに

メンバーシップ推定攻撃の対策手法であるMemGuardの概要を紹介します。

MemGuard

基本的な考え方

モデルの出力にノイズを加えることで、メンバーシップ推定攻撃をしにくくする防御手法です。
ノイズは、メンバーシップ推定攻撃の成功確率を最小化するように生成しますが、下記条件を満たす必要があります。

  1. ノイズによって予測ラベルが変更されない
  2. ノイズの大きさの期待値が事前に決められた閾値以下
  3. ノイズを加えた後の出力が、確率の条件を満たす(各要素が正かつ総和が1)

実装上の工夫

上記の条件を満たすノイズを効率的に作成するために、2段階の手法として、MemGuardは実装されています。
一段階目のPhase Iでは、ノイズの大きさに関する条件(条件2)を考慮せずにノイズを作成し、Phase IIで条件を満たすようにノイズを加えるかの判断を行います。

Phase I

元の最適化問題との違いは下記の点になります。

  • softmax後の出力ではなく、その前のlogitにノイズを加える。
    そうすることで、出力が確率の条件を満たすか(条件3)を考慮しなくて済みます。
  • ノイズの大きさを最小化する問題に置き換える。
    その代わりに、防御の強さに関する条件として、ノイズ付加後のメンバーシップ推定攻撃のinとoutの予測確率を等しくなるようにする。

整理すると、下記3つの損失の重みづけ和を最小化します。
L1:メンバーシップ推定攻撃の攻撃モデルのlogitのL1ノルム(防御の強さの条件)
L2:元の予測クラスのlogitをその他のクラスのlogitが超える場合は、それらの差(条件1)
L3:ノイズの大きさ

全体の損失を、L=L1+c2×L2+c3×L3 として、最小となるノイズを求めます。
ここで、c2、c3は事前に設定したパラメータです。
また、条件を満たすノイズが見つからない場合は、ノイズは 0 とします。

Phase II

Phase Iで求めたノイズは、大きさの条件を考慮していないため、ノイズの大きさの期待値が閾値以下になるように調整します。

まず、ノイズを加えた時に、メンバーシップ推定攻撃の成功率を下げられない場合は、ノイズを付加しません。
それ以外の場合は、閾値をε、ノイズの大きさをdとすると、確率 min(ε/d,1) でノイズを付加します。
この結果、付加するノイズの大きさの期待値をε以下にすることができます。

パラメータc3の探索

Phase Iのパラメータc3は、ノイズの大きさと防御の強さを調整するパラメータです。
大きすぎると十分な防御にならず、小さすぎるとノイズが大きくなりすぎます。
効果的に防御するためには、適切にc3を決定する必要があります。

そこで、サンプルごとにc3を最適化します。
まず、小さい値を用いてノイズを作成し、2つの条件を満たすか確認します。

  • ノイズによって予測ラベルが変更されない
  • 十分強い防御になっている(ノイズの有無でメンバーシップ推定攻撃の予測が変わる)

条件を満たす場合は、c3を10倍して、再度ノイズの最適化を行います。
これを繰り返すことで、条件を満たすノイズのうち、c3が最大(つまり、ノイズが最も小さい)ものを採用します。

参考資料

  • R. Shokri et al., Membership Inference Attacks Against Machine Learning Models, IEEE S&P, 2017
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0