Learn

[머신러닝] Normalization 종류

부루기 2024. 6. 12. 13:23
728x90

서론

  1. Batch Normalization은 아마도 딥러닝 분야에서 정말 기여 높은 내용으로 반드시 알아야할 내용이다.
  2. 다만 BN 뿐만 아니라 다른 Normalization도 존재하는데 그 부분이 많진 않으나 헷갈릴 부분에 대해서 간략한 설명을 하고자 한다.

본론

  1. Batch란 학습을 하는 하나의 단위이며, 하나의 배치에는 여러개의 샘플이 들어가 있다. 샘플(Instance)는 모여서 하나의 학습단위로 쓸 수 있다는 것이다.
    1. 예시를 들자면 GD를 하기 위해 3개의 점을 한번에 학습한다면, 3개의 점(Batch), 하나의 점(객체, Instance)가 된다.
  2. Batch Normalization
    1. 하나의 배치에 들어있는 하나의 객체에 대해서 같은 채널은 채널끼리 평균, 분산을 구한다.


  3. Layer Normalization
    1. 하나의 샘플에 속한 채널을 무시하고 평균, 분산을 구하는 것이다.
    2. RNN과 같은 시퀀스 모델에 적합합니다.
    3. 각 샘플의 특성(feature) 벡터를 독립적으로 정규화합니다.


  4. Instance Normalization
    1. 각 배치의 채널 별 * 각 배치 안에 있는 샘플끼리 전부 하는 것
    2. 쉽게 생각하면 Batch Normalization + Layer Normalization 한번에 한 것이다.
    3. 스타일 변환 작업에서 효과적입니다.
    4. 각 샘플을 독립적으로 정규화하므로 배치 크기에 영향을 받지 않습니다.


  5. Group Normalization
    1. Instance Normalization에서 채널별로 하지 않고 1개 초과로 늘렸다고 생각하면 Group Normalization이다
      1. 이와 비슷한 이해가 Group Convolution ↔ Depthwise Convolution과 매우 유사하다
    2. 작은 배치 크기에서도 안정적인 성능을 보입니다.
    3. 입력 채널을 그룹으로 나누어 정규화하므로, 채널 간 상호 작용을 고려합니다.
    4. Group의 크기는 하이퍼파라미터로 설정할 수 있습니다

 

 

 

결론

  1. Batch Normalization → 하나의 배치에서 채널로 묶은 것
  2. Layer Normalization → 배치 안의 하나의 샘플을 묶은 것
  3. Instance Normalization → Batch Normalization X Layer Normalization
  4. Group Normalization → Instance Normalization에서 한 개의 채널을 여러개로 늘려서 묶는 것
  • 사실 이해하기 어렵지 않은 내용이지만 충분히 헷갈릴 수 있고 이름만 보고 예측하지 말고 다시 확인하고 공부하는 것으로 그저 넘어가지 않도록 작성한다.
728x90