← 문제 목록/Layer Normalization (Forward)
문제 해설

Layer Normalization (Forward)

최적화 · easy

preview

Layer Normalization (Forward)

Transformer의 핵심 정규화 층. 각 샘플 의 특성들을 자체 mean·std로 정규화 한 뒤 학습 가능한 스케일(γ\gamma)과 시프트(β\beta)를 더합니다:

μi=1Djxij,σi2=1Dj(xijμi)2\mu_i = \frac{1}{D} \sum_j x_{ij}, \quad \sigma_i^2 = \frac{1}{D} \sum_j (x_{ij} - \mu_i)^2 yij=xijμiσi2+ϵγj+βjy_{ij} = \frac{x_{ij} - \mu_i}{\sqrt{\sigma_i^2 + \epsilon}} \cdot \gamma_j + \beta_j

BatchNorm 과의 차이

  • BatchNorm: 배치 축(N)을 따라 평균·std 계산 → 배치 크기에 의존, inference 때 running mean/var 필요.
  • LayerNorm: 특성 축(D)을 따라 → 각 샘플 독립적. 배치 크기 1 도 OK, RNN/Transformer에 자연스러움.

과제

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

  • x shape (N, D).
  • gamma, beta shape (D,).
  • 반환: 같은 shape (N, D).
  • keepdims=True 로 브로드캐스팅.

테스트 케이스

#이름검증
1γ=1, β=0 → 행별 평균 0
2γ=1, β=0 → 행별 std 1
3γ, β 스케일/시프트 적용기대값 수식 일치
4shape 유지
5상수 행도 NaN 없음 (eps)
코드 작성
Loading...
실행 결과

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