Foundations · ICML 2015

Batch Normalization: Accelerating Deep Network Training

미니배치로 층 입력을 정규화해 학습을 안정·가속. 딥러닝 표준 레시피의 핵심.

Sergey Ioffe, Christian Szegedy · Google Inc.

batchnormnormalizationtrainingcnn

1. 핵심 요약

ImageNet에서 약 14배 빠른 학습으로 당시 SOTA. 이후 CNN 표준이 되었고, Transformer 계열은 LayerNorm으로 이어집니다.

2. 배경: 내부 공변량 변화

깊은 넷에서 앞 층 파라미터가 바뀌면, 뒤 층이 받는 입력 분포가 계속 움직입니다. 이를 Internal Covariate Shift라고 부릅니다.

  • 각 층이 ‘이동하는 과녁’을 맞춰야 함
  • 학습률↑ → 분포가 너무 빨리 변해 발산
  • 학습률↓ → 학습이 매우 느림
  • 초기화에 민감

포화: Sigmoid처럼 입력이 크면 기울기≈0 → 앞 층 학습 불가.

입력 분포 흔들림 vs BN

설명용 히스토그램. 학습이 진행될수록 BN 없이 분포가 움직입니다.

BN OFF: 과녁이 계속 이동 → 높은 LR이 위험
학습 중 층 입력 분포가 흔들리는 모습(설명용)과 BN 후 안정화를 비교하세요.

3. 배치 정규화 방법

BN Forward 파이프라인

작은 배치 예시로 μ·σ² → 정규화 → γ,β를 계산합니다.

x12.40
x21.10
x3-0.30
x40.80
x53.00
x6-1.20
x70.50
x81.70
μ1.000
σ²1.660
mean(x̂)0.000
γ, β1.00, 0.00
1. μ, σ² 계산

미니배치 샘플로 평균·분산을 구합니다.

μ,σ² → 정규화 → γx̂+β 순서를 단계로 따라가세요.
μB=1mi=1mxi,σB2=1mi=1m(xiμB)2\mu_\mathcal{B}=\frac{1}{m}\sum_{i=1}^{m}x_i,\quad \sigma^2_\mathcal{B}=\frac{1}{m}\sum_{i=1}^{m}(x_i-\mu_\mathcal{B})^2
1단계 — 미니배치 평균·분산
BN 미니배치 평균·분산수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
x^i=xiμBσB2+ϵ\hat{x}_i = \frac{x_i - \mu_\mathcal{B}}{\sqrt{\sigma^2_\mathcal{B} + \epsilon}}
2단계 — 평균 0, 분산 1로 정규화
BN 정규화수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
yi=γx^i+βy_i = \gamma \hat{x}_i + \beta
3단계 — 학습 가능 γ(스케일), β(이동)로 표현력 복원
BN 스케일·이동 (γ, β)수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

왜 γ·β가 필요한가?

평균 0·분산 1만 강제하면 항등 매핑을 표현하기 어렵습니다. γ=σ, β=μ로 두면 원분포를 복원할 수 있어, 모델이 필요할 때만 정규화를 완화합니다.

훈련 vs 추론

훈련은 현재 배치 통계, 추론은 누적 running 통계를 씁니다.

Batch statsμ_B, σ²_B

이번 미니배치만으로 계산. 배치마다 달라짐.

Running statsμ_run, σ²_run

훈련 중 EMA로 누적. 추론 때 배치 크기 1도 OK.

Train: 정규화에 μ_B 사용 + running 업데이트

한계: running과 실제 분포가 어긋나면 train/eval 성능 갭이 납니다.

훈련은 배치 통계, 추론은 running statistics.
μrunning=(1α)μrunning+αμB\mu_{running}=(1-\alpha)\mu_{running}+\alpha\mu_\mathcal{B}
훈련 중 배치 통계를 EMA로 누적 → 추론에 사용
BN Running Statistics수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

4. BN의 위치

원 논문: Conv → BN → ReLU

합성곱 직후, 비선형 직전에 둡니다.

Pre-Activation (He et al., 2016): BN → ReLU → Conv

ResNet 개선. 잔차 경로를 더 ‘깨끗한’ 항등에 가깝게 → 기울기 흐름↑

Post (paper):   Conv → BN → ReLU → Conv → BN → ReLU
Pre-Activation: BN → ReLU → Conv → BN → ReLU → Conv  (+ skip)

5. 효과

SettingSteps to ~72% Top-5
Baseline31M
BN + 5× LR2.1M (~14.8× faster)
BN ensemble4.8% error (SOTA then)
ImageNet 학습 속도/성능 요약 (원문 보고)

정규화 효과

  • Dropout을 줄이거나 제거해도 비슷한 성능인 경우 많음
  • 더 높은 학습률 허용
  • 가중치 초기화에 덜 민감

6. 한계와 대안

  • 배치 크기 의존 — 배치가 작으면 μ·σ 추정이 불안정
  • RNN 부적합 — 가변 길이 시퀀스에서 배치 통계가 까다로움
  • 훈련·추론 불일치 — running stats ≠ 실제 배치 분포

정규화 축 비교

행=배치(N), 열=채널(C). 초록칸이 함께 평균·분산을 내는 축입니다.

N ↓C →
Batch Norm

배치(N) × 공간 — 채널마다 · CNN 표준

BN / LN / IN / GN이 어느 축으로 평균·분산을 내는지 비교하세요.
MethodNormalize overTypical use
Batch Normbatch × spatialCNN
Layer Normfeatures (per token)Transformer, RNN
Instance Normspatial (per channel)Style transfer
Group Normchannel groupsSmall-batch CNN
정규화 기법 한눈에

7. 의의

  • 딥러닝 학습 ‘표준 레시피’ 확립의 핵심
  • Inception, ResNet 등 주요 CNN에 광범위 채택
  • 이후 Transformer는 LayerNorm으로 맥을 이어감