概要
ブラックボックス設定で(DNNベースの)分類器の学習データを推論する攻撃手法。
その名も「Membership Inference Attacks(メンバーシップ推論攻撃)」。
攻撃対象の分類器(以下、標的分類器)に正常な入力データを与え、標的分類器から応答された分類結果を観察することで、入力したデータが分類器の学習データに含まれているか否か(=メンバーシップか否か)を特定することができる。仮に、顔情報やライフスタイルに関する情報といった高度なプライバシー情報を学習した分類器に対してメンバーシップ推論攻撃が行われた場合、プライバシー侵害が発生することになる。一例として、近年プライバシーや自由の侵害などを理由に反対意見が増加している「顔認識技術を含む集団監視システム」のメンバーシップが推論された場合、匿名を条件に顔画像などを提供した人物に不利益が生じることになるだろう。筆者の知る限り、2016年頃から同種の攻撃手法は知られているが、医療データや顔画像・音声などを学習した分類器が登場してきた近年、改めて注目が集まっていると考える。
- メンバーシップ推論攻撃の概要

上図は、メンバーシップ推論攻撃の概要を表している。
一般的に分類器は、学習データに含まれるデータ、すなわち、メンバーシップ・データの応答時に返される信頼スコア(probability vector)の偏りが大きくなる傾向があり、特に過学習した分類器ほど傾向は顕著になる。そこで、任意のデータ(Sample data)を標的分類器に入力し、応答された信頼スコアを観察することで、任意のデータが標的分類器のメンバーシップか否かを判定する。これがメンバーシップ推論攻撃のメカニズムである。
本手法は、悪意のある者が標的分類器の内部構造を知らない状態(以下、ブラックボックス)でも攻撃できるため実用性が高く、現実的な脅威になる可能性がある。
論文情報
公開日
2018-11-10
著者情報
Lucas Tindall
- LAB41
論文情報・リンク
https://gab41.lab41.org/membership-inference-attacks-on-neural-networks-c9dee3db67da
新規性・差分
既知の攻撃手法であるため、新規性・差分はない。
手法
筆者らが実際に検証した結果を基に、攻撃の手順と対策を解説する。
注意 |
---|
本ブログの内容は、攻撃の危険性と対策を理解していただくことを目的に書かれている。本ブログの内容を検証する場合は、必ずご自身の管理下にあるシステムにて、ご自身の責任の下で実行すること。許可を得ずに第三者のシステムで実行した場合、法律により罰せられる可能性があることに注意されたい。 |
検証のゴール
検証用に作成した標的分類器の挙動を観察することで、標的分類器の学習データを特定することをゴールとする。
以下の流れで検証を行う。
- 検証の流れ

- 任意のデータ(Sample data)を標的分類器(Target network)に入力。
- 標的分類器が応答する信頼スコア(probability vector)を取得。
- 信頼スコアを攻撃モデル(Attack network)に入力。
- 攻撃モデルの出力から任意のデータがメンバーシップか否かを判定(Binary membership prediction)。
ここでポイントになるのは、攻撃モデルである。
攻撃モデルは標的分類器が出力する信頼スコアを入力に取り、0~1の範囲内の値を出力する単純な分類器である。攻撃モデルの出力値は任意のデータがメンバーシップである確率を表しており、1に近いほどメンバーシップである可能性が高いことを意味する(0に近いほどメンバーシップの可能性が低い)。例えば、任意のデータを標的分類器に入力して得られた信頼スコアを攻撃モデルに入力し、その出力が「0.98」となった場合、「任意のデータは98%の確率で(標的分類器の)メンバーシップである」と判断する。
ところで、攻撃モデルは(標的分類器が出力する)信頼スコアを2値分類(メンバーシップであるか否か)する分類器と見なすことができる。
当然ながら、攻撃モデルを作成するためには、以下のような学習データを用意する必要がある。
データ(標的分類器の信頼スコア) | ラベル(メンバーシップである:1、メンバーシップではない:0) |
---|---|
0.76, 0.03, 0.04, …snip… , 0.02, 0.05, 0.01 | 1 |
0.01, 0.07, 0.01, …snip… , 0.82, 0.03, 0.02 | 1 |
0.01, 0.01, 0.90, …snip… , 0.01, 0.01, 0.01 | 1 |
0.12, 0.34, 0.07, …snip… , 0.08, 0.13, 0.10 | 0 |
0.10, 0.18, 0.02, …snip… , 0.03, 0.10, 0.54 | 0 |
0.23, 0.09, 0.11, …snip… , 0.01, 0.46, 0.03 | 0 |
「データ」が標的分類器が出力する信頼スコア、「ラベル」がメンバーシップか否かを表す値である。
この学習データを作成するためには、標的分類器が「学習したデータ」と「学習していないデータ」を知る必要がある。しかし、ブラックボックスな攻撃では、悪意のある者はそれらを知る由がない(そもそも、知っていたら攻撃する必要はない)。そこで、悪意のある者は、標的分類器を模したシャドウモデルを手元に作成し、これを使用して攻撃モデルの学習データを作成する(シャドウモデルについては、過去ブログを参照のこと)。
シャドウモデルを使用して攻撃モデルを作成するイメージを以下に示す。
- 攻撃モデルの学習プロセス

