
Layer Normalization (Forward)
Transformer의 핵심 정규화 층. 각 샘플 의 특성들을 자체 mean·std로 정규화 한 뒤 학습 가능한 스케일(γ)과 시프트(β)를 더합니다:
μi=D1∑jxij,σi2=D1∑j(xij−μi)2
yij=σi2+ϵxij−μi⋅γj+β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 | γ, β 스케일/시프트 적용 | 기대값 수식 일치 |
| 4 | shape 유지 | |
| 5 | 상수 행도 NaN 없음 (eps) | |