私の備忘録がないわね...私の...

画像処理とかプログラミングのお話。

DNNは簡単に騙せる

Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Imagesのまとめです。

概要

人間は認識できない(理解できない)けどDNNはあるクラスへと高い確信度で分類するような画像を進化アルゴリズムや勾配上昇法を用いて作成することができた。

f:id:kamakuraviel:20200618001932p:plain
図1. 99.6%以上の確信度であるクラスへ分類された画像

手法

DNN models

Caffeで提供されているILSVRC 2012 ImageNetで学習したAlexNetを用いており、これは42.6%のトップ1エラー率であった。今後これはImageNet DNNと呼ぶことにする。

またCaffeで提供されているMNISTで学習したLeNetを用いており、これは0.94%のエラー率であった。今後これはMNIST DNNと呼ぶことにする。

進化アルゴリズムによる画像の生成

f:id:kamakuraviel:20200618005146p:plain
図2. 普通の画像とAEsに対するモデルの振る舞い, AEs生成サイクル

進化的アルゴリズムにはMAP-Elitesを用いた。従来の手法(single-target evolution)でも試したがあまり変化はなかったので、計算効率の良いMAP-Elitesを用いている。

遺伝子型の表現には二つの異なる手法を用いた。

一つはDirect Encoding, もう一つはCPPN Encodingである。

Direct Encoding

Direct EncodingではMNISTのデータを28x28の配列で、ImageNetを256*256の配列で表現する。

ピクセル値はU(0, 255)で初期化され、また独立して突然変異する。各数値は10%の確率で突然変異し、1000世代繰り返す毎に半分ずつ減少する(10%->5%->...)。

突然変異はpolynomial mutation operator(mutation strength=15)で行われる。

CPPN Encoding

CPPN EncodingではCPPNを用いて遺伝子型を表現する。遺伝子型の各要素は画像の複数の部分に影響を与えるので、規則的なパターンが生み出される傾向にある。

CPPNについての補足

CPPNでエンコードされた画像は人間とDNN, どちらも認識できるようなものである。

以下の画像はPicBreeder.orgで作成された画像である。ここでは人間自身を適応関数としている(人が「これハエに近いな〜」みたいな感じで選んでいく)。上の枠の文字は人間が目指したクラスであり、その下の青の棒グラフはDNNの予測結果である。

f:id:kamakuraviel:20200618012555p:plain
図3. 人間を適応関数とした進化アルゴリズム

結果

Direct Encoding x MNIST

50世代以内に99.99%以上の確信度を出すような画像を生成できた。200世代後の確信度の中央値は99.99%以上であった。以下の画像では縦が各数字、行は初期値の異なる200世代後の画像である。

f:id:kamakuraviel:20200618013903p:plain
図4. Direct Encoding x MNIST

CPPN Encoding x MNIST

50世代以内に99.99%以上の確信度を出すような画像を生成できた。200世代後の確信度の中央値は99.99%以上であった。

興味深いことにある桁のクラスではその桁を表すようなパターンが存在する。

  • 1に分類された画像には縦のバー
  • 2に分類された画像には下半分に横のバー
  • 8は3をミラーリングすることでできるので、いくつかの共通の特徴を学習していそう。

f:id:kamakuraviel:20200618014338p:plain
図5. CPPN Encoding x MNIST

以下の画像は200世代後の50回の独立した試行である。

f:id:kamakuraviel:20200618201235p:plain
図S4. 行は独立の進化の結果、縦はクラス

Direct Encoding x ImageNet

MNIST DNNは小さなデータセットで学習されているため、過学習をしている可能性がある。この過学習によってモデルは騙されやすくなっているのではないか?この仮説を検証するためにImageNetでも同様の実験を行なった。出来た画像は図1参照。

f:id:kamakuraviel:20200618161341p:plain
図6. Direct Encoding x ImageNet

結果は上のようになった。横軸はクラス、縦軸は世代数、色は確信度(5回の独立した進化アルゴリズムの平均値を利用している)を表している。確信度はサイズ227×227の10枚のクロップ(中央1枚、角4枚、ミラー5枚)で平均化されている。これから分かる通り、ほとんどのクラスで上手くいかなかった。上手くいったクラス(99%以上の確信度を出せた画像は45クラス)では言われてみれば分かる程度の特徴が現れている。

CPPN Encoding x ImageNet

