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

はじめに

メンバーシップ推定攻撃の対策手法である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

この記事が気に入ったらサポートをしてみませんか?