訳の分からない画像に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の元論文はここ。また私の記事でも紹介しています。
このような問題がReLUに起因することを数学的に証明した論文です。またこのような問題を防ぐために新たなトレーニング手法も提案しました。
前提
今後の展開のためにまずReLUが入力空間をいくつかのDNNが線形に働く領域に分割することを証明します。この話の元論文はここやここ。
まず以下の定義をします。
入力空間が有限個のに分割でき、で関数が線形に働くなら、は区分線形と呼ぶ。
一般に分類器は (はクラス数)は連続区分線形関数であり、それぞれのクラスに対応するは同じ線形領域を保持しています。
個の全結合層で構成されているDNNを考えます。番目のレイヤーの重みとバイアスをそれぞれ, , をReLUとします。各レイヤーは以下のように表現できます。
ただし, とします。さらに以下のように文字を定義します。
これらの文字を使うことで各レイヤーは以下のように書き下せるようになります。
これはさらに以下のように簡単に表現できるようになります。式変形をしているだけです。
シンプルに表現された各レイヤーの各ユニットの出力を用いて、は以下のように表現されます。はDNNの各レイヤーの各ユニットの出力が全部一緒なものの集合です。
これらをまとめると領域上に存在している間、DNNは以下のような線形関数として表現できるようになります。
なぜReLU DNNはトレーニングデータから離れた画像に高い確信度を生成するのか?
いよいよ本題です。
これまでの話で入力空間が有限の線形領域に分割できることが証明されました。これをもとに以下の補題が成り立ちます。
これはがどのような場所に存在していてもそれを原点からどんどん離していけばある一つのがずっと続くような領域に到達するということです。
ここから以下の定理が成り立ちます。これが本題です。
先ほどの補題で原点から離れるといつか同じがずっと続くような領域に到達するとわかりましたが、このような場所で原点から離れていくと各はずっと線形に変化していきます。このとき、このまま無限にこの領域で原点から離れていくと、あるの値が相対的にとても大きくなっていきます。これによってあるソフトマックス関数が1, つまり確信度100%に近づきます。これがトレーニングデータから離れた画像にDNNが高い確信度を生成する理由となります。
これに対し、RBFネットワークは中心から離れると大体どれも小さい値になるので、極端に不均衡な確信度を生成しません。
これを防ぐためのトレーニング手法
この論文では加えて、自然画像から離れたデータに対して均一な確信度を生成するような学習方法を提案しました。
confidence enhancing data augmentation (CEDA)
以下のような損失関数を考えます。
外れたデータに対して大きな確信度を生成するのを防ぐために第二項を入れています。はnoise distributionからとられます。
adversarial confidence enhancing training (ACET)
CEDAは外れたデータに対して均一な確信度を生成するために多くのサンプルが必要でした。またCEDAはトレーニングノイズデータの近傍の画像にも高い確信度を生成してしまうことが後ほど判明します。これを防ぐために以下のような変形を施します。
違いとしてはあるノイズサンプルの近傍から最も大きなロスを出すものを使っています。探索はPGDによって行われます。
実験
以下のデータセットで学習したモデルに対し、
- MNIST
- SVHN
- CIFAR10
- CIFAR100
以下のデータでテストします。
- トレーニングデータに含まれていない自然画像
- MNIST
- FMNIST
- EMNIST
- SVHN
- gray CIFAR10
- CIFAR10
- CIFAR100
- LSUN CR
- ImageNet
- 自然画像から離れた分布を持つデータ
- Noise
- Adversarial Noise
- Adversarial Samples
Noiseは以下の手順で作られます。
- 半分はトレーニングデータセットに含まれる画像のピクセルを変更、もう半分は完全ランダム。
- ガウシアンフィルタに通す。
- ガウシアンフィルタによるコントラストの低下を防ぐためにコントストのスケーリングを行う。
Adversarial Noiseは上の手順で得られたノイズからスタートし、PGDによって最適化したものです。
以下がMNISTとCIFAR10のその例です
結果
ここではほんの一部の結果だけのせます。
上の段はモデルを騙す(99.9%以上の確信度を出す)ためにランダムなノイズを倍することを考え、そのの平均をとったものです。が指すものは先ほどの数学の話を参照してください。ACETで学習したモデルはかなり巨大なまで耐えてます。
下の段は倍する前のノイズの中で95%以上を超えたものの割合です。ACETではかなりの割合でそのような画像を防げています。