Grad-CAM(グラッド・カム)とは?新人エンジニア向けにやさしく解説

こんにちは。ゆうせいです。
今回は、ディープラーニングで画像認識モデルを「説明可能にする技術」として有名な、
Grad-CAM(グラッド・カム)について、新人エンジニアの方向けにわかりやすく解説します。
「CNNの中身を可視化できるって聞いたけど、どういう仕組み?」
「Grad-CAMって何が“グラディエント”で何が“CAM”なの?」
そんな疑問に、名前の由来・仕組み・使い方・活用シーンまで、順を追ってお答えします!
結論!Grad-CAMとは?
CNNベースの画像認識モデルが「どこを見て判断したか」を、ヒートマップで可視化する手法です。
Grad-CAM は正式には
Gradient-weighted Class Activation Mapping
と呼ばれ、分類だけでなく物体検出などでも応用される技術です。
名前の意味:Grad-CAM の由来
略語 | 意味 |
---|---|
Grad | Gradient(勾配) |
CAM | Class Activation Map(クラス活性マップ) |
つまり Grad-CAM とは:
「あるクラスに関する勾配情報を使って、そのクラスがどの領域に注目していたかを可視化する」手法
どういう仕組み?流れをざっくり説明
Grad-CAM の可視化は以下のステップで行われます:
ステップ①:画像をCNNに入力して分類結果を得る
たとえば「犬」と予測された画像。
ステップ②:対象のクラス(犬)の出力スコアに対する勾配を計算
最後の畳み込み層の出力(特徴マップ) に対して、
「クラススコア 」との勾配
を求めます。
ステップ③:チャネルごとの重要度(重み)を計算
特徴マップごとに、勾配の平均をとって重み( )を計算:
ここで は特徴マップのサイズ(i × j)
ステップ④:ヒートマップを生成
重み付き合成:
がヒートマップ(画像と同じ形)
- ReLU でマイナスの影響をカット
ステップ⑤:元画像に重ねて可視化!
→ モデルが「どこを見て判断したか」が一目瞭然に!
図で直感的に理解
[画像入力]
↓
[特徴抽出(CNN)]
↓
[最終畳み込み層出力:A^k]
↓ ↑
[分類スコア:y^c] ← 勾配 ∂y^c/∂A^k
↓
[重み α^c_k を計算]
↓
[重み付き和 + ReLU]
↓
[ヒートマップ(Grad-CAM)]
Grad-CAMのメリットと使いどころ
メリット
- モデルの判断根拠を視覚的に確認できる
- 説明可能性(Explainability)を高める
- 医療・安全分野でも有効
よくある用途
分野 | 用途例 |
---|---|
画像分類 | 犬と猫、どこを見て判断したかを確認 |
医用画像解析 | 病変部位に注目しているか確認 |
モデルのデバッグ | 関係ない場所を見ているか可視化 |
注意点・限界
- 最後の畳み込み層の解像度に依存(粗いマップになることがある)
- 対象クラスを指定しないと出ない(予測スコアが必要)
- ノイズが多くなることもあり、完全な解釈とは言いきれない
覚え方のコツ!
✅ Grad-CAM =
Grad(勾配)× CAM(クラスの注目マップ)
- 勾配を使って、CNNがどこを見ていたかを炙り出す
- 出力に対する“感度”を空間的にマッピング
→ だから「Grad(勾配)-CAM(注目)」!
今後の学習の指針
Grad-CAMを理解したら、以下のことにもチャレンジしてみましょう:
- 実際にPyTorchやTensorFlowでGrad-CAMを実装して可視化
- CAMやScore-CAMなど他の手法と比較してみる
- Grad-CAM++(より細かい情報)にも挑戦してみる
- 画像以外(テキスト、音声)でのGrad-CAM的手法を調べてみる
Grad-CAMは、ディープラーニングモデルを“信頼できるもの”に変える大事な技術です。
名前の意味・仕組み・数式をセットで理解して、しっかり活用していきましょう!
生成AI研修のおすすめメニュー
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。