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

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

Universal adversarial perturbationsを読んだのでメモ

はじめに

Universal adversarial perturbationsを読んだのでメモ.

気持ち

従来のadversarial perturbationsは画像ごとに計算されているのに対し,この論文ではある単一の摂動を用いて画像に関係なくdeep neural networks(DNN)を騙すことが可能かということを調査し,その生成方法を提案した.このような摂動を論文ではuniversal perturbationsという.

このuniversal perturbationsは画像に対して一般化されているだけでなく,従来のperturbation同様に異なるモデルに対しても一般化された摂動となっている.論文ではuniversal perturbationの存在がDNNの識別境界のトポロジーに新たな知見を与えるとしている.

Universal perturbations

\mu\mathbb{R}^n空間における入力データの分布とし,\hat{k}を識別関数,すなわち画像x\in\mathbb{R}^dに対してそのラベルを予測する関数\hat{k}(x).ここでの目標は\muから生成されるほぼ全てのデータに対し識別器\hat{k}を騙す(予測ラベルを変える)ような摂動v\in\mathbb{R}^dを見つけることとなる.すなわち

\displaystyle
\hat{k}(x+v)\neq\hat{k}(x)\:\mathrm{for}\:x\sim\mu

をみつける.基本的にこのvは一意ではないため,以下の制約のもとで摂動を求める.

  • \|v\|_p\leq\xi
  • \underset{x\sim\mu}{\mathbb{P}}\left(\hat{k}(x+v)\neq\hat{k}(x)\right)\geq 1-\delta

\xivの強度をコントロールするパラメータで,\deltaは識別器をどの程度騙せているかを定量化したもの.

Algorithm

X=\{x_1,\dots,x_m\}\muからサンプリングされた画像の集合とする.この集合Xに含まれる多くデータ点において識別器の出力を変化させるuniversalな摂動v,\|v\|_p\leq\xiを求める事を目標とする.

主なuniversal perturbationの導出方法は以下の最小化問題を解いてvを更新していく.

\displaystyle
\Delta v_i\leftarrow\underset{r}{\mathrm{arg}\min}\|r\|_2\:s.t.\:\hat{k}(x_i+v+r)\neq\hat{k}(x_i)

\|v\|_p\leq\xiを満たすために,以下の射影作用素\mathcal{P}_{p,\xi}を用いて半径\xil_p球上に射影する.

\displaystyle
\mathcal{P}_{p,\xi}(v)=\underset{v'}{\mathrm{arg}\min}\|v-v'\|\:\mathrm{subject}\:\mathrm{to}\:\|v'\|_p\leq\xi

すなわちv\leftarrow\mathcal{P}_{p,\xi}(v+\Delta v_i)として摂動を更新していく.摂動の更新の終了は以下のfooling rateによって制御される.

\displaystyle
\mathrm{Err}(X_v):=\frac{1}{m}\sum_{i=1}^m1_{\hat{k}(x_i+v)\neq\hat{k}(x_i)}\geq 1-\delta

1_{\hat{k}(x_i+v)\neq\hat{k}(x_i)}は指示関数で下付きの条件を満たす時に1,それ以外は0を返す.すなわち,Xにおける騙せたデータ点の割合が閾値1-\deltaを超えた際に摂動の更新を終了する.ここでデータ点数mは必ずしもモデルの学習に用いたデータ数と等しい必要はなく,実験においては学習に用いた数よりも少ないデータ数で計算を行ったとのこと.

ちなみに\Delta v_iを導出するための最適化問題はDNNの識別器を用いた際には非凸であるため計算が困難である.そのためこの論文ではDeepFoolで使用された近似方法を用いたとのこと.そのため厳密に最小ノルムのuniversal perturbationを見つけることはできないが,基本的に十分小さなノルムを持つ摂動を上記アルゴリズムで計算できるとのこと.

Universal perturbations for deep nets

ここでは前述の方法で計算されたuniversal perturbationsがどれだけ有効に働いているかをImageNetで学習されたいくつかのモデルを使って評価したとのこと.universal perturbationはl_2,l_\inftyノルムを用いた場合の2パターンで評価を行った.論文中のTable 1にfooling ratioが報告されており,だいたい80~90%程度のfooling ratioを達成している.universal perturbationは当然一意に求まる訳ではなく,Xを変える(X内でデータの順番を変える)と違うパターンの摂動が作られる.

またXに含まれるデータ点の数を変化させた場合の実験も行っており,500画像程度でもvalidation set全体の30%程度は騙せるとのこと.

Cross-model universality

あるモデルで計算されたuniversal perturbationが別なモデルでも有効に働くかを検証.論文中のTable 2に結果が乗っており,低くても40%程度は騙せるようで,モデルの構成が似ている(例えばVGG-16で生成した摂動でVGG-19を騙す)場合はfooling ratioが元のモデルと遜色ない値となっている.

Visualization of the effect of universal perturbations

universal perturbationの効果を可視化するために摂動を与えた際にどのクラスからどのクラスに移ったかを有向グラフとして表現する.すなわち各クラスをノードとし,i番目のクラスからj番目のクラスに変化した際にe=(i\rightarrow j)というエッジを作る.GoogLeNetを使って構成したグラフが論文中のFigure 7にある.

可視化の結果エッジが集中するノード(dominant label)が存在することが確認され,そこから画像空間においてそのようなdominant labelとして分類される領域は広いのではという仮説を立てている.

Explaining the vulnerability to universal pertrubations

各画像x毎にadversarial perturbation vector r(x)=\mathrm{arg}\min_r\|r\|_2,\:s.t.\:\hat{k}(x+r)\neq\hat{k}(x)を計算する.基本的にr(x)は識別境界の法線ベクトルの方向を向いており識別境界のx周りの局所的な幾何構造を記述している.ここでは領域間の関係を見るために次の行列を定義する.

\displaystyle
N=\left[\frac{r(x_1)}{\|r(x_1)\|_2}\dots\frac{r(x_n)}{\|r(x_n)\|_2}\right]

2値分類を考えればこの行列のランクは1になる.より一般的な状態を考えるためにNの特異値を計算する.特異値を見ると,その値が急激に小さくなっており,法線ベクトルに強い相関と冗長性があることがわかる.さらに言えばこの事実は低次元の部分空間\mathcal{S}の存在を示唆しており,これがuniversal perturbationsの存在を示すひとつの理由として仮説付けられる.すなわち,法線ベクトルの多くはは部分空間\mathcal{S}内に含まれており,データ点を法線ベクトル方向,すなわち\mathcal{S}内で動かすことによりadversarial examplesが作られている.そのため\mathcal{S}に含まれるベクトルをうまく選択することで元々\mathcal{S}内に法線ベクトルを持つようなデータ点を騙すことができるuniversal perturbationsが計算できる.そのため論文中のFigure 10にあるように,多くの識別境界は向かい合うような形になっていることが考えられる.

まとめ

可視化できる2次元や3次元では非直感的な現象ではあるが,多くの場合において高次元空間での性質が非直感的であるのでこういうもんかなという印象.