機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Adversarial Examples Are Not Bugs, They Are Featuresを読んだのでメモ

はじめに

Adversarial Examples Are Not Bugs, They Are Featuresを読んだのでメモ.

気持ち

Adversarial Examplesに対する新しい仮説として,Adversarial Examplesはnon-robust featureという説明不可能な特徴量であるという解釈を提案している.このnon-robust featureは画像認識精度に大きく貢献している特徴であり,この論文では2つの実験を通してnon-robust featuresの存在を示している.ひとつはnon-robust featuresを取り除いたデータでモデルを学習する実験で,もう一つはnon-robust featuresを加えたデータを用意し,non-robust featuresに即したラベルを用いてモデルを学習する実験.

The Robust Features Model

ここでは2値分類問題を考える.データとラベルのペア(x,y)\in\mathcal{X}\times\{\pm 1\}はデータ分布\mathcal{D}から得られるとし,目標は識別器C:\mathcal{X}\rightarrow\{\pm 1\}の出力を与えられた入力xに関するラベルyと一致するように学習することとする.

ここでは特徴量を入力空間\mathcal{X}から実数への写像として定義し,全ての特徴量の集合を\mathcal{F}=\{f:\mathcal{X}\rightarrow\mathbb{R}\}とする.簡単のため\mathcal{F}内の特徴量の平均,分散はそれぞれ\mathbb{E}_{(x,y)\sim\mathcal{D}}[f(x)]=0,\mathbb{E}_{(x,y)\sim\mathcal{D}}[f(x)^2]=1とする.

Useful, robust, and non-robust features

上記で定義した特徴量を以下の3つに分類する.

  • \rho-useful features : \mathcal{D}が与えられた時,f\mathbb{E}_{(x,y)\sim\mathcal{D}}[y\cdot f(x)]\geq\rhoを満たす場合にf\rho-useful (\rho\gt 0)と呼ぶ.
  • \gamma-robustly useful features : \rho-useful feature f(\rho_\mathcal{D}(f)\gt0)が与えられたとし,fがadversarial perturbationに対して\gamma-useful,\mathbb{E}_{(x,y)\sim\mathcal{D}}\left[\inf_{\delta\in\Delta(x)}y\cdot f(x+\delta)\right]\geq\gamma,である時それをrobust featureと呼ぶ.
  • Useful, non-robust features : fがある程度大きな\rhoに対して\rho-usefulだが\gamma-robust-featureでない場合,non-robust featureという.

Classification

今回の枠組みでは識別器C=(F,w,b)は特徴量の集合F\subseteq\mathcal{F},重みベクトルwスカラーバイアスbを含むとする.入力xが与えられた際,識別器はラベルyを次のように予測する.

\displaystyle
C(x)=\mathrm{sgn}\left(b+\sum_{f\in F}w_f\cdot f(x)\right)

以下,識別器Cによって学習された特徴量の集合をF_Cとする.

Standard Training

分類器の学習は損失の最小化によって行われる.最も単純には以下の損失が考えられる.

\displaystyle
\mathbb{E}_{(x,y)\sim\mathcal{D}}[\mathcal{L}_\theta(x,y)]=-\mathbb{E}_{(x,y)\sim\mathcal{D}}\left[y\cdot\left(b+\sum_{f\in F}w_f\cdot f(x)\right)\right]

このような損失の最小化に際にはrobust featuresとnon-robust featuresの区別は存在せず前説で定義した\rho-usefulnessのみに着目したものになっている.さらには損失を減らすためにはFに含まれる任意の\rho-useful featureを利用可能である.

Robust training

non-robust featuresは有用な特徴であるが真のラベルとanti-correlatedさせることができ,これがadversarial vulnerabilityにつながる.そこでrobust featureのみを学習するため以下のadversarial loss functionを利用した学習をする.

\displaystyle
\mathbb{E}_{(x,y)\sim\mathcal{D}}\left[\max_{\delta\in\Delta(x)}\mathcal{L}_\theta(x+\delta,y)\right]