あらかじめ、悪意のある者は標的分類器の学習データ分布をある程度予測し、近しい学習データを用意する。そして、用意したデータをシャドウモデルの学習に使用するデータ(In training set)と、学習に使用しないデータ(Out of training set)に分割しておく。その上で、学習データのみを用いてシャドウモデル(Shadow network)を学習・作成する。
次に、学習データ(In training set)と学習データ以外のデータ(Out of training set)をシャドウモデルに入力し、それぞれの信頼スコア(Probability vector)を取得する。この時、学習データに対応する信頼スコアには「1」(=メンバーシップである)、学習データ以外のデータに対応する信頼スコアには「0」(=メンバーシップではない)をラベリングして攻撃モデルの学習データを作成する。
データ(シャドウモデルの信頼スコア) | ラベル(1:In training set, 0:Out of training set) |
---|---|
0.90, 0.01, 0.01, …snip… , 0.01, 0.01, 0.01 | 1 |
0.02, 0.03, 0.82, …snip… , 0.01, 0.07, 0.01 | 1 |
0.02, 0.01, 0.05, …snip… , 0.76, 0.04, 0.03 | 1 |
0.13, 0.07, 0.34, …snip… , 0.10, 0.12, 0.08 | 0 |
0.03, 0.02, 0.18, …snip… , 0.10, 0.54, 0.10 | 0 |
0.03, 0.01, 0.11, …snip… , 0.09, 0.23, 0.46 | 0 |
そして、この学習データを用いて攻撃モデルを学習・作成する。
このように、標的分類器が手元にない場合でも、シャドウモデルを利用することで攻撃モデルを作成することが可能となる。
本検証では、以下の分類器とデータセットを使用して検証を進めていく。
分類器
本検証では3つの分類器を作成する。
分類器名 | 用途 |
---|---|
標的分類器 | 攻撃対象とする分類器。 |
シャドウモデル | 標的分類器を模したモデル。攻撃モデルの学習に使用する。 |
攻撃モデル | メンバーシップ推論を実行するモデル。信頼スコアを2値分類(In training set/Out of training set)する。 |
データセット
本検証では、CIFAR10を使用する。
CIFAR10にはairplane~truckまでの10クラスのデータが含まれている。
- CIFAR10

CIFAR10には32×32ピクセルのカラー画像が60,000枚含まれている。
本検証では、CIFAR10を以下のように分割して使用する。
カテゴリ | データ数 | 用途 |
---|---|---|
学習データ | 50,000 | 標的分類器、シャドウモデルの学習に使用。 |
テストデータ | 10,000 | 分類器の学習時のValidationデータに使用。 |
50,000枚の学習データは、分類器の学習やテストなどの目的に応じて以下のように分割する。
カテゴリ | データ数 | 用途 |
---|---|---|
Target-In | 12,500 | 標的分類器の学習とメンバーシップ推論のテストに使用。 |
Target-Out | 12,500 | メンバーシップ推論のテストに使用。 |
Shadow-In | 12,500 | シャドウモデルの学習と攻撃モデルの学習データ作成に使用。 |
Shadow-Out | 12,500 | 攻撃モデルの学習データ作成に使用。 |
標的分類器の作成
12,500枚の「Target-In」データを使用し、標的分類器を作成する。
なお、本検証では、アーキテクチャの違いによるメンバーシップ推論攻撃の精度を検証するため、5種類のアーキテクチャで標的分類器を作成する。
標的分類器のアーキテクチャ |
---|
ResNet20 |
ResNet32 |
ResNet44 |
ResNet56 |
ResNet110 |
シャドウモデルの作成
12,500枚の「Shadow-In」データを使用し、シャドウモデルを作成する。
標的分類器と同様に、アーキテクチャの違いによるメンバーシップ推論攻撃の精度を検証するため、5種類のアーキテクチャでシャドウモデルを作成する。
シャドウモデルのアーキテクチャ |
---|
ResNet20 |
ResNet32 |
ResNet44 |
ResNet56 |
ResNet110 |
攻撃モデルの作成
作成したシャドウモデルを使用し、攻撃モデルの学習データを作成する。
以下に攻撃モデルの学習データを作成するイメージを示す。

