토니의 연습장
LayerNorm 과 BatchNorm 본문
요약
- BatchNorm: 배치 전체 통계 기반, CNN에 특화, 큰 배치에서 최고의 성능
- LayerNorm: 샘플별 통계 기반, 시퀀스·토큰 모델에 필수, 작은 배치에도 안정
- 이미지 분류·객체 검출(CNN 계열)
- 배치 크기가 충분하다면 → BatchNorm
- 배치가 매우 작거나 온라인 추론 위주라면 → GroupNorm 또는 LayerNorm 고려
- 자연어 처리·시퀀스 모델
- Transformer, RNN 계열 → LayerNorm
- 특히 auto-regressive 생성(decoding) 시 causal 구조와 잘 맞음
- 일반 MLP
- 배치 독립성이 필요하면 → LayerNorm
- 배치 통계가 풍부하면 → BatchNorm
왜 LayerNorm을 쓰는가?
- 배치 크기 독립성
- BatchNorm은 배치 전체의 통계량을 사용하지만, LayerNorm은 각 샘플별로 통계량을 계산합니다.
- 작은 배치나 배치 크기가 1인 상황에서도 안정적으로 동작
- 순차 모델·Transformer에 적합
- RNN, Transformer 같은 시퀀스 모델에서는 시퀀스 길이에 따라 배치 크기가 달라지거나, 인퍼런스 시 단일 토큰씩 처리할 때도 일관된 정규화가 필요
- 내부 공변량 변화(Internal Covariate Shift) 억제
- 각 레이어의 입력 분포 변화가 커지면 학습이 불안정해지는데, LayerNorm은 활성값 분포를 일정하게 유지시켜 학습 속도를 높이고 안정성을 개선
- 그레디언트 흐름 개선
- 깊은 네트워크에서도 기울기 소실(vanishing)이나 폭주(exploding)를 다소 완화
언제 쓰이나?
- Transformer의 각 서브레이어(어텐션, 피드포워드) 직후
- RNN/LSTM/GRU 같은 순환신경망(RNN) 내부
- MLP 등 일반 피드포워드 네트워크에서도, 배치 의존성을 줄이고 싶을 때
이처럼 LayerNorm은 배치 크기나 시퀀스 길이에 관계없이 개별 샘플의 임베딩 전체 분포를 정규화하여, 딥러닝 모델의 안정적이고 빠른 수렴을 돕는 핵심 기법입니다.
정규화 축(axis) | 배치(batch) 차원 + 공간(spatial) 차원(보통 CNN의 채널별) | 마지막(feature) 차원(각 샘플별 임베딩 전체) |
통계 사용 범위 | Mini-batch 전체의 평균·분산 | 각 샘플(인스턴스) 내부의 평균·분산 |
배치 의존성 | O (배치 크기·분포에 민감) | X (배치 크기에 상관없이 동작) |
학습 중 파라미터 | γ, β (채널별) | γ, β (임베딩 차원별) |
추론 모드 | 학습 시 축적한 이동 평균·분산 사용 | 학습과 동일하게 각 샘플에서 계산 |
주요 용도 | 이미지 분류·객체 검출 등 CNN 계열 | Transformer, RNN/LSTM, MLP 등 순차·토큰 모델 |
장점 | • 강력한 일반화 효과 • 훈련 속도↑ |
• 작은 배치나 배치 크기=1에서도 안정 • 시퀀스 모델에 적합 |
단점 | • 배치 크기 작으면 통계 불안정 • 순차 처리 모델에 부적합 |
• 배치 전체 통계 활용 못 함 • 공간적 정규화 불가 |
BatchNorm vs LayerNorm
1. BatchNorm
- 어디서 쓰나?
- 주로 CNN(Convolutional Neural Network)의 각 채널(feature map)별로, 배치 전체에서 평균·분산을 계산해 정규화.
- 예: nn.BatchNorm2d, nn.BatchNorm1d 등.
- 장점
- 배치 단위 통계가 풍부할 때 매우 강력한 정규화 효과
- 내부 공변량 변화(Internal Covariate Shift) 억제
- 큰 배치에서는 빠른 수렴 및 일반화 성능 향상
- 주의
- 작은 배치(예: batch size=1)나 온라인 추론(한 샘플씩 처리) 시 통계가 부정확 → 성능 저하
- 순차적 생성(auto-regressive decoding) 모델에 바로 쓰기 어려움
2. LayerNorm
- 어디서 쓰나?
- Transformer, RNN/LSTM 같은 시퀀스 모델의 토큰 임베딩이나 MLP 레이어 후에 사용
- nn.LayerNorm 으로 구현
- 장점
- 배치 크기에 독립적 → 작은 배치나 1샘플씩 처리해도 안정적
- 시퀀스 길이에 관계없이 동일한 정규화
- Residual 구조와 결합 시 학습 안정성 향상
- 주의
- 배치 전체 통계 활용 못 하므로, CNN의 공간적 정보 정규화에는 적합하지 않음
- 배치 단위 통계가 풍부할 때 BatchNorm만큼 극적인 성능 향상을 기대하기 어려움
'AI 일반 > 모델, 아키텍처, 구현' 카테고리의 다른 글
Transformer vs LLaMA 모델 비교 (0) | 2025.06.17 |
---|---|
pytorch 구현함수 내부 (0) | 2025.06.17 |
causal mask (1) | 2025.05.28 |
Model workflow (1) | 2025.01.14 |
loss 값 저장 및 출력 (7) | 2025.01.14 |