← 문제 목록/Group Normalization
문제 해설

Group Normalization

정규화 · easy

preview

Group Normalization

81번 RMSNorm 은 행 전체를 한 덩어리로 정규화. GroupNorm (Wu & He 2018) 은 중간 선택지 — 채널을 G 개 그룹 으로 쪼개 그룹 내에서만 정규화:

  • G=1G = 1 → LayerNorm (전체 feature 한 그룹)
  • G=DG = D → InstanceNorm (채널 하나당 그룹)
  • 중간값 (예: G=32G = 32) → GroupNorm

수식

xRN×Dx \in \mathbb R^{N \times D}, D=GCgD = G \cdot C_g (CgC_g = 그룹 당 채널 수):

  1. reshape: (N,D)(N,G,Cg)(N, D) \to (N, G, C_g)
  2. (n,g)(n, g) 에 대해 last axis 로 μ,σ2\mu, \sigma^2
  3. 정규화: x^=(xμ)/σ2+ϵ\hat x = (x - \mu) / \sqrt{\sigma^2 + \epsilon}
  4. reshape back: (N,G,Cg)(N,D)(N, G, C_g) \to (N, D)
  5. affine: y=γx+βy = \gamma x + \beta, γ,β\gamma, \beta shape (D,)(D,)

왜 좋은가

  • 배치 크기 독립: 객체 검출, 세그멘테이션 (N 작음) 에서 BatchNorm 불안정 → GroupNorm 으로 대체.
  • LayerNorm 과 BatchNorm 사이 의 적절한 trade-off.

과제

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

  • x shape (N, D), D % num_groups == 0 가정.
  • gamma, beta shape (D,).
  • 반환: (N, D).
  • 힌트: reshape 로 그룹 만들기, axis=-1 평균/분산.

테스트 케이스

#이름검증
1G=1 → LayerNorm과 일치
2G=D → InstanceNorm (각 원소 × -> 독립)
3shape 유지
4γ, β 적용
5그룹 내 평균 ≈ 0 (γ=1, β=0)
코드 작성
Loading...
실행 결과

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