ほとんどのクラスで上手くいっている。図7の低パフォーマンスのクラス(クラス番号157-286)は犬と猫であり、これらはImageNetの中で多く存在しているクラスである。DNNはこれらの大量のデータにより過学習しにくくなり、結果騙しにくくなっていると考えられる。この仮説が正しければ、データセットを増やすことがAttackを防ぐ方法であるかも知れない。

別の解釈をすると、特定の犬の画像(柴犬)では高得点を出すが、他の特定の犬の画像(チワワ)では低得点を出すような画像を出すことが難しいということでもある。これらのことからAttackを防ぐためにはより多くのクラスを持つのがいいのかもしれない。

f:id:kamakuraviel:20200618163201p:plain
図7. CPPN Encoding x ImageNet

以下の画像のようになんとなく各クラスの特徴が現れている。

f:id:kamakuraviel:20200618163456p:plain
図8. CPPN Encoding x ImageNet

似たようなクラスでは似たような画像が生成されている。

  • Lizard classes
  • Toy dog classes
    • Japanese spaniel: 白黒の犬
    • Pekinese: 白いふわふわした犬
    • blemheim spaniel: 白茶の犬

f:id:kamakuraviel:20200618164046p:plain
図9. 似たようなクラスに見られる類似性

独立の進化毎に全く違う画像が生成されているので、クラスごとにDNNを騙す方法がいくつかあることを示唆している。

また以下の図のように繰り返し部分を取り除くと若干確信度が落ちた。

f:id:kamakuraviel:20200618165052p:plain
図10. 繰り返しの排除

これらの結果から、DNNはオブジェクトの大域的な構造よりも、低レベルや中レベルの特徴を学習する傾向があることが示唆された。もしDNNが大域構造を適切に学習していたとしたら、キツネの耳が何組も並んでいたり、リモコンのボタンが果てしなく並んでいたりと、自然の画像ではあまり見られないような繰り返しが含まれていた場合、DNNの信頼度スコアは低くなるはずである(図1)。

以下のように現実にありそうな画像に似ているものもできた。

f:id:kamakuraviel:20200618184559p:plain
図15. 現実にありそうな画像

初期化の異なる同じアーキテクチャに関するtransferability

初期化の異なる同じアーキテクチャDNN(A), (B)が存在している。Aで生成された画像はBも騙すことができるのか?

この実験ではMNISTモデルで300枚の画像、ImageNetモデルで1000枚の画像が生成され、使われた。

結果は以下のようになった。

  • Table S1 a: DNN(A)において高いスコアを出した画像をDNN(B)に入力すると、多くの画像において同様のtop-1が観測された。これは逆も同じである
  • Table S1 b: それらの画像のいくつかは99.99%以上の確信度をDNN(A), (B)の両方で出した。
  • Table S1 c: また両方のモデルで同じtop-1を与えた画像の中の92.18%以上がオリジナルのDNNにおいて高い確信度を出すことを発見した。

f:id:kamakuraviel:20200618190713p:plain
Table S1. 初期化の異なる同じアーキテクチャに関するtransferability

  • Top-1 matches: 同じtop-1を出した画像のパーセンテージ
  • Top-1 matches scoring 99%: 同じtop-1を出し、かつ確信度がどちらのモデルでも99%以上だった画像のパーセンテージ
  • Top-1 matches scoring higher: 同じtop-1を出した画像の中で、オリジナルのモデルの確信度の方がもう一つモデルによる確信度よりも高かった画像のパーセンテージ

MNISTに対する実験では9, 6, 2を表現するような画像が最も二つのモデルを騙すことに成功した。その上それらの画像は独特のパターンを持っていた。

以下の画像は両モデルで99.99%以上の確信度をだしたCPPN符号化された9, 6, 2を表現する画像である。それぞれの列は異なる進化過程であるが、それぞれ似たようなパターンに収束している。

f:id:kamakuraviel:20200618191238p:plain
図S1. 似たようなパターンを持っている

異なるアーキテクチャに関するtransferability

上の実験を異なる構造のDNNに行うとどうなるか。私たちはこの実験をCaffeによって提供されており、同じILSVRC2012のデータセット(ImageNet)で学習したAlexNet, GoogLeNetに対して行なった。それぞれのモデルでは1000枚の画像が生成され、その中でtop-1が同じだったものは

  • GoogLeNet->AlexNetでは20.7%
  • AlexNet->GoogLeNetでは17.3%

