大分前から簡単に確認しようと思っていたSmoothGradの論文を読んでみる.
論文はこちら
また筆者らはサイトにてサンプル等が見れるようにしているので参考まで
SmoothGradのポイント
・勾配ベースの反応マップは以下二つのスムージングでより鮮明になる
・一つ目は小さなノイズを加えたたくさんの画像から作られた平均反応マップの作成.これは非常にスムージングの効果があった。
・二つ目はランダムなノイズが付与されたデータで訓練も行うことでより鮮明さを強化することができた.(訓練中に入力画像にノイズを加えるとよいことは1995年から分かっていたが、反応マップの可視化においても有用であると確認)
・ほかの勾配手法と合わせることで可視化をより改善することができる.
・SmoothGradの作戦はとてもシンプル。上記の一つ目で書いたように1枚の入力画像に複数のノイズをかけてそれらからできる複数の反応マップの平均を取る.
SmoothGrad論文斜め読み
少し値を変更するだけで、在るクラスcの識別スコアを大きく変えるピクセルxがあれば、それが識別に寄与しているのは言うまでもない.xが強く影響を与えているピクセルということになるので、xの領域を可視化すればよい.
既存手法では反応箇所がはっきりせず、ノイズが載ったような画像になってしまう.
勾配を影響度の指標として現れる別の問題に”さちること”もあげられる.
小さい話
・符号付の結果が得られるときにImageNetのような色はそれほど重要ではないタスク(物の色が変わっても構造で判定しているため)では絶対値を取ることで鮮明な画像になる.一方でMNISTのような常に文字が白の場合は該当クラスがプラスになるため、符号はそのままにすべき模様.
・可視化のマップにおいて平均より飛びぬけた値を持つ画素が出てくるが適宜に小さくしないと他の画素が相対的に暗くなってしまう.
・入力画像とマップを重ね合わせようとしたときに入力画像の黒い部分とかは掛け合わせたらマップが反応していても黒くなってしまう.
SmoothGradのハイパーパラメータ
SmoothGradを行うにあたり二つのハイパーパラメータが追加される.
・ノイズを加えるための標準偏差σ
・平均化をするためのサンプル数n
シグマにおいては10~20%ぐらいにすると元画像の構造と鮮明な反応マップのちょうどよいバランスを取った形になる。Inceptionにおいては画像において適切な値は異なる.
平均化するためのサンプル数は数を増やせば増やすほどスムーズになっていく.
他の既存手法との比較
これらの可視化は評価が一般に難しいが、われわれは既存の評価と同様に二つの質の点から評価を行う.
1.視覚一貫性の評価
注目している物体にのみ反応して、背景は反応しないこと
2. 可視化識別性能の評価
猿とスプーンが写っているときに猿の判定を行った場合は、猿周辺画素が反応することを期待している。このときにスプーンに反応してはならない.
まず、評価1に関して、以下の結果になっている.
200枚の画像を確認したところ、SmoothGradはIntegrated Gradientsと生の勾配よりよい結果を得ていることを確認した。Guided BackPropはより鮮明な可視化が行えているが一方で背景がのっぺりしていると失敗していることがわかる.一方でSmoothGradはそういった背景においても他のどの手法よりもよいことが伺える.
次に評価2に鑑定以下のような結果になっている.
まず二つ以上の物体が写っている画像において、一つのクラスの反応をM1(x)として、もう片方のクラスをM2(x)で反応マップをそれぞれ作成する.両方とも[0,1]になるようにスケールしおて、M1(x)-M2(x)1を行っている.その後-1, 0, 1をblue gray, redになるように塗り分けたのが結果.こちらの評価でもSmoothGradが他より良いことがわかる.
結果画像
- MNISTのデータにおいて学習時と評価時にノイズを加えることの効果
