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}")関連する概念との違い#
モデルのトレーニング中の混乱を避けるため、特徴マップと類似した用語を区別すると役立ちます。
- 特徴マップとフィルターの違い:フィルター(またはカーネル)は画像をスキャンするためのツールであり、モデルの重みを含みます。特徴マップは、そのスキャンの結果です。フィルターを「レンズ」、特徴マップをそのレンズを通して捉えた「画像」と考えることができます。
- 特徴マップと埋め込みの違い:どちらもデータを表現しますが、特徴マップは通常、セマンティックセグメンテーションに適した空間構造(高さと幅)を保持します。一方、埋め込みは通常、意味的な情報を捉える代わりに空間的な配置を破棄した1次元ベクトルへ平坦化され、類似度検索タスクなどで使用されます。
- 特徴マップと活性化の違い:活性化関数(ReLUなど)は、非線形性を導入するために特徴マップ内の値に対して適用されます。マップはこの数学的演算の前後の両方に存在します。
Ultralyticsモデルとの関連性#
YOLO26のような高度なアーキテクチャでは、特徴マップがモデルの「バックボーン」と「ヘッド」で重要な役割を果たします。バックボーンは異なるスケールで特徴(特徴ピラミッド)を抽出し、モデルが小さなオブジェクトと大きなオブジェクトの両方を効果的に検出できるようにします。Ultralytics Platformをトレーニングに活用するユーザーは、これらのモデルの動作を可視化し、精度や再現率などのメトリクスを通じて、基盤となる特徴マップの有効性を間接的に確認できます。これらのマップの最適化には、アノテーション付きデータセットでの大規模なトレーニングが必要であり、多くの場合、特徴抽出などの手法を利用して、事前トレーニング済みモデルの知識を新しいタスクへ転移します。









