Receptive field (수용 영역)는 딥러닝, 특히 CNN(Convolutional Neural Network)에서 아주 중요한 개념입니다.


1. Receptive Field란?

CNN의 특정 뉴런(또는 피처)의 출력이 입력 이미지의 어느 영역을 참조하고 있는지를 의미합니다.

예를 들어, 어떤 CNN의 마지막 레이어의 한 뉴런이 입력 이미지의 40×40 영역을 본 결과라면, 그 뉴런의 receptive field는 40×40입니다.

1.1. 왜 중요한가요?

  • 작은 receptive field는 국소 정보만 봅니다 (예: 가장자리, 텍스처).
  • 큰 receptive field는 전체 구조나 맥락 정보를 봅니다 (예: 객체의 전체 형태).
  • 따라서 네트워크의 설계자는 문제에 맞는 receptive field 크기를 확보해야 합니다.
    • 예: 3D object reconstruction에선 전체 object의 구조를 보기 위해 큰 receptive field 필요.

2. Receptive Field는 어떻게 커지나요?

  1. Convolution: 필터의 커널 크기만큼 receptive field가 넓어집니다.
    예: kernel size 3 → 기존 RF + 2 (3-1)

  2. Stride > 1 또는 pooling: receptive field의 성장 속도를 가속시킵니다.

  3. 딥해질수록 (레이어 많아질수록) RF는 점점 커집니다.


3. 예시

간단한 CNN:

Input -> Conv(k=3, s=1) -> Conv(k=3, s=1) -> Conv(k=3, s=1)
  • Layer 1: RF = 3
  • Layer 2: RF = 5
  • Layer 3: RF = 7

점점 커집니다.

a) Layer 1: Conv(k=3, s=1)

  • 커널 크기 (k): 3
  • 스트라이드 (s): 1

첫 번째 레이어에서 필터 크기는 3x3입니다. 그리고 stride=1이므로 필터가 입력 이미지의 각 픽셀을 한 칸씩만 이동하면서 적용됩니다.

따라서 첫 번째 레이어의 receptive field는 3x3입니다.

RF at Layer 1 = 3

b) Layer 2: Conv(k=3, s=1)

  • 커널 크기 (k): 3
  • 스트라이드 (s): 1

두 번째 레이어에서 또 다른 3x3 필터가 적용됩니다. 이 필터는 이전 레이어의 출력에 적용되므로, 이때의 Receptive Field는 첫 번째 레이어에서의 RF에 새로운 필터 크기 (3x3)가 추가된 크기입니다.

하지만 이때 stride=1이므로, 필터는 한 칸씩만 이동하면서 적용됩니다. 따라서 기존 receptive field (3) + 필터 크기 (3) - 1의 방식으로 계산됩니다.

RF at Layer 2 = 3 (이전 RF) + 2 (커널 크기 - 1) = 5

c) Layer 3: Conv(k=3, s=1)

  • 커널 크기 (k): 3
  • 스트라이드 (s): 1

세 번째 레이어에서도 마찬가지로 3x3 필터가 적용됩니다. 이때도 stride=1이라서 한 칸씩만 이동합니다. 이전 레이어의 RF에 또 다른 필터 크기(3x3)가 추가됩니다.

따라서 두 번째 레이어에서의 RF(5)와 커널 크기(3)를 사용하여 다음과 같이 계산됩니다.

RF at Layer 3 = 5 (이전 RF) + 2 (커널 크기 - 1) = 7

결론

  • 첫 번째 레이어에서의 receptive field는 3입니다.
  • 두 번째 레이어에서의 receptive field는 3 + 2 = 5입니다.
  • 세 번째 레이어에서의 receptive field는 5 + 2 = 7입니다.

따라서 각 레이어를 지나면서 Receptive Field는 커진다는 사실을 알 수 있습니다. 이 계산에서 중요한 점은 stride가 1이기 때문에 필터가 한 칸씩만 이동하면서 출력 크기가 점차 확장된다는 것입니다.


4. U-Net에서의 Receptive Field

U-Net은 downsampling(축소)과 upsampling(복원)을 반복하는 구조이기 때문에:

  • 깊이(depth)를 늘릴수록 → receptive field가 매우 커짐
  • skip connection은 세부 정보 보존
  • 큰 receptive field는 전체 구조 이해에 필수
profile
AI developer

0개의 댓글