であった。したがって多くの生成された画像はあるネットワークに正確にフィットするわけではなく、むしろ異なるDNN間においても一般化されるようなものであった。(transferabilityがあると言うには少し低くない?)

アンサンブルのネットワークを使うことでattackは防げるか?

また私たちはアンサンブルされたネットワークに攻撃が効くのかテストした。ここでは極端なケースとしてCaffeNet, AlexNet, GoogLeNetという全てのネットワークの構造が違うものでアンサンブルを組んだ。CaffeNetはAlexNetとほぼ同様のパフォーマンスを出すが、少しだけ構造が違う。最終的な確信度は平均となる。たった4000回の繰り返しの後, 231/1000のクラスに対して90%以上の確信度でアンサンブルモデルを騙せた。その上、その平均は65.2%と高く、最大で100%であった。

Adversarial Training

AEsを1001番目のクラスとして新たに学習させたら攻撃は防げるのか?ここではその仮説をCPPN符号化された画像と共にMNIST, ImageNet DNNで確かめてみる。

まずDNN(1)をデータセットで学習する。次にDNN(1)で高い確信度を与えるようなCPPN符号化画像をデータセットに存在するクラス(n)だけ作成する。次にこれらを新たなクラス(n+1番目)としてデータセットに加え、DNN(2)を学習させる。必要があればこのプロセスを繰り返す。

AEsは最初と最後の世代(both the first and last generations)でDNN(i)に対して高い確信度を出すような画像の中からランダムに選択される。MNIST, ImageNetでそれぞれ20, 2000のAEsを生成し、それぞれ最初の世代更新から半分、最後の世代更新から半分選ばれる。それぞれの進化的アルゴリズムでは200世代、5000世代の繰り返しが行われた。

MNIST

各MNIST DNNsは以下のような条件で学習された。

  • 画像サイズ: 28 x 28
  • バッチサイズ: 64
  • SGD(momentum=0.9, weight_decay=0.0005)
  • 学習率: 初期値は0.01, Caffeで定義される逆learning rate policy(power=0.75, gamma=0.0001)によってイテレーション毎に減少させていく。

結果は以下のようになった。

f:id:kamakuraviel:20200618192126p:plain
TABLE S2. Adversarial training(MNIST)

  • DNN(1)はオリジナルのデータセットで学習したもの
  • DNN(2-15)はCPPN画像によって拡張したデータセットで学習したもの
  • Error: CPPN画像を含んだテストセットでのエラー率
  • MNIST Error: オリジナルのMNISTでのエラー率(10000画像)
  • Train: トレーニングデータセットの数
  • Val: テストセットの数
  • Score: イテレーション毎に進化アルゴリズムによって生成された確信度の平均値

学習を15番目まで繰り返してもAEsを生成することができた。

f:id:kamakuraviel:20200618172506p:plain
図11. 訓練されたモデルでもAEsは作成できる

ImageNet

オリジナルのILSVRC2012のトレーニングデータセットを1001クラスに拡張し、DNN(1)を騙す9000枚, 2000枚の画像をトレーニング、テストセットに加える。ImageNetクラスの訓練画像1300枚に対しておよそ7倍に増加しているのはトレーニングセットの中でfooling imagesを強調するためです。この不均衡が無ければfooling iamgesは防げなかっただろう。再学習したMNIST DNNはこのfooling image classを大きく表現する(over representing)戦略から利益を得られなかった(このデータはこの論文では紹介されていない)。

DNN(2)の学習設定は以下の通り。

  • 画像サイズ: DNN(1)から生成された画像は256x256だがトレーニング用に227x227に切り取る。
  • バッチサイズは256
  • SGD(momentum=0.9, weight_decay=0.0005)
  • 学習率は0.01から始まり、100,000イテレーション毎に1/10倍される
  • 450,000イテレーション行う

DNN(2)でのtop-1エラー率は41.0%とわずかにDNN(1)の42.6%より良くなった。1001番目のクラスが他の1000クラスに比べて簡単にエラー率が改善したのは1001番目のクラスは異なる"スタイル"の画像を表現しており、これがクラス分類を簡単にしていると私たちは仮説付けた。この仮説を裏付けるものとしてDNN(2)はオリジナルのILSVRのテストセットで42.6%というtop-1エラー率を出しているという事実がある。

前のMNISTのセクションの結果とは対照的にこのImageNetモデルにおける進化アルゴリズムはDNN(1)に対しては高い確信度を出すが、DNN(2)に対してはそうでもない。DNN(2)の確信度の平均値(11.7%)はDNN(1)のもの(88.1%)に比べて大きく減少している(p<0.0001のマン・ホイットニーのU検定より)。

