정규화 기법 (Normalization Techniques)
핵심 요약: 정규화(Normalization)는 층마다 값의 범위를 맞춰주는 기법이다. 활성화 값이 너무 크거나 작아지는 것을 방지하여 학습을 안정적이고 빠르게 만든다. CNN에는 BatchNorm, Transformer에는 LayerNorm, 최신 LLM에는 RMSNorm이 주로 사용된다.
정규화(Normalization)는 신경망의 중간 활성화 값을 안정화하여 학습을 빠르고 안정적으로 만드는 기법이다. 층이 깊어질수록 각 층의 입력 분포가 변하는 문제(Internal Covariate Shift)를 완화하며, 더 높은 학습률을 사용할 수 있게 하고, 약한 정규화(regularization) 효과도 제공한다. Batch Normalization을 시작으로 다양한 변형이 등장했으며, 아키텍처에 따라 적합한 정규화 기법이 다르다.
일상적 비유: BatchNorm은 학교에서 반 전체 시험 점수를 표준화하는 것과 같다. 전체 학생(배치)의 평균과 분산을 기준으로 각 학생의 점수를 조정한다. 반면 LayerNorm은 각 학생의 과목별 점수를 표준화하는 것이다. 한 학생이 수학 95점, 국어 60점이면, 그 학생 내에서 점수를 정규화한다. 다른 학생이 몇 명인지(배치 크기)는 전혀 상관없다.
탄생 배경
섹션 제목: “탄생 배경”정규화 기법의 발전은 딥러닝 아키텍처의 변화와 궤를 같이한다.
-
Ioffe & Szegedy (2015) — Batch Normalization: “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”라는 논문으로 발표되었다. 학습 시 각 미니배치의 통계(평균, 분산)를 이용해 활성화를 정규화하는 기법이다. BatchNorm의 등장은 딥러닝 실무에 혁명적 변화를 가져왔다. 학습률을 10배 이상 높일 수 있게 되었고, 초기화에 대한 민감도가 크게 줄어 더 깊은 네트워크의 학습이 실용적으로 가능해졌다.
-
Ba et al. (2016) — Layer Normalization: BatchNorm이 배치 크기에 의존하고 RNN에 적용하기 어려운 한계를 해결하기 위해 제안되었다. 배치가 아닌 단일 샘플의 모든 feature에 대해 정규화하므로, 배치 크기와 무관하게 동작한다. 이후 Transformer 아키텍처(Vaswani et al., 2017)에서 표준 정규화 기법으로 채택되면서 중요성이 크게 부각되었다.
-
RMSNorm의 부상: LayerNorm에서 평균을 빼는 연산(centering)을 생략하고 RMS만으로 정규화하는 간소화 버전이다. LLaMA, Gemma 등 최신 대규모 언어 모델(LLM)에서 채택되면서 새로운 표준으로 자리잡고 있다. 계산 효율성이 높고, 실험적으로 LayerNorm과 성능 차이가 거의 없다는 점이 채택의 이유이다.
핵심 개념
섹션 제목: “핵심 개념”숫자로 이해하기
섹션 제목: “숫자로 이해하기”4개의 활성화 값 을 정규화하는 과정을 따라가 보자.
- 평균(Mean) 계산:
- 표준편차(Standard Deviation) 계산:
- 정규화(Normalize): 각 값에서 평균을 빼고, 표준편차로 나눈다
- 결과: →
정규화 후 값들은 평균 0, 표준편차 1 근처에 분포하게 된다. 이렇게 값의 스케일(Scale)을 맞춰주면, 각 층이 안정적인 범위의 입력을 받아 학습이 훨씬 원활해진다.
1. Batch Normalization (배치 정규화)
섹션 제목: “1. Batch Normalization (배치 정규화)”Ioffe & Szegedy (2015)가 제안한 가장 대표적인 정규화 기법이다.
수식:
- , : 미니배치 내 평균과 분산
- , : 학습 가능한 Scale(크기 조절)과 Shift(이동) 파라미터
- : 수치 안정성을 위한 작은 값
왜 와 가 필요한가: 정규화만 하면 네트워크의 표현력이 제한될 수 있다. 학습 가능한 파라미터를 통해 네트워크가 정규화를 “되돌릴” 수 있도록 한다. 즉, 네트워크가 필요하다면 원래 분포를 복원할 수 있다.
추론 시: 미니배치가 없으므로, 학습 중 누적한 이동 평균(running mean/variance)을 사용한다.
효과:
- 더 높은 학습률 허용 → 빠른 수렴
- 약한 정규화 효과 (미니배치의 노이즈로 인해)
- 기울기 소실/폭발 완화
한계:
- 배치 크기에 의존 (배치 크기가 작으면 통계치가 불안정)
- RNN에 적용하기 어려움 (시퀀스 길이가 달라 배치 통계가 불안정)
2. Layer Normalization (층 정규화)
섹션 제목: “2. Layer Normalization (층 정규화)”Ba et al. (2016)이 제안하였다.
수식은 Batch Normalization과 동일하지만, 정규화 축이 다르다. 단일 샘플의 모든 feature에 대해 정규화한다.
장점:
- 배치 크기에 무관
- RNN/Transformer에 적합
Transformer에서의 위치:
- Post-LN: 잔차 연결 후에 정규화 → 원래 Transformer 방식 (Vaswani et al., 2017)
- Pre-LN: 잔차 연결 전에 정규화 → 학습 안정성 향상, 현재 더 일반적
3. Group Normalization
섹션 제목: “3. Group Normalization”Wu & He (2018)이 제안하였다.
채널을 개의 그룹으로 나누어 각 그룹 내에서 정규화한다.
특수 케이스:
- : Layer Normalization과 동일
- (채널 수): Instance Normalization과 동일
장점: 배치 크기에 무관하면서도 CNN에 적합. 특히 배치 크기가 작은 경우(object detection, segmentation)에 Batch Normalization보다 우수하다.
4. Instance Normalization
섹션 제목: “4. Instance Normalization”각 채널, 각 샘플에 대해 독립적으로 정규화한다.
주요 사용처: Style Transfer — 스타일 정보(평균, 분산)를 제거하여 콘텐츠만 남긴다.
5. RMSNorm
섹션 제목: “5. RMSNorm”
핵심 차이: Layer Normalization에서 평균 빼기(centering)를 생략하고, RMS(Root Mean Square, 제곱평균제곱근)만으로 정규화한다. RMS는 값들의 제곱 평균의 제곱근으로, 값의 전체적인 “크기”를 나타낸다.
장점: Layer Normalization보다 계산 효율적 (평균 계산 생략)
사용처: LLaMA, Gemma 등 최신 LLM에서 채택
상세 내용
섹션 제목: “상세 내용”정규화 축 비교
섹션 제목: “정규화 축 비교”4차원 텐서 에서 각 기법이 어떤 축을 정규화하는지:
| 기법 | 정규화 축 | 직관 |
|---|---|---|
| Batch Norm | — 배치 내 동일 채널 | ”같은 특징을 가진 모든 샘플에 대해” |
| Layer Norm | — 한 샘플의 모든 특징 | ”한 샘플 내의 모든 특징에 대해” |
| Instance Norm | — 한 채널, 한 샘플 | ”한 특징 맵 내에서” |
| Group Norm | — 그룹 내 채널들 | ”관련된 채널 그룹 내에서” |
종합 비교 표
섹션 제목: “종합 비교 표”| 기법 | 배치 의존 | 적합 아키텍처 | 계산 비용 | 특이 사항 |
|---|---|---|---|---|
| Batch Norm | 있음 | CNN (큰 배치) | 중간 | running stats 관리 필요 |
| Layer Norm | 없음 | Transformer, RNN | 중간 | Pre-LN vs Post-LN |
| Group Norm | 없음 | CNN (작은 배치) | 중간 | G 선택 필요 (보통 32) |
| Instance Norm | 없음 | Style Transfer | 낮음 | 스타일 정보 제거 |
| RMSNorm | 없음 | LLM | 낮음 | centering 생략 |
언제 사용하는가
섹션 제목: “언제 사용하는가”실전 사례
섹션 제목: “실전 사례”배치 크기 2에서 BatchNorm이 망가진 사례
섹션 제목: “배치 크기 2에서 BatchNorm이 망가진 사례”의료 영상(medical imaging) 분야에서는 GPU 메모리 한계로 인해 배치 크기가 극도로 작은 경우가 흔하다. 3D MRI 볼륨 데이터를 처리할 때 배치 크기를 2로 설정해야 하는 상황이 실제로 발생한다.
문제 상황: 3D U-Net 기반의 뇌 종양 세그멘테이션 모델을 학습시키면서 BatchNorm을 사용했다. 배치 크기가 2인 상태에서 미니배치의 평균과 분산은 단 2개의 샘플로 추정되므로 극도로 불안정했다. 학습 손실이 진동하면서 수렴하지 않았고, 더 큰 문제는 추론 시에도 나타났다. 학습 중 누적한 running statistics가 실제 데이터 분포를 제대로 반영하지 못해, 학습 시와 추론 시의 성능 차이가 크게 벌어졌다.
해결: BatchNorm을 GroupNorm(G=32)으로 교체했다. GroupNorm은 채널을 그룹으로 나누어 각 그룹 내에서 정규화하므로 배치 크기에 전혀 의존하지 않는다. 교체 후 학습이 안정적으로 수렴했고, 학습-추론 간 성능 갭도 사라졌다. Wu & He (2018)의 논문에서도 배치 크기 2에서 GroupNorm이 BatchNorm 대비 Dice score 기준 약 10% 이상 높은 성능을 보인다고 보고되었다.
실무 가이드라인:
- 배치 크기 < 16이면 BatchNorm 대신 GroupNorm 사용을 고려할 것
- 배치 크기 1이면 BatchNorm은 수학적으로 정의되지 않으므로 반드시 다른 방법 사용
- Instance Normalization(G=C)은 Style Transfer에 적합하지만, 일반적인 비전 과제에서는 GroupNorm이 더 안정적
흔한 오해와 함정
섹션 제목: “흔한 오해와 함정”-
학습/추론 모드 전환 누락: Batch Normalization을 사용할 때, PyTorch에서
model.train()과model.eval()전환을 잊으면 추론 시 배치 통계를 사용하여 결과가 불안정해진다. 이것은 가장 흔한 실수 중 하나이다. -
“Batch Normalization은 Internal Covariate Shift를 해결한다”: 원논문의 동기였으나, 후속 연구(Santurkar et al., 2018)는 BN의 효과가 손실 표면의 평활화(smoothing)에 더 가깝다고 분석했다.
-
배치 크기 1에서 Batch Norm 사용: 배치 크기가 1이면 배치 통계가 의미 없다. 이 경우 Group Norm이나 Layer Norm을 사용해야 한다.
-
정규화 순서 무시: Conv → BN → ReLU가 일반적이지만, 연구에 따라 Conv → ReLU → BN이 더 나은 경우도 있다. Pre-LN vs Post-LN 선택도 성능에 영향을 준다.
-
정규화와 정규화(regularization) 혼동: Normalization(분포 정규화)과 Regularization(과적합 방지)은 다른 개념이다. 한국어에서 모두 “정규화”로 번역되어 혼동이 잦다.
다른 주제와의 연결
섹션 제목: “다른 주제와의 연결”- 활성화 함수: 정규화가 활성화 분포를 안정화
- 가중치 초기화: 정규화가 초기화에 대한 민감도를 줄여줌
- 역전파: 기울기 흐름의 안정화
- CNN: Batch Normalization의 주요 사용처
- Transformer: Layer Normalization, RMSNorm
- RNN/LSTM/GRU: Layer Normalization의 적용
- 전이 학습: Domain-specific BatchNorm