Regularization
정규화는 overfitting을 방지하게 됩니다. 정규화항을 통해 모델에 미치는 차원의 수의 수를 감소시키기 때문입니다.
대표적으로 회귀모델에서 정규화항을 붙이는 방법은 3가지가 있습니다.
사실 수식적으로 정규화에 대한 의미를 해석할 수도 있겠지만, 그러기가 쉽지는 않으니 쉬운방법으로 설명해보겠습니다.
일반적인 회귀방법에서 비용함수는 MSE를 최소화하는 방향으로 나아가게 됩니다. 일반적인 회귀방법에서 데이터의 특징수가 많아질수록(차원이 증가할수록) overfitting에 대한 위험성이 커지게 됩니다.
이를 막기위해 정규화 항을 사용하게 되는데요. MSE + regular-term으로 비용함수를 재정의하게 됩니다.
그렇다면 비용함수를 최소화하는 방향에선 regular-term또한 최소화가 되어야 할겁니다.
최소화를 진행하게 되면서 가중치가 낮은 항은 정규화 방법에 따라 0으로 수렴하여 사용하지 않게되거나 0에 가까운 수가 되어 모델에 미치는 영향이 덜해지게 됩니다.
릿지 회귀(능선회귀, Lidge), 라쏘회귀(Lasso), 엘라스틱넷(elasticNet)
이 세가지에 대해서 간단히 적어보겠습니다.
릿지 회귀
릿지 회귀는 L2-Norm을 사용한 회귀입니다. 이 회귀방법은 일반적으로 영향을 거의 미치지 않는 특성에 대하여 0에 가까운 가중치를 주게 됩니다.
라쏘 회귀
라쏘 회귀는 L1-Norm을 사용한 회귀입니다. 특성값의 계수가 매우 낮다면 0으로 수렴하게 하여 특성을 지워버립니다. 특성이 모델에 미치는 영향을 0으로 만든다는 것은 bias를 증가 시켜 overfitting을 방지한다는 의미가 되겠죠?
엘라스틱넷
엘라스틱 넷은 라쏘회귀와 릿지회귀의 최적화 지점이 서로 다르기 때문에 두 정규화 항을 합쳐서 r로 규제정도를 조절하여 준다.
밑의 그림을 보면, L1-Norm을 사용한 것은 마름모꼴이 되면서 가중치 중 하나가 0이 되는 걸 볼 수 있다.
그에 반해, L2-Norm은 두 가중치를 서서히 줄어들게 해서 작은 수의 가중치를 가지는 것을 볼 수 있다.
Reference
핸즈온 머신러닝 1권
'# Machine Learning > 글 공부' 카테고리의 다른 글
(Neural Network) train 후 validation data를 어떻게 처리해야 할까? (0) | 2019.07.02 |
---|---|
Activation function에 맞는 initilization parameters (0) | 2019.05.20 |
Deep Neural Network에서의 bias, variance (0) | 2019.03.18 |
Stndardization, Normalization, Minmax(표준화, 정규화, 민맥스) (0) | 2019.03.17 |
[Ubuntu 16.04] CUDA + Cudnn 설치하기 (3) | 2019.03.04 |