딥러닝 기초 (7) - 정규화 계층: Batch Norm과 Layer Norm
학습 중 층마다 입력 분포가 흔들리는 문제에서 출발해, 미니배치 통계로 정규화하는 Batch Normalization(학습·추론이 다른 이유 포함)과 특성 축으로 정규화해 배치·시퀀스에 무관한 Layer Normalization을 비교 정리한 딥러닝 기초 (7)편입니다.
딥러닝 기초 시리즈의 7편입니다. 전체 목차는 0편에 있습니다. 초기화로 시작을 잡아도 학습 중 층의 입력 분포는 계속 움직입니다. 이 편은 그것을 다시 맞추는 정규화 계층입니다.
왜 층마다 분포를 다시 맞추나
6편에서 초기화를 잘해도, 학습이 진행되며 앞 층의 가중치가 바뀌면 뒤 층이 받는 입력 분포가 계속 흔들립니다. 매번 움직이는 표적을 학습하는 셈이라 불안정하고 느립니다. 정규화 계층은 각 층의 입력을 다시 일정한 분포로 맞춰 이 흔들림을 줄입니다.
배치 정규화 (Batch Normalization)
배치 정규화는 미니배치 안에서 각 특성을 평균 0, 분산 1로 정규화한 뒤, 학습 가능한 파라미터 γ(스케일)·β(시프트)로 다시 조정합니다.
1
2
x̂ = (x − μ_batch) / √(σ²_batch + ε) # 배치 통계로 정규화
y = γ · x̂ + β # 학습 가능한 스케일·시프트
정규화로 분포를 안정시키되, 필요하면 γ·β로 원래 분포로 되돌릴 여지도 남깁니다. 효과는 학습 안정화와 가속, 더 큰 학습률 허용, 그리고 약한 규제입니다.
한 가지 주의점은 학습과 추론이 다르다는 것입니다. 학습 때는 지금 배치의 통계를 쓰지만, 추론 때는 배치가 없거나 하나뿐일 수 있으므로 학습 중 누적해둔 이동평균 통계를 씁니다. 이 차이 때문에 모델을 평가할 때 반드시 평가 모드로 전환해야 합니다(자세한 실무는 PyTorch 기초 (5)).
층 정규화 (Layer Normalization)
배치 정규화는 배치 방향의 통계에 의존하는데, 배치가 작으면 통계가 불안정하고, RNN처럼 시퀀스 길이가 제각각이면 적용이 까다롭습니다. 층 정규화는 배치가 아니라 한 샘플의 특성 차원을 따라 정규화합니다. 배치 크기나 시퀀스 길이에 영향받지 않아, RNN과 Transformer의 표준입니다.
| 정규화 방향 | 배치 크기 의존 | 주 사용처 | |
|---|---|---|---|
| Batch Norm | 배치 축 | 있음 (작으면 불안정) | CNN |
| Layer Norm | 특성 축 | 없음 | RNN, Transformer |
정리
| 개념 | 한 줄 요약 |
|---|---|
| 정규화의 이유 | 학습 중 층 입력 분포가 흔들림 → 다시 맞춤 |
| Batch Norm | 배치 통계로 정규화 + γ·β. 학습/추론 통계 다름 |
| Layer Norm | 특성 축으로 정규화. 배치·시퀀스에 무관 |
| 선택 | CNN은 BN, RNN·Transformer는 LN |
초기화·최적화·정규화로 깊은 망이 학습되게 만들었습니다. 하지만 학습이 잘 될수록 새로운 위험이 생깁니다 — 데이터를 외워버리는 과적합입니다. 다음 편에서 다룹니다.