1. Batch Normalization (BN)
- 적용 위치: 미니배치의 각 차원(feature)에 대해 정규화를 수행합니다.
- 방법: 한 미니배치(batch)에서 각 feature의 평균과 분산을 계산하고, 이를 이용해 정규화합니다. 즉, 한 미니배치 안에서 각 feature마다 독립적으로 정규화가 이루어집니다.
$$
\hat{x} = \frac{x - \mu_{\text{batch}}}{\sqrt{\sigma_{\text{batch}}^2 + \epsilon}}
$$
여기서 μ_batch와 σ_batch는 배치 내의 평균과 분산을 의미합니다.
- 장점:
- 학습 속도를 향상시키고, 더 높은 학습률을 사용할 수 있게 합니다.
- 과적합을 방지하는 데 도움을 줄 수 있습니다.
- 미니배치 크기에 의존하며, 훈련과 추론 시 다르게 동작(훈련 시에는 배치 통계, 추론 시에는 학습된 이동 평균 사용)합니다.
- 단점:
- RNN이나 소규모 배치를 사용할 경우 성능이 좋지 않을 수 있습니다.
- 배치 크기에 크게 의존하여, 매우 작은 배치에서는 통계가 불안정해집니다.
2. Layer Normalization (LN)
-
적용 위치: 배치가 아니라, 각 레이어의 모든 입력에 대해 정규화를 수행합니다. 즉, 배치 차원과 무관하게 각 샘플에 대해 독립적으로 정규화를 합니다.
-
방법: 입력 벡터의 각 요소(feature)가 아니라, 해당 레이어의 모든 노드(즉, feature 벡터 전체)에 대해 평균과 분산을 계산하고 정규화합니다.
$$
\hat{x} = \frac{x - \mu_{\text{layer}}}{\sqrt{\sigma_{\text{layer}}^2 + \epsilon}}
$$
여기서 μ_layer와 σ_layer는 레이어 단위의 평균과 분산을 의미합니다.
- 장점:
- 배치 크기에 무관하게 적용할 수 있습니다.
- 순환 신경망(RNN) 같은 시간적 종속성이 있는 모델에 적합합니다.
- 트레이닝과 추론 시 동일하게 동작합니다.
- 단점:
- 배치 정규화보다 일반적으로 더 느릴 수 있습니다.
- 작은 배치에서도 효과적이지만, 모든 모델에 대해 항상 Batch Normalization만큼의 성능 향상을 보장하지는 않습니다.
요약
- Batch Normalization은 미니배치에서 각 feature에 대해 정규화를 수행하며, 주로 CNN과 같은 네트워크에 적합하고, 큰 배치를 사용하는 경우에 더 효과적입니다.
- Layer Normalization은 배치 크기와 상관없이 각 샘플 내의 feature 벡터를 정규화하며, RNN과 같은 네트워크에서 주로 사용됩니다.

Ref