f:id:kamakuraviel:20200618172704p:plain
図12. Adversarial training(ImageNet)

このときDNN(B)は「DNN(A)を騙したCPPN画像の特徴」を学んだのか、それとも「CPPN画像一般の特徴」を学んだのか?それを確かめるためにPicbreeder.orgで生成された画像で判定させてみた。結果、DNN(B)は70枚中45枚のPicBreeder画像をCPPN画像と正しく判定できた(64%, Top-1 error rate)。このことからAdversarial trainingでは一般的なCPPNの特徴を学んでいることがわかる。

勾配上昇による画像生成

第3の方法として勾配上昇による手法を考案した。20のクラスに対してこの手法は即座に99.99%以上の確信度を持つ非認識画像を生成することに成功した。以下、初期値はImageNetの平均値にガウシアンノイズ(標準偏差1/255, [0,1])を加えたものである。

L2正則化

L2正則化を用いた勾配上昇を用いて、ある程度クラスの特徴が認識できるような画像(全て確信度が99.99%に達するまで行われる)が生成できた(犬の顔、キツネの耳、カップの持ち手など)。

以下の画像(図13)は平均値を引いて表示しており、確信度はわずかに低くなる。

f:id:kamakuraviel:20200618174635p:plain
図13

以下の画像(S5)はステップ毎に重みが減衰するL2正則化によって生成された画像である。最適化の各ステップでは平均値を引かれた画像にある定数( 1-\gamma, \gamma=0.01)を掛け合わせるている。正則化により確信度は下がり、平均98.591%である。

f:id:kamakuraviel:20200618201633p:plain
図S5

図S8は初期値の異なる画像である。

f:id:kamakuraviel:20200618203017p:plain
図S8

L1正則化

図S6は、重みの減衰(現在はγ=0.001)と他の2種類の正則化を示しています。最初の追加のレギュラリゼーションは、各ステップで適用される小さなぼかし演算子で、高周波数の少ない画像と低周波数の情報を多く含む画像に向けて検索を偏らせます。これは、赤のグラデーションステップの後に半径0.3のガウシアンブラーを用いて実装されています。2番目に追加された正則化は、20%未満のノルムを持つピクセル(R, G, B)を0に設定した擬似L1正則化で、これにより画像がやや粗くなる傾向があります。図S5と同様に、ぼかしと疑似L1正則化を加えたもので、これは、最適化の間中、ノルムが最も低い画素をゼロに設定することによって達成される。

f:id:kamakuraviel:20200618202027p:plain
図S6

図S7は、同じ重みの減衰で学習率が低く、わずかに攻撃的なぼかしが発生していることを示している。重みの減衰とぼかしの操作は学習率に依存しないため、これにより、はるかに多くの正則化を伴う客観的なコンテントが得られます。その結果、多くのクラスは99%を達成することはありませんでしたが、可視化の質は異なり、場合によってはより明確になりました。図S5と同様であるが、図S6よりもやや強引なボケ味がある。図S9は異なる局所最適解を表す。

f:id:kamakuraviel:20200618202132p:plain
図S7

図S9は初期値の異なる画像である。

f:id:kamakuraviel:20200618203714p:plain
図S9

確信度の比較

元のデータセットで正しく分類できた画像の確信度の中央値は86.7%, EAsでは88.11%なので元のデータに対しても遜色ない結果となる。

考察: 高次元空間における分布の違い

DNNがデータセットで学習する領域は高次元空間のほんの一部である。なぜならトレーニングデータセットに含まれる画像は高次元空間のほんの一部でしかないからだ。この実験で作られたような画像は自然画像より大きく離れた場所にいながら高い確信度を出すような深い場所にいる。このような考え方はFGSM論文に書かれている「局所的な線形性と高次元空間の組み合わせによって、高い確信度の領域は多く存在している」という主張に裏付けされている。

f:id:kamakuraviel:20200618181945p:plain
図14. 高次元空間における画像分布の違い

FGSMなど従来の手法では青の丸から赤の四角へ移すような攻撃であった。それに対して我々の手法は G_0 I_0から出発するようなものかもしれない。

おまけ

CPPN encodingで作られた画像の35.5%が美術館にacceptされて、そのうちの21.3%は賞を取った。

f:id:kamakuraviel:20200820110608p:plain
図S2