CNNの可視化手法Grad-CAMの紹介~CNNさん、あなたはどこを見ているの?~ |...
-
Upload
toshinori-hanya -
Category
Technology
-
view
317 -
download
5
Transcript of CNNの可視化手法Grad-CAMの紹介~CNNさん、あなたはどこを見ているの?~ |...
半谷
OHS#6CNN の可視化手法 Grad-CAM の紹介
~ CNN さん、あなたはどこを見ているの?~
• 今日においては、 Deep Learning は様々な場面で使われるようになった。• 特に、画像認識(言語処理や音声認識でも使われるが)では、画像からの特
徴抽出に Convolutional Neural Networks (CNN) が使われる。• 精度を上げるため、より深くより複雑な構造になってきている。
• 一方で、解釈するのはどんどん難しくなる。(なんでその答えにたどり着いたの?)
Introduction
Densely Connected Convolutional Networkshttps://arxiv.org/abs/1608.06993
Aggregated Residual Transformations for Deep Neural Networkshttps://arxiv.org/abs/1611.05431
• CNN がどんな情報に反応しているかを可視化する取組み
Understanding CNN
• CNN の解釈ができると嬉しいこと:• 失敗モードを知る(研究/開発者が正しい方向に改善するヒント)• ユーザの信頼を確立する(何を学んだかを確認できる)• 人を超えたときに、なぜそう考えたか教えてもらう
コレハピアノデスネ
Visualizing and Understanding Convolutional Networkshttps://arxiv.org/abs/1311.2901
• モデルの予測にとって重要な領域を可視化する技術• 予測クラスごとに関連の深い領域を確認できる• CNN ベースのモデルに幅広く適用できる( CNN+LSTM など)
Gradient-weighted Class Activation Mapping
Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localizationhttps://arxiv.org/abs/1610.02391
CatDog
Grad-CAM Guided Grad-CAM( 左記二つのくみあわせ)
Guided Backprop(従来手法)
Gradient-weighted Class Activation Mapping
Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localizationhttps://arxiv.org/abs/1610.02391
① 普通に推論
② 対象クラスのみ1 、他を 0 にして
勾配を逆伝播計算
③ 各チャネルで勾配の平均を取り、
重みとする
④ 特徴マップの値に重みをかけて足し合わ
せる
⑤ ピクセルレベルの
従来手法と組み合わせる
• 最終出力 y において、対象クラスのみ1/他を 0 とし、その信号を逆伝播させて、対象の特徴マップでの勾配を求める。これを各チャネルの重み付けに使う。
• それぞれの層で Grad-CAM を可視化してみた例(上段)• 一番深い Conv+ReLU の出力が可視化に適している
• 深い=解像度が低いので、ピクセルレベルの可視化手法と組み合わせる(下段)( Guided Grad-CAM: Guided Backpropagation + Grad-CAM )
Guided Grad-CAM
Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localizationhttps://arxiv.org/abs/1610.02391
class-discriminative+
high resolution
人が見ても納得できる
• 分類問題の失敗モードの分析例• 正解クラスと誤答クラスで、それぞれ Guided Grad-CAM による可視
化
Analyzing failure modes for image classification
Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localizationhttps://arxiv.org/abs/1610.02391
• VQA など、 RNN 系を使っているモデルにも適用可能• 答えと可視化された位置が見事に対応している
Visual Question Answering
Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localizationhttps://arxiv.org/abs/1610.02391
Red
Yellow
Yellow and Red
• なるべくモデルに変更を加えずに Grad-CAM, Guided Grad-CAM ができないものか
Grad-CAM using Chainer framework
• y の grad 属性に対象クラスを 1 とした one hot vector をセットしretain_grad=True として逆伝播
• 対象の Feature map はモデルの順伝播計算( __call__ )の中でname 属性を設定して、計算グラフを逆向きに辿っていってみつける(診断用途で入出力を変えずに実現したいなと。)
• あとは対象の Feature map の grad 属性に入っている勾配情報を使って重みを算出し、 data 属性の情報を使って Grad-CAM を計算する
チャネル毎の重み
Grad-CAM の計算
親戚の家の猫を AlexNet はどう見ているか。
Summary
• CNN の重要性は増しており、その挙動を理解することには価値がある• デバッグ、人の信頼を得る、人が考え方を理解するのに有用
• 可視化手法の紹介• 予測クラスに寄与する領域を可視化する(⇒ Grad-CAM 、(粗いマッ
プ))• ピクセルレベルの可視化手法と組み合わせることで、画像中の何を見て
いるか理解を助けるような情報(図)が得られる。 (Guided Grad-CAM )
• CNN ベースであれば幅広いモデルに適用可能(モデル構造の変更や再学習も不要)
コレハピアノデスネ
・・・多少は気持ちが分かるようになったかな?
Reference
論文• 紹介させていただいた論文:
Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localization ( https://arxiv.org/abs/1610.02391)
• Deconvolution を使った CNN の可視化:Visualizing and Understanding Convolutional Networks ( https://arxiv.org/abs/1311.2901)
• Guided Backpropagation の論文:Striving for Simplicity: The All Convolutional Net ( https://arxiv.org/abs/1412.6806)
実装関係• Grad-CAM 著者らの公式実装: https://github.com/ramprs/grad-cam• Grad-CAM Keras での実装: https://github.com/jacobgil/keras-grad-cam• Guided Backprop の Lasagne 実装:
https://github.com/Lasagne/Recipes/blob/master/examples/Saliency%20Maps%20and%20Guided%20Backpropagation.ipynb