CAM (G検定)

CAM

1. 定義と概要

CAM(Class Activation Mapping)とは、画像分類を行うCNNが、入力画像のどの領域に着目してそのクラスと判断したかをヒートマップとして可視化する手法です。2016年に、Zhou氏らの研究グループがCVPR(コンピュータビジョン分野の主要な国際会議)で発表した論文「Learning Deep Features for Discriminative Localization」で提案されました。

仕組みの骨格は加重和にあります。最終畳み込み層が出力する複数の特徴マップ(畳み込み層が画像から抽出した特徴を表す、チャンネルごとの二次元データ)を使います。これを出力層に近い重みで加重和(複数の値にそれぞれ重みをかけてから足し合わせる計算)することで、クラスごとの着目領域を示すマップを得ます。

従来のCNNは、畳み込み層で得た特徴マップを1次元に平坦化して全結合層(前の層のすべてのノードと次の層のすべてのノードを結びつける層)に入力し、クラスを分類する構成が一般的でした。この構成では、最終的な分類判断の根拠が画像上のどこにあるのかを直接読み取れない点が弱点です。

CAMは、畳み込み層の直後にグローバルアベレージプーリング(GAP。特徴マップをチャンネルごとに1つの平均値へ集約する処理)層を置き、その出力を1層の全結合層でそのままクラス分類する構造に限定しました。この限定によって、出力層の重みを最終畳み込み層の特徴マップに直接投影し、ヒートマップを作れることを示した点が新しさです。

2. 試験対策ポイント

まず整理したいのは、CAMが畳み込み層の直後にGAP層を配置し、その出力をクラス数分のノードを持つ1層の全結合層(softmax層。各クラスに属する確率を出力する層)に直結するという特定のネットワーク構造を前提とする点です。中間に複数の全結合層を持つ一般的なCNN構成には、そのままでは適用できません。

既存の学習済みモデルにCAMを使う場合、中間の全結合層をGAP層に置き換えたうえで、ファインチューニング(学習済みモデルの構造の一部を変更し、追加で学習し直すこと)と呼ばれる再学習が必要です。この改造と再学習という手間が、CAMを扱ううえで整理しておきたい制約です。

CAMの計算の骨格は、GAP層とクラス出力層を結ぶ重み(各特徴マップがそのクラスの判定にどれだけ寄与するかを表す係数)を使うところにあります。この重みで最終畳み込み層が出力する複数の特徴マップを加重和し、ヒートマップを作る流れです。

この構造上の制約を解消したのが後継手法のGrad-CAMです。GAP層の有無を問わず勾配(出力の値が入力やモデル内部の値の変化にどれだけ敏感に反応するかを表す量)を使うことで、モデルを改造・再学習せず任意のCNNへ適用できるようになりました。

CAMとGrad-CAMの関係は、構造上の制約とその解消として整理される論点です。Grad-CAMやその発展形であるGuided Grad-CAMの仕組み自体は、別の解説にゆだねます。

3. 関連概念との比較・相違点

Grad-CAMとの最大の違いは、構造上の制約の有無にあります。観点ごとに並べると、両者の位置づけがはっきりします。

観点 CAM Grad-CAM
前提とする構造 GAP層と1層の全結合層で直結する構造に限定 構造を問わず任意のCNN
既存モデルへの適用 全結合層をGAP層に置き換えて再学習が必要 改造・再学習なしでそのまま適用できる
着目領域の求め方 出力層に近い重みで特徴マップを加重和 勾配を使って着目領域を求める

CAMがGAP層を持つ特定の構造に縛られるのに対し、Grad-CAMは勾配を使う仕組みのため、GAP層の有無を問わず適用できます。モデルを改造せずに使えるかどうかは実務上の使い勝手に直結するので、この一点が両者を分ける決め手になります。仕組みの詳細な内部比較は、Grad-CAMを主役とする別の解説にゆだねます。

全結合層を複数用いる一般的なCNN構成との関係も、あわせて整理しておきたいところです。中間層に複数の全結合層を持つ画像分類モデルには、CAMをそのまま適用できません。

GAP層への置き換えと再学習が前提となるため、既存モデルの構造を大きく変えたくない場面では、この制約が採用の判断材料になります。取り違えやすいのは、CAMが万能な可視化手法ではなく、対応できるネットワーク構造が限られている点です。

4. ビジネス・実務での活用シナリオ

医療画像診断の分野では、病変検出モデルがどの領域を根拠に判定したかをCAMで可視化し、医師が診断の妥当性を確認する手がかりにする使い方があります(モデルの構造がGAP層を持つ前提の場合に限られます)。判定結果だけでなく根拠となった領域まで示せることが、モデルの提案を診療の文脈と照らし合わせる際の材料になります。

製造業の外観検査では、CAMで不良判定の根拠領域を可視化し、モデルが製品の欠陥部分ではなく背景や照明のムラに反応していないかを検証します。誤った根拠に基づく判定を放置すると検査ラインの信頼性そのものが揺らぐため、根拠の可視化を品質保証の工程に組み込む意義があります。

AI開発・モデル検証の現場では、分類モデル(画像などを特定のクラスに割り当てるモデル)の判断根拠を可視化して、学習データの偏り(バイアス)や誤学習の兆候を早期に発見する検証プロセスにCAMが組み込まれます。数値上の精度だけでは見抜けない誤学習を、根拠領域という別の切り口から捉え直せる点が、CAMを検証工程に加える理由です。

5. 要点まとめ

  • CAMとは、CNNが画像分類の際にどの領域に着目したかをヒートマップとして可視化する手法で、2016年にZhou氏らが提案しました。
  • GAP層を持ち出力層に1層の全結合層で直結する特定のネットワーク構造でしか使えず、既存モデルに使うには全結合層をGAP層に置き換えて再学習する必要があります。
  • この構造上の制約を解消した後継手法がGrad-CAMで、モデルを改造・再学習せず任意のCNNに適用できる点がCAMとの違いとして整理されます。

6. 確認問題

問1CAM(Class Activation Mapping)は、CNNが画像分類を行う際にどの領域に着目してそのクラスと判断したかをヒートマップとして可視化する手法である。

解答・解説をみる

○ 正しい

CAMの定義そのものの記述です。最終畳み込み層が出力する特徴マップを、出力層に近い重みで加重和し、着目領域を示すマップを得ます。

問2CAMは、畳み込み層の直後にグローバルアベレージプーリング(GAP)層を配置し、その出力を1層の全結合層でクラス分類する特定の構造を前提とする手法である。

解答・解説をみる

○ 正しい

CAMはGAP層を持ち出力層に1層の全結合層で直結する構造に限定されます。この構造上の制約が、後継手法のGrad-CAMとの違いにつながります。

問3CAMは任意の学習済みCNNに構造を変更せずそのまま適用でき、この汎用性の高さが後継手法のGrad-CAMとの違いである。

解答・解説をみる

× 誤り

正しくは逆の関係にあります。CAMはGAP層を持つ特定の構造に限定され、既存モデルに使うには全結合層をGAP層に置き換えて再学習する必要があります。改造・再学習なしに任意のCNNへ適用できるのは、Grad-CAM側の特徴です。