Feature Maps
特徴マップがCNNの「目」としてどのように機能するか解説します。Ultralytics YOLO26がこれらの内部表現を使用してパターンを検出し、コンピュータビジョンを強化する仕組みを学びましょう。
フィーチャーマップは、ニューラルネットワーク内で畳み込みフィルターが入力画像または先行する層を処理した際に生成される基本的な出力です。コンピュータビジョン (CV)の文脈において、これらのマップはデータの内部表現として機能し、モデルが認識するように学習したエッジ、テクスチャ、複雑な幾何学的形状などの特定のパターンを強調します。本質的に、フィーチャーマップは畳み込みニューラルネットワーク (CNN)の「目」として機能し、生ピクセル値を物体検出や分類などのタスクを容易にする意味のある抽象化へと変換します。
フィーチャマップの仕組み#
フィーチャーマップの作成は、畳み込みとして知られる数学的操作によって駆動されます。このプロセスでは、カーネルまたはフィルターと呼ばれる学習可能なパラメータの小さなマトリックスが、入力データの上をスライドします。すべての位置で、カーネルは要素ごとの乗算と加算を実行し、出力グリッド内の単一の値を生成します。
- パターン活性化: 各フィルタは特定のフィーチャを探すように学習されます。フィルタが入力内でそのフィーチャに遭遇すると、フィーチャマップ内の結果値が高くなり、強い活性化を示します。
- 空間的階層: ディープラーニング (DL)のアーキテクチャでは、フィーチャーマップは階層的に配置されます。初期の層は、エッジ検出の線や曲線のような低レベルの詳細を検出するマップを生成します。より深い層は、これらの単純なマップを組み合わせて、顔や車両などの複雑なオブジェクトの高レベルな表現を形成します。
- 次元の変更: データがネットワークを進むにつれて、プーリング層などの操作により、通常、フィーチャーマップの空間次元(高さと幅)が縮小され、同時に深度(チャネル数)が増加します。次元削減と呼ばれることが多いこのプロセスは、モデルが正確なピクセル位置ではなく、特徴の存在に集中するのに役立ちます。
実社会での応用#
フィーチャマップは現代のAIアプリケーションの心臓部であり、システムが人間のように視覚データを解釈することを可能にします。
- 医療診断: 医療画像解析において、モデルはフィーチャーマップを使用してX線やMRIスキャンを処理します。初期のマップは骨の輪郭を強調表示し、より深いマップは腫瘍や骨折などの異常を特定し、医療分野におけるAIのシナリオで医師を支援します。
- 自動運転: 自動運転車は、視覚センサーによって生成されたフィーチャーマップに大きく依存しています。これらのマップにより、車両の車載コンピュータはリアルタイムで車線、歩行者、交通標識を区別できるようになり、これは自動運転車が安全に動作するために不可欠です。
Pythonでフィーチャマップを扱う#
フィーチャーマップは内部構造ですが、アーキテクチャを設計する際にはその寸法を理解することが重要です。次のPyTorchの例は、単一の畳み込み層が入力画像をフィーチャーマップにどのように変換するかを示しています。
import torch
import torch.nn as nn
# Define a convolution layer: 1 input channel, 1 output filter, 3x3 kernel
conv_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, bias=False)
# Create a random dummy image (Batch Size=1, Channels=1, Height=5, Width=5)
input_image = torch.randn(1, 1, 5, 5)
# Pass the image through the layer to generate the feature map
feature_map = conv_layer(input_image)
print(f"Input shape: {input_image.shape}")
# The output shape will be smaller (3x3) due to the kernel size and no padding
print(f"Feature Map shape: {feature_map.shape}")関連概念の区別#
モデル学習中の混乱を避けるために、類似した用語とフィーチャーマップを区別することが役立ちます。
- フィーチャーマップ対フィルター: フィルター(またはカーネル)は画像をスキャンするために使用されるツールであり、モデル重みが含まれています。フィーチャーマップはそのスキャンの結果です。フィルターを「レンズ」と考え、フィーチャーマップをそのレンズを通してキャプチャされた「画像」と考えることができます。
- フィーチャーマップ対埋め込み: どちらもデータを表現しますが、フィーチャーマップは通常、セマンティックセグメンテーションに適した空間構造(高さと幅)を維持します。対照的に、埋め込みは通常、意味を捉えるものの空間的レイアウトを破棄する平坦化された1Dベクトルであり、類似度検索タスクでよく使用されます。
- フィーチャーマップ対活性化: 活性化関数(ReLUなど)は、非線形性を導入するためにフィーチャーマップ内の値に適用されます。マップはこの数学的操作の前と後の両方に存在します。
Ultralyticsモデルとの関連性#
YOLO26のような高度なアーキテクチャでは、フィーチャーマップはモデルの「バックボーン」と「ヘッド」において極めて重要な役割を果たします。バックボーンはさまざまなスケール(特徴ピラミッド)で特徴を抽出し、モデルが小物体と大型小物の両方を効果的に検出できるようにします。トレーニングにUltralytics プラットフォームを活用するユーザーは、これらのモデルがどのように機能するかを視覚化でき、精度や再現率などの指標を通じて基盤となるフィーチャーマップの有効性を間接的に観察できます。これらのマップを最適化するには、アノテーション付きデータセットでの広範なトレーニングが含まれ、多くの場合、事前学習済みモデルから新しいタスクへ知識を転移するために特徴抽出のような技術が活用されます。






