Interview

Normalization은 무엇이고 왜 필요한가요?

StoneSeller 2022. 11. 16. 11:16

Normalization(정규화) vs Regularization(정규화)

  • Normalization : 데이터 feature들의 분포(scale)를 조절하여 균일하게 만드는 방법입니다.
                                     데이터 자체를 정규화 시키는 것
  • Regularization : 모델에 테크닉적으로 정규화 시키는 것
    • Early Stopping
    • Dropout
    • data augmentation

둘 다 목적은 같다
train에서 나온 성능을 test에서도 잘 발현시키고자 함 (generalization 성능)

 

 

 

Normalization을 사용하는 이유?

  • feature간의 분포(scale)차이가 매우 큰 경우, 큰 scale을 가지는 feature가 작은 scale을 가지는 feature보다 모델에 더 많이 반영되기 때문에  Normalization을 통해 모델에 반영되는 scale을 동일하게 만듭니다.
    ex) 나이: 두자리의 scale, 월급: 백만 단위의 scale
    + 노이즈가 작아지므로 overfitting이 억제되는 효과가 있음
  • 경사 하강법이 더 적은 반복으로(빠른 학습) global optima에 도달하기 위해 사용한다.

 

 

 

 

 

 


신경망에서는 input layer에 정규화된 값을 입력하더라도, layer를 통과할 때 마다 weight의 영향을 받아 매번 입력 데이터의 분포가 바뀌게 된다.(Internal Covariance Shfit) (학습의 불안정화)

  • Batch Normalization
    • 배치의 평균과 분산을 이용해서 정규화 한 뒤에, scale 및 shift 를 감마(γ) 값, 베타(β) 값을 통해 실행한다.
      이 때 감마와 베타 값은 Backpropagation을 통해서 학습이 된다.
    • regularization 효과가 있기 때문에 dropout 등의 기법을 사용하지 않아도 된다.
  • Layer Normalization 
    • Batch에 대한 의존도를 제거한 Normalization 기법
    • Layer에 기반한 Normalization

 

 

 


reference : https://www.youtube.com/watch?v=_hTQsDHhb54&t=838s 

 

728x90