[Related] - Layer Norm과 Batch Norm의 효율성 차이

배치 정규화(Batch Normalization)과 레이어 정규화(Layer Normalization)의 효율성 차이

'BN'은 Batch Normalization의 약자로, 신경망의 학습 과정을 안정화시키고 가속화하는 기법입니다. 이 기법은 각 층의 입력을 정규화하는 과정을 포함하여, 학습하는 동안 각 층에서의 입력 분포가 크게 변하지 않도록 도와줍니다. 이를 통해 학습률을 높이고 초기화에 대한 의존도를 줄일 수 있습니다.


Batch Normalization은 신경망의 각 층에서 활성화 함수로 넘어가기 전에 적용되며, 각 mini-batch의 평균과 분산을 사용하여 정규화를 수행합니다. 정규화 과정은 다음과 같습니다:

  1. Mini-batch의 평균을 계산합니다.
  2. Mini-batch의 분산을 계산합니다.
  3. Mini-batch의 각 입력을 평균으로 빼고 분산으로 나누어 정규화합니다.
  4. 정규화된 데이터에 대해 scale과 shift 변환을 수행하여 네트워크가 필요에 따라 원래의 데이터 분포로 되돌릴 수 있도록 합니다.

이 과정을 통해 각 층의 입력 분포가 일정하게 유지되어 'Internal Covariate Shift' 문제를 완화할 수 있습니다.

'LN'은 Layer Normalization을 의미합니다. Layer Normalization과 Batch Normalization은 둘 다 정규화를 수행하지만, 그 적용 방식에 차이가 있습니다. LN은 각 입력 샘플에 대해 특성 차원 전체에 걸쳐 정규화를 수행하는 반면, BN은 mini-batch 내에서 각 특성에 대해 독립적으로 정규화를 수행합니다.

'BN은 이전 convolution layer 또는 linear layer로 접힐 수 있으며 이는 LN에 비해 런타임에 이점이 있다'
'이는 LN에 비해 런타임에 이점이 있다'\ 는 BN이 학습 시에만 mini-batch의 통계를 사용하고 추론 시에는 이동 평균과 이동 분산을 사용하기 때문입니다. 이로 인해 추론 시에는 전체 데이터셋에 대한 mini-batch의 크기에 영향을 받지 않으며, 이는 특히 배치 크기가 작을 때 유리합니다. 반면, Layer Normalization은 샘플 내에서의 통계를 사용하기 때문에 배치 크기에 영향을 받지 않는 장점이 있지만, 각 샘플마다 정규화를 해야 하므로 연산량이 더 많아질 수도 있습니다.

스크린샷 2023-11-08 11 36 28
  1. 배치 정규화는 미니 배치 내에서 독립적으로 각 특성을 정규화합니다. 반면 레이어 정규화는 배치 내의각 입력을 모든특성에 걸쳐 독립적으로 정규화 합니다.
  2. 배치 정규화는 배치 크기에 의존적이어서 작은 배치 크기에서는 효과적이지 않습니다. 레이어 정규화는 배치 크기와 무관하게 적용될 수 있어 작은 배치 크기에도 적용할 수 있습니다.
  3. 배치 정규화는 훈련과 추론 시에 서로 다른 처리가 필요하지만, 레이어 정규화는 특정 층으로의 입력 길이를 따라 수행되므로 훈련과 추론 시 동일한 연산을 사용할 수 있습니다.

따라서, 레이어 정규화는 훈련과 추론이 동일하게 진행되고 배치 크기에 무관한 특성 때문에 더 효율적일 수 있습니다. 특히, 작은 배치 크기나 시퀀스 데이터를 다룰 때 그 효율성이 더 잘 드러납니다.

반응형