[AI] 배치 정규화(Batch Normalization) vs 레이어 정규화(Layer Normalization) 비교

김성윤(Jack)·2025년 9월 25일

AI

목록 보기
7/9

배치 정규화(Batch Norm)와 레이어 정규화(Layer Norm)는 딥러닝 모델의 학습을 안정화하고 속도를 높이기 위해 사용되는 대표적인 정규화 기법입니다. 두 기법 모두 활성화 함수(activation function)에 들어가는 입력값의 분포를 평균 0, 분산 1로 바꾸어주는 역할을 하지만, 어떤 단위로 정규화를 수행하는지에 근본적인 차이가 있습니다.


1. 배치 정규화 (Batch Normalization)

배치 정규화는 미니배치(mini-batch) 단위로 정규화를 수행합니다. 즉, 같은 미니배치에 속한 여러 데이터들의 동일한 채널(feature)에 해당하는 값들을 모아 평균과 분산을 구하고 정규화합니다.

(위 그림에서 N은 배치 크기, C는 채널, H,W는 높이/너비를 의미합니다. 배치 정규화는 N축을 따라 평균과 분산을 계산합니다.)

주요 특징

  • 동작 방식: 미니배치 내 동일한 채널(피처)끼리 정규화를 수행합니다.
  • 장점:
    • 내부 공변량 변화(Internal Covariate Shift) 완화: 각 층의 입력 분포가 학습 중에 변하는 현상을 줄여 학습을 안정화시키고 속도를 높입니다.
    • 높은 학습률(Learning Rate) 사용 가능: 더 과감하게 파라미터를 업데이트할 수 있게 해줍니다.
    • 규제(Regularization) 효과: 미니배치 통계량에 약간의 노이즈가 더해지는 효과가 있어 드롭아웃(Dropout)의 필요성을 줄여줍니다.
  • 단점:
    • 배치 크기에 대한 의존성: 미니배치의 크기가 너무 작으면 통계량(평균, 분산)이 불안정해져 모델 성능이 저하될 수 있습니다.
    • RNN/Transformer 적용의 어려움: 시퀀스 데이터는 길이가 가변적이라 각 타임스텝별로 정규화를 적용하기 어렵습니다.
    • 학습(Training)과 추론(Inference) 시의 처리 방식이 다름: 학습 시에는 미니배치의 통계량을 사용하지만, 추론 시에는 학습 과정에서 이동 평균(moving average)으로 계산해 둔 전체 데이터의 통계량을 사용해야 합니다.

수식

미니배치 B=x_1,...,x_mB = {x\_1, ..., x\_m} 에 대해, 각 피처별로 평균과 분산을 계산합니다.
μB=1mi=1mxi\mu_B = \frac{1}{m}\sum_{i=1}^{m}x_iσB2=1mi=1m(xiμB)2\sigma_B^2 = \frac{1}{m}\sum_{i=1}^{m}(x_i - \mu_B)^2x^i=xiμBσB2+ϵ\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}
yi=γx^i+βy_i = \gamma\hat{x}_i + \beta
(gamma\\gammabeta\\beta는 학습 가능한 파라미터, epsilon\\epsilon은 분모가 0이 되는 것을 방지하는 작은 값입니다.)


2. 레이어 정규화 (Layer Normalization)

레이어 정규화는 하나의 데이터 샘플 내에서 정규화를 수행합니다. 즉, 배치 내의 다른 데이터와는 상관없이, 단일 데이터의 모든 채널(feature) 값들을 모아 평균과 분산을 구하고 정규화합니다.

(레이어 정규화는 C, H, W 축을 따라 단일 데이터(N=1) 내에서 평균과 분산을 계산합니다.)

