← 문제 목록/Batch Normalization (training forward)
문제 해설

Batch Normalization (training forward)

정규화 · easy

preview

Batch Normalization (training forward)

80번 LayerNorm각 샘플 의 feature 들을 정규화. BatchNorm (Ioffe & Szegedy 2015) 은 정반대로 각 feature배치 샘플들 로 정규화:

μj=1Nixij,σj2=1Ni(xijμj)2\mu_j = \frac{1}{N} \sum_{i} x_{ij}, \quad \sigma_j^2 = \frac{1}{N} \sum_i (x_{ij} - \mu_j)^2 yij=xijμjσj2+ϵγj+βjy_{ij} = \frac{x_{ij} - \mu_j}{\sqrt{\sigma_j^2 + \epsilon}} \cdot \gamma_j + \beta_j

BatchNorm vs LayerNorm

정규화 대상배치 의존?
LayerNorm각 샘플 내 D features아니오
BatchNorm각 feature 내 N 샘플

어디에 쓰이나

  • CNN 의 표준: ResNet, VGG 등에서 각 conv layer 뒤.
  • 학습 안정화 + 빠른 수렴 + 어느 정도 정규화 효과.
  • 단점: 작은 배치에서 μ,σ\mu, \sigma 추정치 불안정. Inference 시 running stats 필요.

이 문제 범위

  • Training mode forward 만 구현 (running stats 업데이트 없이).
  • 반환: normalized output 만.

과제

함수 batch_norm(x, gamma, beta, eps) 를 완성하세요.

  • x shape (N, D).
  • gamma, beta shape (D,).
  • 반환: (N, D).
  • 평균/분산은 axis=0 (배치 축).

테스트 케이스

#이름검증
1γ=1, β=0 → 열별 평균 0axis=0
2γ=1, β=0 → 열별 std 1
3γ, β 스케일/시프트
4shape 유지
5상수 열 NaN 없음 (eps)
6LayerNorm 과 다른 결과축 다름
코드 작성
Loading...
실행 결과

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