用語比較
CAMとGrad-CAMの違い|重みの求め方と適用できるモデル(G検定)
CAMとGrad-CAMの違いは特徴マップに掛ける重みの求め方で、CAMは出力層の重みを使い、Grad-CAMは勾配から重みを求めます。どちらも画像分類のCNNが画像のどの領域を見て判断したかをヒートマップで示す手法です。
G検定のモデルの解釈性では、全体平均プーリングを挟む特定の構造のCNNに限るのがCAM、構造を変えずに使えるのがGrad-CAMと切り分けます。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
CAMとGrad-CAMの要点
CAM
最終の出力層の直前で、畳み込みの特徴マップに全体平均プーリング(GAP)をかけ、その特徴を全結合層に入力する構造のCNNを使う。出力層の重みを畳み込み特徴マップへ射影し直して、そのクラスの識別に使われた画像領域を示す。論文は、GAPが画像レベルのラベルだけで学習しても局在化の能力をもたらすと述べる。
Grad-CAM
目的のクラスの出力に対する勾配が、最終の畳み込み層へ流れ込む量を使って、そのクラスの予測に重要な画像領域を強調する粗いマップを作る。論文は、全結合層を持つCNN(VGGなど)にも、構造の変更や再学習なしで適用でき、CAMの一般化だと述べる。
違いを表で確認
| 比較軸 | CAM | Grad-CAM |
|---|---|---|
| 特徴マップの重み | 出力層の重み(クラスと各特徴マップを結ぶ重み) | 目的のクラスの出力に対する勾配を、縦横で全体平均した値 |
| 必要なモデルの構造 | 最終の畳み込み層のあとにGAPを置く、限られた構造のCNN | 全結合層を持つCNN(VGGなど)にも適用できる |
| 構造の変更・再学習 | GAPを挟む構造にするため、構造の用意が必要 | 不要(構造を変えず、再学習もしない) |
| ヒートマップの作り方 | 特徴マップを重みで足し合わせる | 特徴マップを重みで足し合わせ、正の影響だけを残すためにReLUをかける |
| 位置づけ | もとになった手法 | CAMを一般化した手法 |
| 選択肢で探すキーワード | 全体平均プーリング(GAP)、出力層の重み | 勾配、構造を変えない、再学習不要、最終畳み込み層 |
G検定の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
どちらも「注目領域の可視化」としか覚えていない人
どちらも、最終の畳み込み層の特徴マップを重みで合成してヒートマップにします。違うのは重みの出どころで、CAMは出力層の重み、Grad-CAMは勾配です。設問の手がかり語が「勾配」なら、Grad-CAMです。
VGGのような全結合層を持つモデルに使えるか迷う人
Grad-CAMの論文は、全結合層を持つCNN(VGGなど)に、構造の変更や再学習なしで適用できると述べています。CAMは、GAPを挟む構造のCNN向けの手法です。構造を変えずに既存のモデルを説明したい場面は、Grad-CAMの出番です。
LIMEやSHAPと混ぜてしまう人
CAMとGrad-CAMは、画像分類のCNNの内部(特徴マップ)を使って注目領域を示す手法です。LIMEは任意の分類器を局所的に説明し、SHAPは特徴量ごとに重要度の値を割り当てます。画像の領域を示すか、特徴量ごとの値を示すかで見分けます。
具体例で使い分ける
例 1
2枚の特徴マップからCAMのヒートマップを作る
最終の畳み込み層に、2×2の特徴マップが2枚あるとします(数値は説明用の自作です)。特徴マップ1は左上だけが2で、他は0。特徴マップ2は右下だけが3で、他は0です。「猫」クラスの出力層の重みは、特徴マップ1が1、特徴マップ2が-1とします。
- CAMは、特徴マップを重みで足し合わせます。1×(特徴マップ1) + (-1)×(特徴マップ2) です。
- 左上は 1×2 + (-1)×0 = 2、右下は 1×0 + (-1)×3 = -3、右上と左下は0です。
- ヒートマップは、左上が2、右下が-3、他が0になります。左上が「猫」の判断を支えた領域、右下は「猫」に反する領域として読めます。
結論: CAMの重みは、出力層の重み(ここでは1と-1)をそのまま使います。
例 2
同じ特徴マップからGrad-CAMのヒートマップを作る
同じ2枚の特徴マップで、「猫」の出力に対する勾配が、特徴マップ1の4マスすべてで0.5、特徴マップ2の4マスすべてで-0.25だったとします(これも自作の数値です)。
- Grad-CAMは、勾配を縦横で全体平均して重みにします。特徴マップ1は 0.5、特徴マップ2は -0.25 です。
- 重みを掛けて足し合わせると、左上は 0.5×2 + (-0.25)×0 = 1、右下は 0.5×0 + (-0.25)×3 = -0.75、他は0です。
- 最後にReLUをかけて、正の影響だけを残します。左上が1で、右下の -0.75 は0になり、ヒートマップは左上だけが光ります。
結論: Grad-CAMの重みは、勾配の平均から求めます。構造に出力層の重みを使う縛りが無いので、全結合層を持つCNNにも広げられます。
例 3
設問の手がかり語で見分ける
「既存の学習済みCNNを、構造も変えず再学習もせずに、勾配を使って画像の注目領域を示す手法はどれか」という設問を考えます。
- 「勾配」「構造を変えない」「再学習なし」は、Grad-CAMの特徴です。
- 「全体平均プーリング」「出力層の重みを射影」が書かれていれば、CAMです。
- 「任意の分類器を局所的に説明」ならLIME、「特徴量ごとに重要度の値」ならSHAPです。
結論: 手がかり語が「勾配」ならGrad-CAM、「全体平均プーリング」ならCAMと決めると、選択肢を絞れます。
問題文から答えを選ぶ手順
- 1
説明の対象を確認する
画像のどの領域が効いたかを問うなら、CAMかGrad-CAMです。特徴量ごとの重要度ならSHAPなどを検討します。
- 2
重みの出どころを確認する
出力層の重みならCAM、目的のクラスの出力に対する勾配ならGrad-CAMです。
- 3
モデルの構造と再学習の条件を確認する
GAPを挟む構造に限られるならCAM、全結合層を持つCNNに構造を変えず適用するならGrad-CAMです。
- 4
ヒートマップの作り方を確認する
重みで特徴マップを足し合わせ、さらにReLUで正の影響だけを残すならGrad-CAMの手順です。
試験での見分け方
- 1全体平均プーリング(GAP)と出力層の重みで領域を示すのはCAM。
- 2目的のクラスの出力に対する勾配から重みを求めるのはGrad-CAM。
- 3構造の変更や再学習なしで、VGGなどの全結合層を持つCNNに適用できるのはGrad-CAM。
- 4Grad-CAMはCAMを一般化した手法。
- 5任意の分類器を局所的に説明するのはLIME、特徴量ごとの値はSHAP。
- 6CAMはClass Activation Mapping、Grad-CAMはGradient-weighted Class Activation Mappingの略。
誤答しやすい選択肢
CAMとGrad-CAMの違いを、出力の見た目の違いだと考える
修正: どちらも特徴マップを重みで合成したヒートマップです。違いは、重みを出力層の重みから得るか、勾配から得るかにあります。
Grad-CAMは再学習が必要だと考える
修正: 論文は、構造の変更や再学習なしで適用できると述べています。
CAMとGrad-CAMを、表形式データの特徴量の重要度を出す手法だと考える
修正: どちらも画像分類のCNNの特徴マップを使い、画像の領域を示す手法です。特徴量ごとの値を示すのはSHAPなどです。
Grad-CAMの勾配を、入力画像の全画素ごとの勾配だと考える
修正: Grad-CAMが使うのは、最終の畳み込み層の特徴マップに流れ込む勾配を、縦横で平均した重みです。
確認問題
Q1全体平均プーリング(GAP)を挟む構造と、出力層の重みで注目領域を示す手法は?
答え: CAM
CAMは、GAPの特徴を出力層に入力する構造で、出力層の重みを特徴マップへ射影し直して領域を示します。
Q2構造を変えず、再学習もせずに、VGGのような全結合層を持つCNNの注目領域を示せる手法は?
答え: Grad-CAM
Grad-CAMは、勾配から重みを求めるので、CAMのような構造の縛りがなく、全結合層を持つCNNにも適用できます。
Q3Grad-CAMの重みは、何から求める?
答え: 目的のクラスの出力に対する勾配を、特徴マップの縦横で平均した値
勾配が最終の畳み込み層へ流れ込む量を縦横で全体平均して、特徴マップごとの重みにします。
Q4特徴量ごとに重要度の値を割り当てる手法は、CAM・Grad-CAM・SHAPのどれ?
答え: SHAP
SHAPは、特定の予測に対して各特徴量に重要度の値を割り当てます。CAMとGrad-CAMは画像の領域を示します。
到達チェック
- CAMの重みが出力層の重みで、Grad-CAMの重みが勾配から来ると説明できる
- Grad-CAMが構造の変更や再学習なしで使える理由を説明できる
- Grad-CAMでReLUをかける理由(正の影響だけを残す)を説明できる
- CAM・Grad-CAMとLIME・SHAPの説明の単位の違いを説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- 尤度と確率の違い|固定するのがパラメータかデータか、足して1になるか(G検定)
尤度と確率の違いを、固定するもの(パラメータかデータか)・動かすもの・足して1になるか・事後確率との混同の4点で整理。コイン投げの計算例と確認問題つき。G検定の最尤法の設問に使える。
- 単方向RNNと双方向RNNの違い|見える文脈と使える課題(G検定)
単方向RNNと双方向RNNの違いを、読む向き・各時刻で見える文脈・出力の次元・向く課題の4点で整理。4語の文で見える範囲を数える例と確認問題つき。G検定のRNN・双方向RNNの設問に使える。
- ストライドとパディングの違い|CNNの出力サイズを7×7の入力で手計算(G検定)
ストライドはフィルタを動かす幅、パディングは入力のまわりに値を足す幅です。出力の幅は(W−F+2P)/S+1。7×7の入力に3×3のフィルタを当て、S=1・P=0で5、P=1で7、S=2・P=0で3になる手計算で違いを整理します。
よくある質問
QCAMとGrad-CAMは何が違う?
どちらも画像分類のCNNの注目領域をヒートマップで示します。CAMは出力層の重みで特徴マップを合成し、Grad-CAMは目的のクラスの出力に対する勾配から重みを求めます。
QGrad-CAMはCAMの上位互換?
Grad-CAMの論文は、Grad-CAMをCAMの一般化と位置づけています。構造の変更や再学習なしで、全結合層を持つCNNにも使えるのが違いです。
QGrad-CAMのReLUは何のため?
論文は、目的のクラスに正の影響を持つ特徴だけに関心があるため、特徴マップの線形結合にReLUをかけると述べています。
QG検定の出題範囲に含まれる?
JDLAの公式シラバスでは、モデルの解釈性のキーワードにCAMとGrad-CAMが並んでいます。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