주요 특징

  • 동작 방식: 하나의 데이터 샘플 내 모든 채널(피처)에 대해 정규화를 수행합니다.
  • 장점:
    • 배치 크기에 독립적: 배치 크기가 1이거나 매우 작아도 안정적으로 동작합니다.
    • RNN/Transformer에 적합: 각 데이터(시퀀스) 단위로 독립적인 정규화가 가능하여 순환 신경망이나 트랜스포머 모델에 효과적입니다.
    • 학습(Training)과 추론(Inference) 시의 연산이 동일: 별도의 이동 평균을 관리할 필요가 없어 구현이 간단합니다.
  • 단점:
    • 규제 효과가 적음: 배치 정규화만큼의 규제 효과를 기대하기는 어렵습니다.
    • CNN에는 비효율적일 수 있음: 이미지 데이터의 경우, 모든 채널을 한 번에 정규화하는 것이 각 채널의 고유한 특성을 해칠 수 있어 배치 정규화보다 성능이 떨어지는 경우가 많습니다.

수식

하나의 데이터 샘플 xxHH개의 피처에 대해 평균과 분산을 계산합니다.
μ=1Hi=1Hxi\mu = \frac{1}{H}\sum_{i=1}^{H}x_iσ2=1Hi=1H(xiμ)2\sigma^2 = \frac{1}{H}\sum_{i=1}^{H}(x_i - \mu)^2x^=xμσ2+ϵ\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}
y=γx^+βy = \gamma\hat{x} + \beta
(수식의 형태는 배치 정규화와 유사하지만, 평균과 분산을 구하는 대상이 다릅니다.)


3. 핵심 차이점 비교 요약

특징배치 정규화 (Batch Normalization)레이어 정규화 (Layer Normalization)
정규화 단위미니배치 (Mini-batch)단일 데이터 샘플 (Single data sample)
정규화 방향동일한 채널(피처)에 대해 여러 데이터 간 정규화하나의 데이터 내에서 모든 채널(피처) 간 정규화
배치 크기 의존성높음 (배치 크기가 작으면 성능 저하)없음 (배치 크기와 무관하게 동작)
주요 사용 분야CNN (컴퓨터 비전)RNN, Transformer (자연어 처리)
학습/추론 시 동작다름 (추론 시 이동 평균 사용)동일함
규제 효과강함약함

결론: 언제 무엇을 써야 할까?

직관적인 이유: 왜 그럴까요?

  • CNN에 배치 정규화가 적합한 이유:
    CNN에서 각 채널은 이미지의 특정 '피처(feature)'를 감지합니다. 예를 들어 어떤 채널은 '수직선', 다른 채널은 '붉은색 영역'을 찾는 역할을 합니다. 여러 다른 이미지(배치 내 데이터들)가 있더라도 '수직선'이라는 피처의 통계적 분포는 비슷할 것이라고 가정하는 것이 합리적입니다. 따라서 배치 정규화는 배치 내 여러 이미지에 걸쳐 동일한 채널(피처)의 값을 모아 정규화함으로써, 각 피처의 스케일을 일관성 있게 만들어주어 학습에 효과적입니다.

  • RNN/Transformer에 레이어 정규화가 적합한 이유:
    자연어 처리에서는 문장(시퀀스) 단위로 데이터를 다룹니다. 각 문장은 길이가 다르고, 문장마다 단어들의 분포가 완전히 다릅니다. 배치 내의 "나는 학교에 간다"라는 문장과 "오늘 날씨가 좋다"라는 문장의 같은 위치(예: 3번째 단어)의 통계적 특성을 묶어서 정규화하는 것은 의미가 없습니다. 대신, 하나의 문장 내에서 사용된 모든 단어(피처)들의 분포를 정규화하여 해당 문장 자체의 표현을 안정시키는 것이 더 직관적입니다. 레이어 정규화는 이처럼 개별 데이터(문장) 단위로 정규화를 수행하므로 시퀀스 데이터에 더 적합합니다.

최종 요약

  • 배치 정규화 (Batch Norm):

    • 컴퓨터 비전(CV) 분야에서 CNN 기반의 모델을 사용할 때
    • 안정적인 학습을 위해 충분히 큰 배치 크기를 확보할 수 있을 때
  • 레이어 정규화 (Layer Norm):

    • 자연어 처리(NLP) 분야에서 RNN, Transformer 같은 시퀀스 모델을 사용할 때
    • 온라인 학습이나 큰 모델을 작은 GPU에서 학습시켜 배치 크기가 매우 작거나 가변적일 때
profile
AI 공부합니다

0개의 댓글