特徴マップ

Feature Map

特徴マップとは

特徴マップ(Feature Map、活性化マップとも呼ばれる)は、CNNの畳み込み層がフィルタを適用した結果として生成される2次元の配列です。入力データから特定のパターンや特徴がどこにどの程度存在するかを空間的に表現したもので、各畳み込み層の出力として複数の特徴マップが生成されます。

表:特徴マップの要点まとめ
ひとことで言うとフィルタが画像のどこに強く反応したかを示す「反応の地図」。
どこで使うCNNの中身を可視化して、モデルが何を見ているか確認するとき。
注意点浅い層は線や色、深い層は物体の部品と、層ごとに見ているものが違う。

特徴マップの階層性

CNNの浅い層で生成される特徴マップは、エッジ、コーナー、色の変化などの低レベルな特徴に対応しています。層が深くなるにつれて、テクスチャ、パーツ、物体全体など、より抽象的で高レベルな特徴が表現されるようになります。この階層的な特徴抽出がCNNの強みです。

図:特徴マップができるまで
1入力画像元の写真
▶
2フィルタを適用縦線用・横線用など
▶
3反応を記録合った場所ほど大きい値
▶
4特徴マップフィルタの数だけ生成

特徴マップのサイズと計算

特徴マップのサイズは、入力サイズ、フィルタサイズ、ストライド、パディングによって決まります。一般的に深い層ほど空間解像度は小さくなり(プーリングやストライドにより)、チャネル数は増加します。出力サイズの計算式はO = (I - K + 2P) / S + 1で表されます(I: 入力サイズ、K: カーネルサイズ、P: パディング、S: ストライド)。

特徴マップの可視化と解釈

特徴マップの可視化は、モデルがどのような特徴に注目しているかを理解するために重要です。Grad-CAMやActivation Maximizationなどの手法を用いて特徴マップを可視化することで、モデルの判断根拠を解釈できます。これはモデルのデバッグや信頼性の向上に役立ちます。