Foundations · ICML 2015

Batch Normalization: Accelerating Deep Network Training

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

Sergey Ioffe, Christian Szegedy · Google Inc.

batchnormnormalizationtrainingcnn

1. 핵심 요약

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

2. 왜 중요한가 — 쉬운 설명

30초 비유

반 학생들의 쪽지시험 점수를 매번 평균 0·표준편차 1로 맞춰 다음 선생님께 넘기면, 그 선생님은 항상 같은 스케일을 기대할 수 있어 수업 진도가 빨라집니다. 신경망도 각 층 입력을 이렇게 “재조정”해 주면 학습이 안정됩니다.

무엇을 제안했나

  • 미니배치 정규화 — 현재 배치의 평균·분산으로 층 입력을 정규화.
  • 학습 가능한 γ, β — 정규화로 잃은 표현력을 다시 복원(필요하면 원래 분포로 되돌릴 수도 있음).

그래서 무엇이 달라졌나

  • 더 높은 학습률을 써도 발산하지 않고, 초기화에 덜 민감하며, 약한 정규화 효과까지 덤.
  • 2015년 이후 CNN 학습의 사실상 표준 레시피.

더 공부할 가치가 있을까?

  • 그렇다 — 비전 모델이나 학습 안정화에 관심이 있다면.
  • 대비해서 볼 것 — LayerNorm과 함께 보면 “왜 Transformer는 BN을 안 쓰나”가 이해됩니다.

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

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

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

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

내부 공변량 변화 (ICS)

학습 스텝이 갈수록 뒤 층 입력 분포(μ,σ)가 움직입니다. BN은 과녁을 고정합니다.

target ~0activation →
μ-1.50
σ0.70
statusdrifting
BN OFF: 높은 LR일수록 분포가 더 빠르게 붕괴/이동
학습 스텝에 따라 입력 분포(μ,σ)가 움직이는 ICS를 보세요.

Sigmoid 포화 vs BN

왼쪽 축(강조)이 기울기 σ′. 입력이 한쪽으로 치우치면 σ′≈0. BN은 입력을 0 근처로 당깁니다.

σ′0.280σ10
σ′ 기울기 (왼쪽 축)σ 모양 (오른쪽 축)
샘플 평균 |σ′| ≈ 0.033

BN OFF: μ가 크면 점이 포화 구간으로 밀려 기울기 소실

Sigmoid 포화: 입력이 크면 기울기≈0. BN으로 0 근처에 두면 기울기가 살아납니다.

4. 배치 정규화 방법

BN Forward 파이프라인

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

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

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

μ,σ² → 정규화 → γx̂+β. 3단계에서 ‘항등 복원’으로 γ=σ, β=μ를 눌러 보세요.
μB=1m∑i=1mxi,σB2=1m∑i=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수식 상세 →
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

5. BN의 위치

BN 위치: Post vs Pre-Activation

원 논문은 Conv 직후 BN. ResNet 개선은 BN→ReLU→Conv로 잔차 경로를 더 깨끗하게.

Conv
→
BN
→
ReLU
→
Conv
→
BN
→
ReLU
Post: Conv → BN → ReLU (논문 기본)

비선형 직전에 분포를 안정화. CNN 레시피의 출발점.

Post(Conv→BN→ReLU)와 Pre-Activation을 전환해 보세요.

원 논문: Conv → BN → ReLU

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

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

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

6. 효과

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

정규화 효과

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

7. 한계와 대안

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

배치 크기와 μ 추정 흔들림

진짜 μ=2인 분포에서 배치를 뽑아 μ̂를 여러 번 추정합니다. 배치가 작을수록 점이 흩어집니다.

true μ=2μ̂ →
μ̂ 표준편차 ≈ 0.678 (m=4)

작은 배치: 추정 노이즈↑ → BN이 불안정해질 수 있음 (GroupNorm 등이 대안).

배치 크기 m을 줄이면 μ̂ 추정이 얼마나 흩어지는지 보세요.

정규화 축 비교

큰 격자: 행=배치(N), 열=채널(C). 각 칸 안 2×2는 공간(H×W). 초록이 같은 μ·σ² 풀입니다.

c0c1c2c3
n0
n1
n2
n3
N ↓ · C →칸 안 = H×W
Batch Norm

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

채널 c=0만: 모든 배치·모든 공간 픽셀이 같은 μ,σ²를 공유합니다.

행=N, 열=C, 칸 안 2×2=공간(H×W). 초록이 같은 μ·σ²를 공유합니다.
MethodNormalize overTypical use
Batch Normbatch × spatialCNN
Layer Normfeatures (per token)Transformer, RNN
Instance Normspatial (per channel)Style transfer
Group Normchannel groupsSmall-batch CNN
정규화 기법 한눈에

8. 의의

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

이해도 점검

보기를 골라 정답과 해설을 확인하세요. 채점은 이 페이지 안에서만 이뤄집니다.

0 / 5 정답
  1. 1. BN이 정규화한 뒤 학습 가능한 γ,β\gamma, \beta로 다시 스케일·시프트하는 이유는?

  2. 2. 학습 때와 추론 때 BN의 동작 차이는?

  3. 3. BN이 더 큰 학습률을 쓸 수 있게 해주는 이유는?

  4. 4. BN이 아주 작은 배치에서 잘 작동하지 않는 이유는?

  5. 5. Transformer가 BN 대신 LayerNorm을 쓰는 주된 이유는?