앎을 경계하기

Machine Learning

[머신러닝 개념정리] Normalization/Standardization/Regularization

양갱맨 2020. 4. 8. 14:03

Normalization/Standardization/Regularization

Data preprocessing을 위해 Normalization, Standardization과 같은 방법을 사용한다.
model의 weight가 overfitting하는 것을 막기 위해 Regularization을 사용한다.


Normalization

original data distribution을 (0, 0)으로 shift 한 후, 분포의 범위를 [0,1]로 rescale 하는 방법

$$
\frac{X-\min(X)}{\max(X)-\min(X)}
\ or \
\frac{X-\mu}{\sigma} \ \text{2번째는 standardization이기도 함.}
$$

  • 사용하는 이유
    • Local minimum에 빠질 가능성을 줄이고 학습을 더 빠르게 한다.

image

Standardization

평균(mean), 분산(var), 표준편차(std)를 사용해서 Normalization 하는 방법
$$
\frac{X-\mu}{\sigma}
$$

  • mean
    $$
    \mu = \mathbb{E}(X) = \frac{1}{N}\sum_{i=1}^{N}{x_i}
    $$

  • variance
    $$
    Var(X)=\mathbb{E}((X-\mu)^2)=\frac{\sum_{i=1}^{N}{({x_i}-mean(x))^2}}{N}
    $$

  • standard deviation
    $$
    \sigma = \sqrt{Var(X)}
    $$


Regularization

trained weight에 noise term을 추가하여 overfitting을 방지하는 방법
즉, local noise, Outlier의 영향을 더 적게 받기 위해 사용한다.

$\lambda$ term은 learning rate와 같은 hyper parameter이고 Regularization의 영향력이다. 0에 가까울수록 효과가 없어진다.

  1. L1 Regularization
    $$
    L = \frac{1}{N}\sum_{i=1}^{N}{L(y_i,\hat{y_i})+\frac{\lambda}{2}|W|}
    $$

  2. L2 Regularization
    $$
    L = \frac{1}{N}\sum_{i=1}^{N}{L(y_i,\hat{y_i})+\frac{\lambda}{2}|W|^2}
    $$

여기서 $L(y_i,\hat{y_i})$ 는 기존 loss function이다.
두 방법은 기존의 cost function에 가중치 크기가 포함(L1은 가중치, L2는 가중치 제곱)되기 때문에 가중치가 너무 크지 않은 방향으로 학습된다. 이것을 weight decay라고 한다.

L2 Regularization을 사용하는 회귀 모델을 Ridge Regression이라고 함.

L1 vs L2 Norm

L2 Norm은 각 벡터에 대해 항상 Unique value를 계산한다.
L1 Norm은 경우에 따라 특정 벡터 없이 중복되는 value를 계산할 수 있다.

이것은 L1 Norm이 Feature selection이 가능하다는 의미이다. 그러나 L1의 경우 미분이 불가능한 점이 존재하기 때문에 Gradient 사용하는 학습에서는 주의가 필요하다.

'Machine Learning' 카테고리의 다른 글

DATASET - Semantic Segmentation  (0) 2021.02.05
DATASET - Image Classification  (0) 2021.02.05
[머신러닝 개념 정리] learning rate  (0) 2020.04.08
Scikit-learn Datasets 관련 정리  (0) 2020.02.14
선형(Linear)에 대한 이해  (0) 2019.11.23