この損失関数はrobust featuresとnon-robust featuresを分離できることが知られており,分類器がnon-robust featuresを学習することを防ぐ働きがある.

Finding Robust (and Non-Robust) Features

今回はrobust featuresとnon-robust featuresを見つけることが目的となる.そのため,二つの特徴量を分離することでこの存在の仮説をサポートする.

一つの実験として,既存のデータセットをベースに主にrobust featuresを含むrobustified datasetを構成し,このデータセットを使って分類器をstandard trainingで学習する.これによりrobust featuresの獲得が可能になる.robustified datasetは元のデータセットからnon-robust featuresを取り除くことで作成する.この実験は,adversarial vulnerabilityが学習方法ではなくnon-robust featuresによって引き起こされることを示す.

もう一つの実験として,non-robust featuresに基づいたラベル付けを行ったデータセットで分類器の学習を行う.この分類器が通常のテストデータで十分な性能を発揮することを示し,分類器がnon-robust featuresを使った分類を行っていることを裏付ける.この実験により,有限サンプルへの過学習がもたらすartifactsではなく価値のある特徴量であることがわかる.

Disentangling robust and non-robust features

ここでの狙いはrobust model C (Adversarial trainingされたモデル)が与えられた時に以下を満たすように分布\hat{\mathcal{D}}_Rを作ること.