12,500枚のShadow-In(シャドウモデルの学習に使用したデータ)と、12,500枚のShadow-Out(シャドウモデルの学習に使用していないデータ)を使用する。先ず、Shadow-Inをシャドウモデルに入力し、応答された信頼スコア(Probability vector)に「1(In training set)」をラベリングする。次に、Shadow-Outをシャドウモデルに入力し、応答された信頼スコアに「0(Out of training set)」をラベリングする。これを全量のShadow-In, Shadow-Outに対して行い、攻撃モデルの学習データを作成する。
こうして得られた学習データを使用し、攻撃モデルを学習・作成する。
なお、本検証では、攻撃モデルのアーキテクチャを以下のように定義する。
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) (None, 10) 0
_________________________________________________________________
dense (Dense) (None, 16) 176
_________________________________________________________________
dense_1 (Dense) (None, 16) 272
_________________________________________________________________
dense_2 (Dense) (None, 1) 17
=================================================================
Total params: 465
Trainable params: 465
Non-trainable params: 0
_________________________________________________________________
攻撃モデルはシャドウモデルが応答する信頼スコア(10次元ベクトル=CIFAR10のクラス数)を入力に取り、0~1の範囲内の値を出力するシンプルなモデルである。なお、出力層の活性化関数にはシグモイド関数を使用している。
結果
本検証では、以下の流れでメンバーシップ推論攻撃の検証を行う。

1. メンバーシップであるTarget-In(12,500枚)と、メンバーシップではないTarget-Out(12,500枚)を標的分類器(Target network)に入力。
2. 標的分類器が出力した信頼スコア(probability vector)を攻撃モデル(Attack network)に入力。
3. 攻撃モデルの出力から、標的分類器への入力データがメンバーシップか否かを判定。
本検証では、Target-Inの信頼スコアに対する攻撃モデルの出力が1に近似し、Target-Outの信頼スコアに対する攻撃モデルの出力が0に近似すれば、メンバーシップ推論攻撃は成功したと見なす。
以下に結果を示す。
ResNet20 | ResNet32 | ResNet44 | ResNet56 | ResNet110 | |
---|---|---|---|---|---|
ResNet20 | 0.7998 (0.4374) | 0.7478 (0.6612) | 0.7016 (1.0757) | 0.7411 (0.6817) | 0.7905 (0.4466) |
ResNet32 | 0.7479 (0.4819) | 0.7706 (0.4557) | 0.7532 (0.4881) | 0.7547 (0.4804) | 0.7294 (0.5043) |
ResNet44 | 0.7851 (0.4571) | 0.7700 (0.4865) | 0.7384 (0.5837) | 0.7661 (0.4956) | 0.7674 (0.4764) |
ResNet56 | 0.7576 (0.4697) | 0.7762 (0.4525) | 0.7528 (0.5084) | 0.7594 (0.4771) | 0.7386 (0.4953) |
ResNet110 | 0.8014 (0.4415) | 0.7343 (0.6425) | 0.6922 (0.9486) | 0.7316 (0.6609) | 0.7950 (0.4516) |
本検証は、標的分類器と(攻撃モデルの学習データ作成に使用した)シャドウモデルの各アーキテクチャの全組み合わせで検証を行っており、上表の横軸は標的分類器のアーキテクチャ、縦軸がシャドウモデルのアーキテクチャである。
最も攻撃成功率が高い組み合わせは、標的分類器がResNet20、シャドウモデルがResNet110の場合の「0.8014」である。これは、メンバーシップ推論攻撃の精度が約80%であることを表している。視覚的に結果を確認するため、Target-InとTarget-Outからランダムに抽出した25個のデータに対するメンバーシップ推論の結果を示す。

