Feature Maps
피처 맵(feature maps)이 CNN의 눈 역할을 어떻게 하는지 알아보십시오. Ultralytics YOLO26이 내부 표현을 사용하여 패턴을 탐지하고 컴퓨터 비전을 구동하는 방법을 학습하십시오.
feature map은 convolutional filter가 신경망 내의 입력 이미지나 이전 레이어를 처리할 때 생성되는 기본 출력입니다. computer vision (CV) 환경에서 이러한 맵은 데이터의 내부 표현 역할을 하며, 모델이 인식하도록 학습된 에지, 텍스처 또는 복잡한 기하학적 형태와 같은 특정 패턴을 강조합니다. 본질적으로 feature map은 Convolutional Neural Network (CNN)의 "눈" 역할을 하여, 원시 픽셀 값을 object detection 및 분류와 같은 작업을 수행할 수 있는 의미 있는 추상화로 변환합니다.
Link to this sectionFeature Map의 작동 메커니즘#
feature map의 생성은 convolution이라고 알려진 수학적 연산에 의해 이루어집니다. 이 과정에서 커널 또는 필터라고 불리는 학습 가능한 매개변수의 작은 행렬이 입력 데이터를 가로질러 이동합니다. 각 위치에서 커널은 요소별 곱셈과 합산을 수행하여 출력 그리드의 단일 값을 생성합니다.
- 패턴 활성화(Pattern Activation): 각 필터는 특정 특징을 찾도록 학습됩니다. 필터가 입력에서 해당 특징을 발견하면 feature map의 결과값이 높아지며, 이는 강한 활성화를 나타냅니다.
- 공간 계층 구조(Spatial Hierarchy): deep learning (DL) 아키텍처에서 feature map은 계층적으로 배열됩니다. 초기 레이어는 edge detection 선이나 곡선과 같은 저수준 세부 정보를 감지하는 맵을 생성합니다. 더 깊은 레이어는 이러한 단순한 맵을 결합하여 얼굴이나 차량과 같은 복잡한 객체의 고수준 표현을 형성합니다.
- 차원 변화(Dimensionality Changes): 데이터가 네트워크를 통과함에 따라 pooling layers와 같은 작업은 일반적으로 feature map의 공간 차원(높이 및 너비)을 줄이면서 깊이(채널 수)를 늘립니다. 종종 dimensionality reduction이라고 불리는 이 과정은 모델이 정확한 픽셀 위치보다는 특징의 존재 여부에 집중하도록 돕습니다.
Link to this section실제 애플리케이션 사례#
feature map은 현대 AI 애플리케이션의 핵심 엔진으로, 시스템이 인간과 유사한 이해도를 가지고 시각 데이터를 해석할 수 있게 합니다.
- 의료 진단: medical image analysis 분야에서 모델은 feature map을 사용하여 X-레이나 MRI 스캔을 처리합니다. 초기 맵은 뼈의 윤곽을 강조할 수 있고, 더 깊은 맵은 종양이나 골절과 같은 이상 징후를 식별하여 AI in healthcare 상황에서 의사를 지원합니다.
- 자율 주행: 자율 주행 자동차는 시각 센서에 의해 생성된 feature map에 크게 의존합니다. 이러한 맵을 통해 차량의 온보드 컴퓨터는 실시간으로 차선, 보행자, 교통 표지판을 구분할 수 있으며, 이는 autonomous vehicles가 안전하게 작동하는 데 매우 중요합니다.
Link to this sectionPython에서 Feature Map 작업하기#
feature map은 내부 구조이지만, 아키텍처를 설계할 때는 차원을 이해하는 것이 중요합니다. 다음 PyTorch 예제는 단일 합성곱 레이어가 입력 이미지를 feature map으로 변환하는 방법을 보여줍니다.
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}")Link to this section관련 개념 구분#
model training 중 혼란을 방지하기 위해 feature map과 유사한 용어를 구별하는 것이 도움이 됩니다.
- Feature Map vs. 필터: 필터(또는 커널)는 이미지를 스캔하는 데 사용되는 도구로, model weights를 포함합니다. feature map은 그 스캔의 결과입니다. 필터를 "렌즈"로, feature map을 그 렌즈를 통해 포착된 "이미지"로 생각할 수 있습니다.
- Feature Map vs. 임베딩(Embedding): 둘 다 데이터를 나타내지만, feature map은 일반적으로 semantic segmentation에 적합한 공간 구조(높이 및 너비)를 유지합니다. 반면 embeddings는 보통 평탄화된 1차원 벡터로, 의미론적 의미는 포착하지만 공간적 배치는 삭제하며, 주로 similarity search 작업에 사용됩니다.
- Feature Map vs. 활성화(Activation): activation function (예: ReLU)은 비선형성을 도입하기 위해 feature map 내의 값에 적용됩니다. 맵은 이 수학적 연산 전후에 모두 존재합니다.
Link to this sectionUltralytics 모델과의 관련성#
YOLO26과 같은 고급 아키텍처에서 feature map은 모델의 "백본(backbone)"과 "헤드(head)"에서 중요한 역할을 합니다. 백본은 다양한 스케일에서 특징을 추출(피라미드 특징)하여 모델이 작고 큰 객체를 모두 효과적으로 감지할 수 있도록 합니다. Ultralytics Platform을 활용하여 학습하는 사용자는 이러한 모델의 성능을 시각화할 수 있으며, accuracy 및 recall과 같은 지표를 통해 기저에 있는 feature map의 효율성을 간접적으로 관찰할 수 있습니다. 이러한 맵을 최적화하기 위해 주석이 달린 데이터셋에 대한 광범위한 학습이 수반되며, 종종 feature extraction 기술을 활용하여 사전 학습된 모델에서 새로운 작업으로 지식을 전이합니다.