\displaystyle
\mathbb{E}_{(x,y)\sim\hat{\mathcal{D}}_R}[f(x)\cdot y]=
\left\{
\begin{matrix}
\mathbb{E}_{(x,y)\sim\mathcal{D}}[f(x)\cdot y]\:\mathrm{if}\:f\in F_C\\
0\: \mathrm{otherwise}
\end{matrix}\right.

要はrobust classifierから得られるfeatures(=robust feature)のみで構成されるデータセット\hat{\mathcal{D}}_Rを作るということ.これの逆(robust classifierで獲得できない特徴量=non-robust features)のデータセット\hat{\mathcal{D}}_{NR}とする.

今回は\hat{\mathcal{D}}_Rを元のデータセット\mathcal{D}からの1対1の写像x\rightarrow x_rを使って作る.Cがdeep neural networkの場合を考え,F_Cは出力層への入力とし,この特徴量が\mathcal{D},\hat{\mathcal{D}}_R両方において有用であることを保証するため次のような最小化問題を最適化する.

\displaystyle
\min_{x_r}\|g(x_r)-g(x)\|_2

gはデータから特徴量への写像(Cの出力層手前までの写像).これを入力空間において勾配法で最適化することで\hat{\mathcal{D}}_Rを作る.

さらに\hat{\mathcal{D}}_RF_C以外の特徴量に対して\mathbb{E}_{(x,y)\sim\hat{\mathcal{D}}_R}[f(x)\cdot y]=0となる必要があるため,xのラベルとは独立に\mathcal{D}からサンプリングされたx_0x_rの初期値として使う.これにより,特徴量はx_0周りでの期待値を超えてラベルと相関しなくなり,入力に存在する特徴量の利用を制限できるとのこと.理屈がイマイチわからないが,直感的にはCはrobust modelであるためrobust featuresしか使わないことから,x_0\rightarrow x_rという写像においてnon-robust featuresが消えるということか.

こうして得られた\hat{\mathcal{D}}_Rを使ってモデルをstandard trainingし,\mathcal{D}のテストデータを使って評価する.こうして\hat{\mathcal{D}}_Rで学習されたモデルは\mathcal{D}のテストデータに対して十分な精度を出しつつ,adversarial examplesに対する頑健性を持つことが確認された.

今度は通常のモデル(standard trainigで学習されたnon-robust classifier)を使って同じ手順で\hat{\mathcal{D}}_{NR}を作り,\hat{\mathcal{D}}_{NR}を使ってstandard trainingをしたモデルを作り,\mathcal{D}のテストデータを使って評価する.結果は仮説の通り,\hat{\mathcal{D}}_Rで学習されたモデルより高い精度を出したが,adversarial examplesに対して脆弱であることがわかった.これはデータセットを作るためのモデルと作られたデータセットを学習するモデルの構造などが異なっていても同様の結果が得られたとのこと.

とても気になるのが,non-robust側の実験ではデータセットに含まれる特徴量がnon-robust featureだけとは限らないので,non-robust featuresが存在するということをここで言い切っていいかが個人的に微妙.

Non-robust features suffice for standard classification

前節で,non-robust featuresが分類問題において重要な役割を担うことが確認されたため,今度はnon-robust featuresが偶発的なものもしくは単なる過学習によるものではないことを示す.特に,non-robust featuresは十分に汎化した特徴量であることを示す.

そのために,non-robust featuresのみを持つデータセットを構築する.ここでは入力とラベルのペア(x,y)をランダムもしくは真のラベルを考慮して意図的に入れ替える(例えば犬の画像と猫のラベルをペアにしたり).さらに,xに対し新たにつけられたターゲットラベルtに準拠したadversarial perturbationを加える.すなわち以下の最小化問題を解くことで,識別に有効な特徴量がnon-robust featuresのみのデータを作る.

\displaystyle
x_{adv}=\underset{\|x'-x\|\epsilon}{\mathrm{arg}\min}L_C(x',t)

L_Cはstandard trainingで学習された識別器C (standard classifier)のもとでの損失で,\epsilonは定数.結果として得られる画像は元の画像と人の目では見分けがつかない画像で一見すると画像とラベルが不一致したようなデータが作成される.

\|x_adv-x\|は小さいため,x_{adv}のrobust featuresは真のラベルyに準拠したものとなっており,non-robust featuresはターゲットラベルtに関するものとなっている.すなわち,人の目にはx_{adv}はクラスyの画像に見え,standard classifierにはクラスtの画像に見える.そのためターゲットラベルをtとして新たなモデルをstandard trainingで学習すればそれはnon-robust featuresのみを獲得することが可能となる.

tをランダムに選んだ場合,robust featuresはtと無関係で分類には役に立たないことが期待される.そのため,そのようにして作られたデータセットの分布\hat{\mathcal{D}}_{rand}は次のような期待値を持つ.

\displaystyle
\mathbb{E}_{(x,y)\sim\hat{\mathcal{D}}_{rand}}[y\cdot f(x)]\left\{
\begin{matrix}
\gt 0\:\mathrm{if}\:f\:\text{non-robustly}\:\mathrm{useful}\:\mathrm{under}\:\mathcal{D},\\
=0\:\mathrm{otherwise}
\end{matrix}\right.

tyに基づいて恣意的に選んだ場合を考える.ランダムでtを選ぶ時と違いこちらは真のラベルと異なるラベルを確実に割り当てる.そのためランダムの時と違いrobust featuresは学習の際には有効に働くがテストデータではむしろ精度を悪化させる振る舞いをする.すなわち次のような分布\hat{\mathcal{D}}_{det}を作ることに等しい.

\displaystyle
\mathbb{E}_{(x,y)\sim\hat{\mathcal{D}}_{det}}[y\cdot f(x)]\left\{
\begin{matrix}
\gt 0\:\mathrm{if}\:f\:\text{non-robustly useful}\:\mathrm{under}\:\mathcal{D},\\
\lt0\:\mathrm{if}\:f\:\mathrm{robustly}\:\mathrm{useful}\:\mathrm{under}\:\mathcal{D},\\
\in\mathbb{R}\:\mathrm{otherwise}\:(f\:\mathrm{not}\:\mathrm{useful}\:\mathrm{under}\:\mathcal{D})
\end{matrix}\right.

\hat{\mathcal{D}}_{rand}\hat{\mathcal{D}}_{adv}を使ってstandard trainingを行い,オリジナルのテストデータで評価した結果,non-robust featuresが有効に働いていることが確認できた.また,面白い結果として\hat{\mathcal{D}}_{det}での評価結果も(robust featuresが悪影響を及ぼすにも関わらず)\hat{\mathcal{D}}_{rand}と比べて劣るものの十分良い結果が示された.これは学習によってnon-robust featuresが獲得され,それがrobust featuresよりも影響力が高いことを意味する.

Transferebility can arise from non-robust features

Adversarial examplesのtransferabilityは様々な研究で議論されているが,このtransferabilityの存在はnon-robust featuresの存在から自然に言える.この論文の主張はadversarial examplesは脆いがよく汎化した特徴量であるというもので,それがデータ分布固有の特徴量であるとすれば,異なる識別器が似たようなnon-robust featuresを獲得するため,adversarial examplesにtransferabilityが存在する.

この仮説を証明するために5つの異なるモデルをstandard trainingされたResNet-50を使って作られた\hat{\mathcal{D}}_{det}で学習し,通常データで精度とtransfer success rateを評価した(論文のFigure 3).図を見ると精度とtransfer success rateは相関しており,精度が高い(non-robust featuresをよく学習している)モデルほど\hat{\mathcal{D}}_{det}の生成元のResNet-50から生成されたadversarial examplesに騙されやすかった.

A Theoretical Framework for Studying (Non)-Robust Features

理論的な解析をするため具体的な問題に落とし込んでrobust, non-robust featuresについて考える.

まず,二つのガウス分布の最優推定について考える.以下のようにサンプル(x,y)が与えられるとする.

\displaystyle
y\overset{\mathrm{u,a,r}}{\sim}\{-1,+1\},\:x\sim\mathcal{N}(y\cdot\mu_\ast,\Sigma_\ast)

目標は次のパラメータ\Theta=(\mu,\Sigma)を学習すること.

\displaystyle
\Theta=\underset{\mu,\Sigma}{\mathrm{arg}\min}\mathbb{E}_{(x,y)\sim\mathcal{D}}[l(x;y\cdot\mu,\Sigma)]

l(x;y\cdot\mu,\Sigma)ガウス分布の負の対数尤度.このモデルにおける分類は尤度評価によって行われる.すなわち,データをxとしてyの推定は次のようにかける.

\displaystyle
y=\underset{y}{\mathrm{arg}\max}l(x;y\cdot\mu,\Sigma)=\mathrm{sign}\left(x^\top\Sigma^{-1}\mu\right)

この問題におけるrobustというのはl(x;y\cdot\mu,\Sigma)をadversarial perturbation下で書き直すことで定義できる.

\displaystyle
\Theta_r=\underset{\mu,\Sigma}{\mathrm{arg}\min}\mathbb{E}_{(x,y)\sim\mathcal{D}}\left[\max_{\|\delta\|_2\leq\epsilon}l(x+\delta;y\cdot\mu,\Sigma)\right]

(1)Vulnerability from metric misalignment (non-robust features)

今回考えているモデルでは特徴によって自然に定義される内積を利用可能で,\Thetaは入力空間における内積\langle x,y\rangle_\Theta=(x-\mu)^\top\Sigma^{-1}(y-\mu)を定義する.これはマハラノビス距離であり,識別器により学習された特徴量が入力空間をどの程度変えているかを表現する.なのでadversarial vulnerabilityl_2とマハラノビス距離との差で正確に評価できる.

Theorem 1 (Adversarial vulnerability from misalignment)

次のように摂動がLagrangian penaltyによって決定される場合を考える.

\displaystyle
\max_\delta l(x+\delta;y\cdot\mu,\Sigma)-C\cdot\|\delta\|_2

C\geq\frac{1}{\sigma_{min}(\Sigma_\ast)}は定数で負の対数尤度の項とadversarial constraint間のバランスをとる.non-robustな(\mu,\Sigma)に対するadversarial loss \mathcal{L}_{adv}は次のように与えられる.

\displaystyle
\mathcal{D}_{adv}(\Theta)-\mathcal{L}(\Theta)=tr\left[\left(I+(C\cdot\Sigma_\ast-I)^{-1}\right)^2\right]

tr(\Sigma_\ast)=kと固定された値をとる場合,上の式は\Sigma_\ast=\frac{k}{d}Iで最小値をとる.

ここまでがTheorem 1の内容だが自分の理解不足で何が言いたいのかよくわからなかった.一応論文曰く,ある方向に沿ったadversarialなmetricにおける微小な変化がモデルに大きな影響を与えるということを示しているとのこと.直感的にはデータの背後にある多変量ガウス分布は等方的なものではなく共分散行列の非対角成分が値を持つ偏った分布なため,分散が小さい方向に摂動を与えれば摂動が小さくても尤度が大きく下がり,adversarial perturbationsが等方的な摂動をとるためそのような方向の摂動を作れてしまうということだと思う.論文のFigure 4に学習結果が載っていて,robust learningによって得られたパラメータはどちらかといえば等方的なものになっている.

(2) Robust Learning

non-robustな最優推定結果のパラメータを\Theta=\Theta^\astとする.以下の定理はrobust problemにおいて学習されたパラメータの振る舞いを特徴付ける.

Theorem 2 (Robustly Learned Parameters)

robustな共分散\Sigma_rに対して,任意の\epsilon\in[0,\epsilon_0)において以下が成り立つ\epsilon_0\gt0が存在する.

\displaystyle
\Sigma_r=\frac{1}{2}\Sigma_\ast+\frac{1}{\lambda}\cdot I+\sqrt{\frac{1}{\lambda}\cdot\Sigma_\ast+\frac{1}{4}\Sigma_\ast^2},\:where\:\Omega\left(\frac{1+\epsilon^{1/2}}{\epsilon^{1/2}+\epsilon^{3/2}}\right)\leq\lambda\leq O\left(\frac{1+\epsilon^{1/2}}{\epsilon^{1/2}}\right)

Theorem 1の部分で述べたように,\epsilonが大きくなると共分散行列は単位行列へと近づいていく.これは摂動の方向に出力が影響を受けないようになった結果と言える.

(3) Gradient Interpretability

先行研究においてrobust modelの勾配は潜在的に意味を持ったように見えることが観測されている.この振る舞いはTheorem 2の自然な結果であり,実際にパラメータがrobustに学習された結果,線形分類器の勾配と二つの分布の平均をつなぐベクトルがl_2内積のもとでよくalignmentされている.

Theorem 3 (Gradient alignment)

f(x)f_r(x)をそれぞれ通常の学習,ロバスト学習によって作られた線形の識別器とする.分類器の入力に対する勾配とデータのクラス間をつなぐベクトルの成す最大の角度はロバストモデルの方が小さい.

\displaystyle
\min_\mu\frac{\langle\mu,\nabla_xf_r(x)\rangle}{\|\mu\|\cdot\|\nabla_xf_r(x)\|}\gt\min_\mu\frac{\langle\mu,\nabla_xf(x)\rangle}{\|\mu\|\cdot\|\nabla_xf(x)\|}

Discussion

実験において,l_2で制約されたadversarial perturbationsに対するrobust trainingが分類器がl_2距離と異なるメトリックによって引き起こされる特徴量に依存することを防ぐのを見た.そのため,adversarial trainingはデータ依存の特徴量とenforced prior間でのトレードオフを許容したものとなっている.

Robustness and accuracy

先行研究と同様,robust trainingは精度の高い分類器の学習を阻むという結果が得られた.ただこの論文の著者らはrobustnessとaccuracyを両立したモデルは実現可能だと主張している(ただappendixにある2つの2次元ガウス分布から生成されたデータの分類を例に挙げており,先行研究で言われていた入力の高次元がadversarial examplesを引き起こすという主張を考えると両立可能というのは微妙な主張になっている).

まとめ

なんとなく読んでいて違和感を覚える点もあったが,基本的にはなるほどといった感じ.仮にこの論文の主張が真だとするとCNNに対して色々と面白いことができそうな気がする.