본문 바로가기
[ 머신러닝 ]

Regularization vs. Standardization vs. Normalization / 정규화?

by 불주먹고양이 2023. 6. 2.

Regularization, Standardization, Normalization 모두 한국어로 '정규화' 이다.

(Standardization은 '표준화'라고 번역되는 경우도 있다.)

 

이걸 통해서 최대한 영어를 쓰는 것이 필요함을 깨달았다..

특히 Normalization과 Standardization이 가장 헷갈렸는데, 이번 기회에 한번 정리해보려고 한다.

 

 

1. Regularization

가중치 최적화를 하는 과정에서 규제 (제약)를 거는 기법으로, 오버피팅을 방지하기 위함이다.

높은 복잡도를 방지하여 모델을 적당히 fit 하도록 한다.

 

Regularization의 예시로 L1 규제, L2 규제, Drop out, Early Stopping, Weight Decay 등이 있다.

그 중에서 L2 규제를 보면,

기존의 손실함수 (MSE)에 L2 규제를 적용한 것을 새로운 손실함수로 정의하였다.

 

이처럼 Regularization은 손실함수를 줄이는 과정에서 제약을 두어서 가중치가 과도하게 커지는 것을 방지한다.

 

 

 

2. Standardization

데이터 값의 범위 (scale)를 평균이 0이고 분산이 1이 되도록 변환하는 것을 말한다.

학습 전에 Scaling을 통해서 scale이 큰 feature의 영향이 커지는 것을 방지한다.

 

Standardization은 z-score normalization이라고도 한다.

즉, 정규분포를 표준 정규분포로 변환하는 것과 유사하다.

Standardization은 데이터에 Outlier나 데이터들 간의 scale이 다를 때 유용하다.

출처 : https://bskyvision.com/849

 

 

3. Normalization

데이터 값의 범위를 compact하게 만들어주기 위한 방법이다. 즉, 데이터 scaling이다.

데이터 값을 0 ~ 1 사이로 만들어준다!

 

예시로 Min-Max Scaling이 있다.

 

구글링을 하다보면 Normalization == Min-Max Scaling 으로 보는 경우도 많은데, 내 생각에는 Normalization이 더 큰 범위라고 생각된다. 

출처 : https://bskyvision.com/849

 

 

4. Standardization vs. Normalization 

Standardization Normalization
Z-score Scaling Min-Max Scaling
평균이 0이고 표준편차가 1이 되도록 하는 경우에 사용한다. 피처 스케일이 다른 경우에 사용한다.
Outlier의 영향을 덜 받는다. Outlier의 영향을 많이 받는다.
Scikit-learn에서의 StandardScaler Scikit-learn에서의 MinMaxScaler
피처의 scale이 정규분포 또는 가우시안 분포일 때 유용하다. 피처의 scale을 알지 못할 때 유용하다.
   

출처 : https://www.simplilearn.com/normalization-vs-standardization-article