classic style

論文読んで見た系: 他-> http://gabdro.hatenablog.com/

Adversarial Examples を試してみた

この投稿は Deep Learning Advent Calendar 2016 - Adventar 13日目の記事です.

f:id:planetaria:20161207161359p:plain

[1412.6572] Explaining and Harnessing Adversarial Examples 

 

元画像(左)パンダにテナガザル成分を混ぜ込んだ画像(右)

分類器は左の画像をパンダ 右の画像テナガザル と認識した.

右のような画像をAdversarial Exampleという.パンダのやつね

はじめに

私は学部4年のときにAdversarial Example の研究?をしていたので、その時調べたAdversarial Exampleのメモ代わりに残します.
私がAdversarial Exampleについて知ったのはkivantiumさんの資料を見ていて

画像認識に関する 機械学習技術 / kivantium さん - ニコナレ

「これ面白い」と思って,とりあえず検索したら日本語でまとめていたSotetsu Kさんのブログがヒット

Adversarial exampleについて - sotetsuk's tech blog

その後はSotetsu Kさんのブログに書いてある論文をつまみ食いしながらAdversarial Exampleについて調べた感じです.Sotetsu Kさんの記事わかりやすいです.

なんで研究題材にしたかはわからないけど多分「分類器騙せるとか面白いwww」と思ったからじゃないですかね。具体的にどういう研究してたかはまた今度.

Adversarial Example とは

 分類器を騙すための人工データと私は解釈しています。

[1312.6199] Intriguing properties of neural networks 
この論文では下記のことをAdversarial Exampleと定義している.

The second property is concerned with the stability of neural networks with respect to small perturbations to their inputs.
Consider a state-of-the-art deep neural network that generalizes well on an object recognition task.
We expect such network to be robust to small perturbations of its input, because small perturbation cannot change the object category of an image.
However, we find that applying an imperceptible non-random perturbation to a test image, it is possible to arbitrarily change the network’s prediction (see figure 5).
These perturbations are found by optimizing the input to maximize the prediction error.We term the so perturbed examples “adversarial examples”.

本来 画像において小さな摂動は元のラベルに対して影響がないと考えられていたが,分類器(ニューラルネット)は小さな摂動がある画像にもロバスト(頑健)であると言われている。だけれど対象の画像に(知覚できない)人工的に作った(意図的に作った)摂動を加えるとニューラルネットの予測を任意に変更することが可能である。これらの摂動は予測誤差を最大にするよう入力を最適化することによって見つけることができる。そして,このような画像をAdversarial Examplesと呼ぶ.

ノイズ=摂動だと思っていただければ.

ちなみにこの論文[Intriguing properties of neural networks]ではニューラルネットワーク二つの反直感的な特性について述べている.(カレンダー的にはこっちのほうが..)


実際に作ってみた

画像データセットはCIFAR-10

@仕組み

ある元画像の正しいラベルから騙したいラベルにするような摂動を画像分類器を用いて求める.

  1. input:Image X,true label T,adversarial label A,pertubation r
  2. output:pertubation table p
  3.  
  4. predict() :#入力画像に対する分類器の各ラベルの予測結果の数値をニューロン(ラベル)別に返す
  5. X ←{x_1+x_2+...x_i+x_{i+1}+...+x_n}
  6.  \psi ← predict(X)
  7.  
  8. for each pixel  x_i ∈ X
  9.     X' ←{x_1+x_2+...x_i+r+x_{i+1}+...+x_n}
  10.     \psi ' ← predict(X')
  11.     p_i ← sign((\psi_T ' - \psi_A ' )-(\psi_T - \psi_A) )
  12. end for 

pertubation table pを求めたら元画像にε倍したpした値がadversarial example

pertubation tableの導出式が多少異なるが[1412.6572] Explaining and Harnessing Adversarial Examples とほぼ同じである.  論文の手法では識別関数の騙したいラベルの出力値のみを用いて元画像の各画素ごとに微分してる.

f:id:planetaria:20161212164100p:plain

※論文ではpertubation tableのことをoptimal max-norm constrained pertubationと表記

@結果

本実験では猫の画像を飛行機と認識するようなpertubation tableを作成してどの程度のepsilonから飛行機と分類器が認識するようになったか.

f:id:planetaria:20161212184348j:plain

本実験ではepsilon=0.05で飛行機と認識するようになった.猫でない他のラベルにはepsilon=0.01から認識した.
他の画像でも試した結果 テストデータではepsilon=0.05以上であればほぼ確実に一応分類器は騙すことに成功した.
一方epsilonの値が小さいと騙せない画像もある(当然か)

パッと見,epsilon=0.02あたりまではoriginalと同じ画像に見える?

いやよーく見ると(見なくても)少し人間の目には違和感感じるけど.
originalを見なかったとしたらどこまで自然に見えるんだろう...
ちなみにあまりにも小さいepsilonだとoriginalと同じカテゴリと認識します.
画像ごとにどのepsilon値が良いのかはまだわからず法則もいまいち.

 

まとめとか思うこと

実験する時に小さい画素数のデータセットでやらずもっと大きい画素数でやるべきだったのでやります... 

また分類器などの境界面の精度を上げるためにAdversarial Examplesを用いるVirtual Adversarial Trainingとかあります[5]

作成していてAdversarial Examplesには二種類あると思った
・分類器を騙せる画像

・分類器も騙せる画像かつ人間の目も騙せる

下記の画像において上記の前者は真ん中の画像(分類器は蛙と認識)で後者は右の画像(分類器は猫と認識、人間の目には鳥に見えるよ..ね)

f:id:planetaria:20161212190429j:plain

 

私は後者のAdversarial Exmapleに対して人間の目で見て自然かどうか,画像に対して人間が違和感を覚えるかどうか,人間が見て騙せる画像に対する脅威に興味があるらしいよ.

特にまとまってないがおわり。最近 "Adversarial"多い

 

最近読んでるやつ

[1610.08401] Universal adversarial perturbations

この論文では異なる分類器を用いても画像のラベルを欺くことができる小さく普遍的,万能的な摂動の存在を提示した. まだ読み途中ですが面白そう

参考/引用/読んだ(る)

  1. Adversarial exampleについて - sotetsuk's tech blog
  2. 画像認識に関する 機械学習技術 / kivantium さん - ニコナレ
  3. [1312.6199] Intriguing properties of neural networks 
  4. [1412.6572] Explaining and Harnessing Adversarial Examples
  5. [1507.00677] Distributional Smoothing with Virtual Adversarial Training
  6. [1610.08401] Universal adversarial perturbations
  7. Breaking Linear Classifiers on ImageNet