딥러닝을 공부하다 보면 “정규화” 라는 용어를 참 자주 접하게 된다.
그런데 애석하게도 Normalization, Standardization, Regularization 이 세 용어가 모두 한국어로 정규화라고 번역된다.
이 세가지 용어가 다름을 알고 난 뒤로부터 가능한 딥러닝 용어들을 한글이 아닌 영어로 쓰려고 하고 있다.
매번 헷갈리는 Normalization, Standardization, Regularization의 차이에 대해서 간략히 정리해둔다.
Normalization
- 값의 범위(scale)를 0~1 사이의 값으로 바꾸는 것
- 학습 전에 scaling하는 것
- 머신러닝에서 scale이 큰 feature의 영향이 비대해지는 것을 방지
- 딥러닝에서 Local Minima에 빠질 위험 감소(학습 속도 향상)
- scikit-learn에서
MinMaxScaler
Standardization
- 값의 범위(scale)를 평균 0, 분산 1이 되도록 변환
- 학습 전에 scaling하는 것
- 머신러닝에서 scale이 큰 feature의 영향이 비대해지는 것을 방지
- 딥러닝에서 Local Minima에 빠질 위험 감소(학습 속도 향상)
- 정규분포를 표준정규분포로 변환하는 것과 같음
- Z-score(표준 점수)
- -1 ~ 1 사이에 68%가 있고, -2 ~ 2 사이에 95%가 있고, -3 ~ 3 사이에 99%가 있음
- -3 ~ 3의 범위를 벗어나면 outlier일 확률이 높음
- 표준화로 번역하기도 함
- scikit-learn에서
StandardScaler
Regularization
- weight를 조정하는데 규제(제약)를 거는 기법
- Overfitting을 막기위해 사용함
- L1 regularization, L2 regularizaion 등의 종류가 있음
- L1: LASSO(라쏘), 마름모
- L2: Lidge(릿지), 원