Grad-CAMとは

グラッドカムGradient-weighted Class Activation Mapping略語 Grad-CAM

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などモデルを問わない手法との使い分けが問われます。

◯×チェック

  1. Grad-CAMは、注目するクラスのスコアを最後の畳み込み層の特徴マップで微分した勾配から、各特徴マップの重要度を求める。

    答えを見る

    答え ◯ 正しい

    勾配を特徴マップ全体で平均して重要度とし、それで重み付けした特徴マップの和にReLU関数をかけてヒートマップを作ります。

  2. Grad-CAMのヒートマップは、最後の畳み込み層の特徴マップから作るため、画素単位の細かい模様までは表しにくい。

    答えを見る

    答え ◯ 正しい

    特徴マップは入力画像より小さいため、拡大して重ねると粗い表示になります。細部まで見たいときはGuided Grad-CAMを使います。

  3. Grad-CAMは、モデルの種類を問わず、決定木や勾配ブースティングの判断根拠も同じ方法で可視化できる。

    答えを見る

    答え × 誤り

    Grad-CAMは畳み込み層の特徴マップと勾配を使うため、主にCNNが対象です。モデルの種類を問わない手法には、LIMEやSHAPがあります。

練習問題

Grad-CAMの問題(4問)
  1. 説明可能AIの代表的手法
  2. Grad-CAMによるモデルの検証
  3. 解釈手法の弱点と注意点
  4. 要件に合う説明手法の選択

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術33

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習