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

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

訳の分からない画像にDNNが高い確信度を出す理由

CVPR2020の論文である Why ReLU networks yield high-confidence predictions far away from the training data and how to mitigate the problem のまとめです。

概要

DNNは分類問題で高い精度を誇っていますが、色々な問題も抱えています。そのうちの一つがトレーニングデータとは明らかに異なる画像を既存のクラスに高い確信度で分類してしまうことです。このような問題で最も有名なものがfooling imagesです。fooling imagesの元論文はここ。また私の記事でも紹介しています。

kamakuraviel.hatenablog.com

このような問題がReLUに起因することを数学的に証明した論文です。またこのような問題を防ぐために新たなトレーニング手法も提案しました。

前提

今後の展開のためにまずReLUが入力空間をいくつかのDNNが線形に働く領域に分割することを証明します。この話の元論文はここここ

まず以下の定義をします。

f:id:kamakuraviel:20201122214348p:plain

入力空間 \mathbb{R}^dが有限個の Q_rに分割でき、 Q_rで関数 fが線形に働くなら、 f:\mathbb{R}^d\to \mathbb{R}は区分線形と呼ぶ。

一般に分類器は f:\mathbb{R}^d\to\mathbb{R}^K (Kはクラス数)は連続区分線形関数であり、それぞれのクラスに対応する (f_i)_{i=1}^Kは同じ線形領域を保持しています。

 L+1個の全結合層で構成されているDNNを考えます。l番目のレイヤーの重みとバイアスをそれぞれ W^{(l)}, b^{(l)},  \sigmaをReLUとします。各レイヤーは以下のように表現できます。

f:id:kamakuraviel:20201122220803p:plain

ただし,  g^{(0)}(x)=xとします。さらに以下のように文字を定義します。

f:id:kamakuraviel:20201122221115p:plain

これらの文字を使うことで各レイヤーは以下のように書き下せるようになります。

f:id:kamakuraviel:20201122221431p:plain

これはさらに以下のように簡単に表現できるようになります。式変形をしているだけです。

f:id:kamakuraviel:20201122221802p:plain

シンプルに表現された各レイヤーの各ユニットの出力を用いて、Q(x)は以下のように表現されます。Q(x)はDNNの各レイヤーの各ユニットの出力が全部一緒なものの集合です。

f:id:kamakuraviel:20201124181119p:plain

これらをまとめると領域Q(x)上に存在している間、DNNは以下のような線形関数として表現できるようになります。

f:id:kamakuraviel:20201124182140p:plain

なぜReLU DNNはトレーニングデータから離れた画像に高い確信度を生成するのか?

いよいよ本題です。

これまでの話で入力空間が有限の線形領域に分割できることが証明されました。これをもとに以下の補題が成り立ちます。

f:id:kamakuraviel:20201124183411p:plain

これはxがどのような場所に存在していてもそれを原点からどんどん離していけばある一つのQ(x)がずっと続くような領域に到達するということです。

ここから以下の定理が成り立ちます。これが本題です。

f:id:kamakuraviel:20201124185035p:plain

先ほどの補題で原点から離れるといつか同じQ(x)がずっと続くような領域に到達するとわかりましたが、このような場所で原点から離れていくと各f_k(x)はずっと線形に変化していきます。このとき、このまま無限にこの領域で原点から離れていくと、あるf_k(x)の値が相対的にとても大きくなっていきます。これによってあるソフトマックス関数が1, つまり確信度100%に近づきます。これがトレーニングデータから離れた画像にDNNが高い確信度を生成する理由となります。

これに対し、RBFネットワークf_k(x)=\sum_{l=1}^{N}\alpha_{kl}e^{-\gamma ||x-x_l||^2_2}は中心から離れると大体どれも小さい値になるので、極端に不均衡な確信度を生成しません。

これを防ぐためのトレーニング手法

この論文では加えて、自然画像から離れたデータに対して均一な確信度を生成するような学習方法を提案しました。

confidence enhancing data augmentation (CEDA)

以下のような損失関数を考えます。

f:id:kamakuraviel:20201124201948p:plain

外れたデータに対して大きな確信度を生成するのを防ぐために第二項を入れています。Zはnoise distributionからとられます。

adversarial confidence enhancing training (ACET)

CEDAは外れたデータに対して均一な確信度を生成するために多くのサンプルが必要でした。またCEDAはトレーニングノイズデータの近傍の画像にも高い確信度を生成してしまうことが後ほど判明します。これを防ぐために以下のような変形を施します。

f:id:kamakuraviel:20201124203940p:plain

違いとしてはあるノイズサンプルの近傍から最も大きなロスを出すものを使っています。探索はPGDによって行われます。

実験

以下のデータセットで学習したモデルに対し、

  • MNIST
  • SVHN
  • CIFAR10
  • CIFAR100

以下のデータでテストします。

  • レーニングデータに含まれていない自然画像
    • MNIST
    • FMNIST
    • EMNIST
    • SVHN
    • gray CIFAR10
    • CIFAR10
    • CIFAR100
    • LSUN CR
    • ImageNet
  • 自然画像から離れた分布を持つデータ
    • Noise
    • Adversarial Noise
  • Adversarial Samples

Noiseは以下の手順で作られます。

  1. 半分はトレーニングデータセットに含まれる画像のピクセルを変更、もう半分は完全ランダム。
  2. ガウシアンフィルタに通す。
  3. ガウシアンフィルタによるコントラストの低下を防ぐためにコントストのスケーリングを行う。

Adversarial Noiseは上の手順で得られたノイズからスタートし、PGDによって最適化したものです。

以下がMNISTとCIFAR10のその例です

f:id:kamakuraviel:20201124205156p:plain

f:id:kamakuraviel:20201124210725p:plain

結果

ここではほんの一部の結果だけのせます。

f:id:kamakuraviel:20201125012003p:plain

上の段はモデルを騙す(99.9%以上の確信度を出す)ためにランダムなノイズを \alpha倍することを考え、その\alphaの平均をとったものです。\alphaが指すものは先ほどの数学の話を参照してください。ACETで学習したモデルはかなり巨大な\alphaまで耐えてます。

下の段は\alpha倍する前のノイズの中で95%以上を超えたものの割合です。ACETではかなりの割合でそのような画像を防げています。