본문 바로가기
개발/Python

Batch Normalization vs Layer Normalization

by 피로물든딸기 2025. 10. 8.
반응형

전체 링크

 

배치 정규화

- 그레디언트 소실과 폭주 문제 해결

- 미니배치마다 평균과 표준 편차를 계산 → 규제의 효과

- 한 미니배치 안에서 같은 위치 (같은 뉴런)의 값들을 모아서 정규화

- 같은 뉴런끼리 비교 → 학습 안정
- RNN / LSTM, 배치 크기가 작을 때 성능 저하 가능

예시 데이터 (미니배치 크기 = 3, 특징 = 4):

X_batch =  [
  [1, 2, 3, 4],   # 샘플1
  [2, 3, 4, 5],   # 샘플2
  [3, 4, 5, 6]    # 샘플3
]

BN은 각 feature(열)에 대해 mean과 variance를 계산
예: 첫 번째 feature(1,2,3) → 평균=2, 분산=~0.67

정규화 후:

BN_out ≈ [
  [-1.22, -1.22, -1.22, -1.22],
  [ 0.00,  0.00,  0.00,  0.00],
  [ 1.22,  1.22,  1.22,  1.22]
]

 

Layer 정규화

- 배치 정규화를 사용하기 까다로운 순환 신경망에서 사용 (+ 그레디언트 클리핑)

한 샘플 안에서 feature들을 모아서 정규화

- 배치 크기 영향 없음
- NLP, RNN, Transformer에 적합
- CNN에는 상대적으로 덜 효과적

같은 데이터, but LN은 각 row(각 샘플) 기준!

샘플1: [1,2,3,4]
Mean = 2.5, Var = 1.25 → 정규화:

[-1.34, -0.45, 0.45, 1.34]

샘플2, 샘플3 도 각자 따로 정규화

LN_out ≈
[
  [-1.34, -0.45, 0.45, 1.34],
  [-1.34, -0.45, 0.45, 1.34],
  [-1.34, -0.45, 0.45, 1.34]
]

 

반응형

'개발 > Python' 카테고리의 다른 글

순환신경망 RNN  (0) 2025.10.09
불균형 데이터 처리  (0) 2025.10.08
과대적합 해결 방법  (0) 2025.10.08
이미지 생성형 AI 모델  (0) 2025.10.06
주요 합성곱 신경망  (0) 2025.10.06

댓글