← 문제 목록/Spatial Dropout 2D (채널 단위) [medium]
문제 해설

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

정규화 · medium

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 은 독립 (다른 샘플 간)
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.