
Batch Normalization (training forward)
80번 LayerNorm 은 각 샘플 의 feature 들을 정규화. BatchNorm (Ioffe & Szegedy 2015) 은 정반대로 각 feature 를 배치 샘플들 로 정규화:
μj=N1∑ixij,σj2=N1∑i(xij−μj)2
yij=σj2+ϵxij−μj⋅γj+βj
BatchNorm vs LayerNorm
| 축 | 정규화 대상 | 배치 의존? |
|---|
| LayerNorm | 각 샘플 내 D features | 아니오 |
| BatchNorm | 각 feature 내 N 샘플 | 예 |
어디에 쓰이나
- CNN 의 표준: ResNet, VGG 등에서 각 conv layer 뒤.
- 학습 안정화 + 빠른 수렴 + 어느 정도 정규화 효과.
- 단점: 작은 배치에서 μ,σ 추정치 불안정. 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 → 열별 평균 0 | axis=0 |
| 2 | γ=1, β=0 → 열별 std 1 | |
| 3 | γ, β 스케일/시프트 | |
| 4 | shape 유지 | |
| 5 | 상수 열 NaN 없음 (eps) | |
| 6 | LayerNorm 과 다른 결과 | 축 다름 |