1行定義
Grad-CAMとは、CNNが画像のどの部分を根拠に判断したかを、出力に対する勾配を使ってヒートマップで示す可視化手法のことです。
くわしく
Grad-CAM(Gradient-weighted Class Activation Mapping)は、画像認識のCNNが「画像のどこを見てその判断をしたか」を、色の濃淡で示す手法です。2016年にSelvarajuらが発表しました。説明可能AI(XAI)の代表的な手法の1つです。
仕組み
CNNの最後の畳み込み層は、多数の特徴マップを出力します。それぞれの特徴マップは、「耳のような形」「毛並みの模様」など、何らかの特徴が画像のどこにあるかを表します。
Grad-CAMは、注目したいクラス(たとえば「猫」)のスコアを、各特徴マップで微分した勾配を求めます。勾配をマップ全体で平均した値を、その特徴マップの重要度とします。重要度で重み付けして特徴マップを足し合わせ、ReLU関数で正の部分だけを残すと、そのクラスの判断に効いた領域を示すヒートマップが得られます。
CAMとの違い
もとになったCAM(2015年)は、最後の畳み込み層の直後にグローバルアベレージプーリング(GAP)を置き、その後に出力層をつなぐ構造が前提です。そうでないモデルに使うには、構造を変えて学習し直す必要がありました。Grad-CAMは重みを勾配から計算するため、全結合層をもつ一般的なCNNにも、構造を変えず再学習もせずに適用できます。
使いどころと注意
モデルが妥当な根拠で判断しているかの確認に役立ちます。一方、最後の畳み込み層の特徴マップは入力画像より小さいため、入力画像の大きさに拡大して重ねると、ヒートマップは粗くなります。細かい模様まで見るには、Guided Backpropagationと組み合わせたGuided Grad-CAMを使います。また、主にCNNが対象で、モデルの種類を問わない手法にはLIMEやSHAPがあります。
覚え方
「勾配(Grad)で重みを決めるCAM」と覚えます。
G検定での出題
出題のされ方
CNNの判断根拠をヒートマップで示す手法であること、勾配から特徴マップの重みを求める仕組み、CAMとの違い、LIMEやSHAPなどモデルを問わない手法との使い分けが問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Grad-CAMは、注目するクラスのスコアを最後の畳み込み層の特徴マップで微分した勾配から、各特徴マップの重要度を求める。
答えを見る
答え ◯ 正しい
勾配を特徴マップ全体で平均して重要度とし、それで重み付けした特徴マップの和にReLU関数をかけてヒートマップを作ります。
-
Grad-CAMのヒートマップは、最後の畳み込み層の特徴マップから作るため、画素単位の細かい模様までは表しにくい。
答えを見る
答え ◯ 正しい
特徴マップは入力画像より小さいため、拡大して重ねると粗い表示になります。細部まで見たいときはGuided Grad-CAMを使います。
-
Grad-CAMは、モデルの種類を問わず、決定木や勾配ブースティングの判断根拠も同じ方法で可視化できる。
答えを見る
答え × 誤り
Grad-CAMは畳み込み層の特徴マップと勾配を使うため、主にCNNが対象です。モデルの種類を問わない手法には、LIMEやSHAPがあります。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目33 モデルの解釈性)
- Ramprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, Dhruv Batra, Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (2016)
- Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba, Learning Deep Features for Discriminative Localization (2015)