各画像のキャプションの数字は「攻撃モデルの出力を確率に変換した値」であり、
- 確率値が「0~49%」の場合はメンバーシップではない
- 確率値が「51~100%」の場合はメンバーシップである
と攻撃モデルが判断したことを表す(50%は判断不能)。
一方、下段の文字列は、当該画像の実際のクラスを表しており、Target-Inはメンバーシップ、Target-Outはメンバーシップではないことを表す。なお、確率値が「0.00%」になっている画像が散見されるが、これは図示の都合上小数第三位以降は表示を省略したためであり、完全に0%ではないことに注意されたい。
上図を見ると、25個中20個はメンバーシップ推論に成功していることが分かる(成功率は約80%)。
このことは、上表の攻撃成功率「0.8014」とほぼ一致している。
この結果から、シャドウモデルと攻撃モデルを使用することで、ブラックボックス設定で標的分類器のメンバーシップ推論が行えることが確認できた。本検証における約80%の攻撃精度は決して高いとは言えないが、仮に標的分類器が機微のデータを学習していた場合、10回中8回の攻撃成功は現実的な脅威になり得ると考えられる。
議論
ここでは、メンバーシップ推論攻撃の対策を議論する。
本検証の結果に基づくと、対策として以下が考えられる。
- 信頼スコアを応答しない。
- 過学習を抑制する。
- 信頼スコアを丸めて応答する。
- 学習データをマスキングする。
信頼スコアを応答しない
繰り返しになるが、メンバーシップ推論攻撃は「標的分類器が応答する信頼スコアを攻撃モデルに入力し、メンバーシップか否かを判定」する手法である。よって、判定の拠り所となる信頼スコアは応答せずに分類結果のみ応答することで、メンバーシップ推論を不能にすることができると考えられる。
しかし、分類器の要件の都合上、信頼スコアを応答せざるを得ない場合もある。
この場合は、以下の対策で攻撃の緩和を試みる。
過学習を抑制する
メンバーシップ推論は、メンバーシップか否かによって信頼スコアに偏りが生じることを拠り所としている。それゆえ、学習データを過学習したモデルほど信頼スコアの偏りが大きくなり、メンバーシップ推論攻撃に対して脆弱になることを上述した。
そこで、過学習を抑制することで、メンバーシップ推論の影響を緩和できるのか確認する。
具体的には、標的分類器の構築時にDropoutを適用し、過学習の抑制を試みる。
以下、Dropoutを適用した標的分類器を用いて再検証した結果を示す。
なお、横軸は標的分類器(ResNet 20)縦軸はシャドウモデルの各アーキテクチャを表している。
ResNet20 | |
---|---|
ResNet20 | 0.5150 (6.8985) |
ResNet32 | 0.5476 (2.7789) |
ResNet44 | 0.5260 (4.1521) |
ResNet56 | 0.5406 (2.6475) |
ResNet110 | 0.5126 (4.9235) |
最も攻撃成功率が高い場合でも「0.5476(約55%)」であり、対策前の約80%と比較すると大幅に推論精度を落とすことができたことが分かる。
視覚的に結果を確認するため、Target-InとTarget-Outからランダムに抽出した25個のデータに対するメンバーシップ推論の結果を示す。

上図を見ると、25個中13個はメンバーシップ推論に失敗しており(成功率は約50%)、上表の攻撃成功率とほぼ一致していることが分かる。この結果は、過学習を抑制した標的分類器では「2回に1回」メンバーシップ推論に失敗することを表しており、実質的にメンバーシップ推論攻撃を行うことができないことを意味する。
その他の対策としては、信頼スコアの精度を丸める(0.96345353126525878906 -> 0.9)ことでメンバーシップ推論攻撃の影響を緩和させる試みや、学習データに含まれる機微情報をマスキングするなどの対策も有効であると考えられる。
本検証で示したように、標的分類器から必要以上の情報を応答しないことや、過学習を抑制するといった当たり前の対策でメンバーシップ推論攻撃の影響を大幅に緩和できることが分かった。近年、機械学習のデータプライバシーに関心が高まっていることを念頭に置き、学習データの保護には細心の注意を払う必要があるだろう。
以上