本文へ移動

G検定(ジェネラリスト検定)

ぐらっどきゃむ

Grad-CAM

Grad-CAM

Grad-CAMは、CNNが画像のどの領域を根拠にして特定のクラスを予測したかを可視化する手法です。CAMを一般化したもので、ネットワークの構造を変えたり学習し直したりせずに、全結合層を持つCNNや、画像キャプション生成・視覚質問応答(VQA)に使われるCNNにも適用できます。モデルの解釈性を高める手法の一つで、予測の誤りの原因を調べるときなどに使われます。

詳しい説明

Grad-CAMが答えようとする問い

画像分類のCNNが、ある画像を犬と判定したとします。そのとき、モデルは画像のどこを見て犬と判断したのでしょうか。Grad-CAM(Gradient-weighted Class Activation Mapping)は、この問いに対して、特定のクラスの判断にとって重要だった画像上の領域を示す地図(クラスごとに異なる位置の地図)を作る手法です。2017年にセルバラジュ(Selvaraju)らが論文で提案しました。

Grad-CAMを理解するには、先に登場したCAMという手法と、その制約を知っておく必要があります。

前提となる手法CAMとその制約

CAM(Class Activation Mapping)は、ジョウ(Zhou)らが提案した、画像分類のCNNが判断に使った特徴的な領域を特定するための手法です。

ただしCAMには、使えるCNNの構造が限られるという弱点がありました。CAMが使えるのは、次の順に層が並ぶ特定の構造のCNNだけです。

1. 畳み込み層が出力する特徴マップ
2. その直後のグローバル平均プーリング

3. その直後のsoftmax層(予測を出す層)

ここでグローバル平均プーリングとは、特徴マップ1枚(1チャネル)について、幅と高さの方向にあるすべての値を平均し、1つの数値にまとめる操作です。

つまりCAMでは、特徴マップが予測の層のすぐ手前に来ていなければならず、間に全結合層を挟むことができません。Grad-CAMの論文は、この点について次のように指摘しています。

  • こうした構造のネットワークは、画像分類のようなタスクでは一般的なネットワークより精度が劣ることがある
  • 画像キャプション生成やVQAのような他のタスクには、そもそも適用できないことがある

言い換えると、CAMを使うにはモデルの構造を変える必要があり、その結果、モデルの透明性(説明しやすさ)と引き換えに、モデルの複雑さや性能をあきらめることになります。

Grad-CAMはどう制約を解決したか

Grad-CAMは、勾配の情報を使って特徴マップを組み合わせるという新しい方法を導入しました。この方法ではネットワークの構造を一切変える必要がありません。そのため、既存の高性能なモデルをそのまま解釈の対象にでき、解釈しやすさと精度のどちらかを選ぶという二者択一を避けられます。

論文は、Grad-CAMがCAMの一般化であり、次のようなはるかに幅広いCNNに、構造の変更も再学習もなしで適用できると述べています。

  • 全結合層を持つCNN(例: VGG)
  • 画像キャプション生成のように、構造を持った出力を扱うCNN
  • マルチモーダル入力を扱うタスクや、強化学習に使われるCNN

また、全結合層を持たず畳み込み層だけで構成された構造では、CAMはGrad-CAMの特殊な場合にあたる、という関係も示されています。つまりGrad-CAMはCAMを置き換えるだけでなく、CAMを内側に含む、より広い枠組みです。

仕組み: 勾配から重要度の重みを求める

勾配とは

勾配とは、ある値をほんの少し変えたときに、別の値がどれだけ、どちら向きに変わるかを表す量です。ここでは、特徴マップのある位置の値を少し変えたときに、特定のクラスのスコアがどれだけ変わるかを表します。勾配が大きい位置ほど、そのクラスの判断に強く影響していると考えられます。

手順

あるクラスc(例: 犬)についての位置の地図を作る手順は、次のとおりです。

1. クラスcのスコアを用意します。ここで使うのは、softmaxを適用する前のスコアです。
2. そのスコアについて、畳み込み層の特徴マップの各値(活性化)に対する勾配を計算します。この勾配は、出力側から畳み込み層へ逆向きに流れてくる情報です。

3. 求めた勾配を、特徴マップごとに幅と高さの方向でグローバル平均プーリングします。すると、特徴マップ(チャネル)1枚につき1つの数値が得られます。これが、クラスcの判断にとってその特徴マップがどれだけ重要かを表す重みになります。

4. この重みを使って特徴マップを組み合わせ、クラスcについての位置の地図を得ます。

なお論文では、勾配をまとめる方法として、平均をとるグローバル平均プーリングのほうが、最大値をとるグローバル最大プーリングよりも実験的にうまく働いたと報告されています。

なぜ最後の畳み込み層を使うのか

Grad-CAMは、CNNの最後の畳み込み層に流れ込む勾配の情報を使います。論文はその理由を次のように説明しています。

  • CNNの深い層ほど、より高いレベルの視覚的なまとまり(物体の部品など)を捉えるとされている
  • 畳み込み層は画像上の位置の情報を自然に保っているが、全結合層ではその位置の情報が失われる

このため、最後の畳み込み層は、高いレベルの意味の情報と詳しい位置の情報とのバランスが最もよい層だと期待できます。この層のニューロンは、画像の中からクラスに固有の意味のある情報(例えば物体の部品)を探しており、Grad-CAMは勾配を使ってそれぞれに重要度を割り当てます。

何に使われているか

論文では、Grad-CAMによる可視化の応用として、次のような例が挙げられています。

  • 画像分類: 現在のCNNがなぜ予測を誤るのかを調べる手がかりになります。一見すると不合理な予測にも、画像のどこを見ていたかを確かめると、もっともな理由があることが分かる場合がありました。
  • 画像キャプション生成とVQA: CNNとLSTMを組み合わせた一般的なモデルが、画像の領域と文章の対応を明示的に与えるデータで訓練されていないにもかかわらず、判断の根拠となる画像の領域を意外なほどうまく特定できていることが明らかになりました。

このようにGrad-CAMは、モデルの構造に手を加えずに、そのモデルが何を根拠に判断しているかを人が確かめるための道具として使われます。

試験で問われること

G検定

  • CAMが適用できるのは、畳み込み層の特徴マップの直後にグローバル平均プーリング、その直後にsoftmax層が続く構造のCNNに限られるという制約を、Grad-CAMがどのように取り除いたか説明できますか。
  • Grad-CAMが、ネットワークの構造の変更や再学習なしに、全結合層を持つCNN(VGGなど)や画像キャプション生成・VQAのモデルにも適用できる点を確認しておきましょう。
  • Grad-CAMの重要度の重みが、softmax適用前のクラスのスコアを畳み込み層の特徴マップで微分した勾配を、幅と高さの方向にグローバル平均プーリングして求められるという手順を説明できますか。
  • 全結合層を持たない構造ではCAMがGrad-CAMの特殊な場合になるという、2つの手法の関係を確認しておきましょう。

最終更新日: 2026/09/23