Batch vs. Linear normalization 차이

Bean·2025년 4월 27일
0

인공지능

목록 보기
13/123

Batch Normalization(BN)과 Layer Normalization(LN)은 모두 딥러닝에서 학습을 안정화하고 빠르게 하기 위한 정규화 기법이지만, 작동 방식과 사용 목적에 차이가 있어요.


1. 정규화 대상

항목Batch NormalizationLayer Normalization
정규화 대상배치(batch) 단위의 feature별 통계레이어(layer) 단위의 feature 전체 통계
계산 축(N, C, H, W)에서 N (batch axis)을 기준각 샘플별로 feature 전체 (C, H, W 포함)

예시로, 입력이 (batch_size, features)일 때:

  • BN은 batch dimension을 따라 feature마다 평균/분산 계산
  • LN은 각 샘플(feature vector) 전체의 평균/분산 계산

2. 주로 사용하는 위치

항목Batch NormalizationLayer Normalization
사용 위치CNN, 이미지 처리 등에서 많이 사용RNN, NLP 등에서 많이 사용
배치 크기큰 배치에 적합작은 배치나 배치 사이즈가 1인 경우도 안정적

3. 훈련/추론 시 동작 차이

  • BatchNorm: 훈련 시에는 batch 통계 사용, 추론 시에는 moving average 사용
  • LayerNorm: 훈련/추론 모두 동일하게 작동 (샘플 단위로 정규화하기 때문)

요약

  • BatchNorm: 여러 샘플(batch)에서 feature별로 정규화. 배치 크기에 민감.
  • LayerNorm: 각 샘플 내부에서 feature 전체를 정규화. 배치 크기에 영향 적음.

4. 예시: 입력 벡터 2개 (배치 사이즈 2)

입력 데이터 (2개의 샘플, 각 샘플은 3차원 벡터):

x1 = [1.0, 2.0, 3.0]  
x2 = [4.0, 5.0, 6.0]  

4.1. Batch Normalization (BN)

  • Feature별로 배치 전체의 평균과 표준편차 계산:
전체 배치:
1번 feature: [1.0, 4.0] → 평균 2.5, 표준편차 1.5  
2번 feature: [2.0, 5.0] → 평균 3.5, 표준편차 1.5  
3번 feature: [3.0, 6.0] → 평균 4.5, 표준편차 1.5
  • 정규화 결과:
x1_BN = [(1.0-2.5)/1.5, (2.0-3.5)/1.5, (3.0-4.5)/1.5] = [-1.0, -1.0, -1.0]  
x2_BN = [(4.0-2.5)/1.5, (5.0-3.5)/1.5, (6.0-4.5)/1.5] = [1.0, 1.0, 1.0]

4.2. Layer Normalization (LN)

  • 각 샘플 자기 자신 내부의 평균과 표준편차 계산:
x1 평균: (1+2+3)/3 = 2.0, 표준편차 = 0.816  
x2 평균: (4+5+6)/3 = 5.0, 표준편차 = 0.816
  • 정규화 결과:
x1_LN = [(1-2)/0.816, (2-2)/0.816, (3-2)/0.816] = [-1.22, 0.0, 1.22]  
x2_LN = [(4-5)/0.816, (5-5)/0.816, (6-5)/0.816] = [-1.22, 0.0, 1.22]

핵심 차이

  • BN: 같은 feature끼리 비교함
  • LN: 같은 샘플 안에서 비교함
profile
AI developer

0개의 댓글