概要
敵対的攻撃を応用し、モデルの精度を向上させるAssistive Signalsという摂動を提案。
Physical world assistive signals for deep neural network classifiers -- neither defense nor attack
敵対的攻撃
DNNは敵対的摂動と呼ばれる小さなノイズによって簡単に騙されることがわかっています。
敵対的攻撃は、具体的には、以下のような最適化問題を解くことで敵対的摂動を生成します。
$$\underset{\delta\in S}{max}\ L(\theta,x+\delta,y)$$
$\delta$が求めるノイズ、$x$が入力データ、$y$が入力データに対応する正解ラベル、$L$が損失関数。
攻撃者は正しいラベルに分類した時に損失が大きくなるような$\delta$(ノイズ)を求めます。
Assistive Signals
では逆に、次のような最適化問題を解くとどうなるか。
$$\underset{\delta\in S}{min}\ L(\theta,x+\delta,y)$$
この最適化問題の意味としては、「正解ラベル$y$に対する損失関数$L$の値が最小になるような$\delta$を求める」となります。すなわち、モデルが正しく分類しやすくなるような$\delta$(ノイズ)を求める事になります。この$\delta$をAssistive Signalsと呼びます。
注意点
Assistive Signalsは、入力データが正しく分類されるようなノイズを乗せるため、分類前からその入力データの正しいクラスが分かっている必要があります。そのため、未知のデータというものを用意することができません。
利用場面
物体検出をしたい時、その物体全体に対してノイズを張り巡らせることは現実的ではありません。そこで著者らは、パッチと呼ばれる小領域に対してのみノイズを加えることを提案しています。このようにすることで、シールのようなものでノイズを再現することができます。
実験
気になった点があったので、実験(検証)してみました。
疑問点「Assistive Signalsで学習したモデルはどう変わるのか」
方法
標的型攻撃としてのFGSMを利用して、各入力画像に対して、それぞれの正解ラベルに対する損失を小さくするような摂動を生成しました。この摂動をAssistive Signalsとします。また、クリーン画像のみで学習したモデルを基にAssistive Signalsを生成しました。
画像データセット:Fashion MNIST
eps = 0.10
各trainデータは60000枚、各testデータは10000枚。
ソースコード
結果
「クリーン画像のみで学習したモデル」をモデルA
「Assistive Signals入りの画像のみで学習したモデル」をモデルB
「Assistive Signals入り画像とクリーン画像を5:5で学習したモデル」をモデルC
とします。
以下の表の数値は各Accuracyの値です。
Input imgs | モデルA | モデルB | モデルC |
---|---|---|---|
assisitive train | N/A | 0.9935 | 0.9930 |
clean test | 0.8765 | 0.4291 | 0.8626 |
assistive test | 0.9447 | 0.8995 | 0.9943 |
attacked test | 0.1588 | 0.303 | 0.1412 |
Assitive Signals入りの画像で学習させると精度が下がりました。
また、確かにAssistive Signalsを含む画像に対するaccuracyはcleanに比べて高かったです。
ちなみに、今回Assistive Signalsを生成するのにartのFGSMを使いましたが、仕様上Classifierの精度が高いことを前提として摂動を生成しているので、モデルBの攻撃成功率が低いのは当然です。
追加実験
Assistive Signals入りの画像は「正解ラベルに誘導するようなノイズの入った画像」と言えます。つまり、そのノイズ自体に画像を識別するような特徴量が含まれていると考えられます。
そこで、「Assistive Signals入りの画像が識別に必要な特徴量を含んでいるなら、少数のデータでも十分な精度を得られるのではないか」と考えました。
方法
いざ実験です。trainデータを上の実験の半分である30000枚にします。そして、clean trainだけで学習したモデル(A')と、assistive trainだけで学習したモデル(B')を比較してみます。
ソースコード
Google Colaboratory(上と同じ)
結果
以下の表の数値は各Accuracyの値です。
Input imgs | モデルA' | モデルB' |
---|---|---|
train | 0.8345 | 0.9762 |
clean test | 0.8182 | 0.4441 |
そう上手くはいきませんでした。むしろ下がってしまいました。ただ、trainに対してはすごい精度です。
この結果と上の実験のモデルB・Cの結果から、Assistive Signals入り画像を教師データとした学習はよろしくないことがわかりました。おそらく、モデルが獲得する特徴量が限定的になってしまうのがAccuracyの低下につながっているのではないかと考えます。過学習にもなりやすそうですね。