정규화·연습 문제

Spatial Dropout 2D (채널 단위) [medium]

문제 설명PROBLEM

preview

Spatial Dropout 2D [medium]

v1 Dropout 은 각 원소를 독립 drop. CNN feature map (N, C, H, W) 에서는 효과가 약함 — 공간적으로 인접한 픽셀은 강한 상관 을 가지므로 한 픽셀 drop 해도 이웃이 대체. Spatial Dropout (Tompson et al. 2015) 은 전체 채널 단위로 drop:

y[n,c,:,:]=x[n,c,:,:]1p1[m[n,c]=1]y[n, c, :, :] = \frac{x[n, c, :, :]}{1 - p} \cdot \mathbb{1}[m[n, c] = 1]

즉 한 샘플의 한 채널이 통째로 0 되거나, 그대로 유지 (스케일업 포함).

왜 채널 단위인가

  • 채널 = feature detector: 한 채널 전체를 drop 하면 그 feature 자체가 일시적 무효화.
  • 독립 픽셀 drop 대비 더 강한 regularization.
  • PyTorch nn.Dropout2d 가 이 방식.

수식

  • mask shape (N, C, 1, 1) (broadcast 로 H, W 에 확장).
  • mask[n, c] = 1 with prob 1-p, 0 with prob p.
  • 출력: x * mask / (1 - p) (inverted dropout).

과제

함수 spatial_dropout_2d(x, p, seed, training) 를 완성하세요.

  • x shape (N, C, H, W).
  • p: drop 확률.
  • training=False: 원본 그대로.
  • training=True: 채널 단위 mask + 1/(1-p) 스케일.

테스트 케이스

#이름검증
1training=False → 원본
2p=0 → 원본 (train 이어도)
3drop 된 (n, c) 의 모든 (h, w) 가 0공간 일관성
4survived 채널은 원본 · 1/(1-p)
5기대값 보존 (큰 샘플)E[y] = x
6시드 재현성
7각 채널 drop 은 독립 (다른 샘플 간)
개념 노트와 실수 포인트

정규화 (용어 주의!)

  • ⚠️ Regularization(L1 희소/L2 가중치 감소/드롭아웃) = 과적합 방지.
  • ⚠️ Normalization(스케일 0~1, 표준화) = 입력 스케일 조정. 배치 정규화는 학습 안정화. 셋을 혼동하지 마세요.