오버피팅을 줄이기 위해서 모델이 가지고 있는 파라미터/자유도를 고정(제한)하는 방법을 사용할 수 있다.
선형 모델에 대해서는 주로 사용되는 방법이 모델이 가지는 가중치(weight)를 제한하는 방식을 사용한다. 크게 3가지의 방법이 존재한다.
① Ridge ② Lasso ③ Elastic Net
* 3가지 방법들을 적용하기 전에 중요한 것은 StandardScaler와 같은 Scaler를 사용하는 전처리 과정이 있어야 정규화의 효과가 더 좋아진다는 것
1) Ridge Regression (L2 Regularization)
Ridge Regression(a.k.a Tikhonov 정규화)은 linear regression에 다음과 같은 regularization term을 더하는 것이다.
$\alpha$값이 의미하는 것은 모델을 얼마나 정규화는 정도이다. 만약 값이 0이라면 일반 linear regression과 동일해진다.
해당 regularization term은 데이터에 더 학습을 잘하는 것 + 모델 가중치 값을 작게 만들어주는 효과가 있다.
cost function은 다음과 같다.
2) Lasso Regression (L1 Regularization)
Lasso Regression의 Lasso는 "Least absolute shrinkage and selction operator"의 줄임말이다. Lasso Regression의 아이디어도 기본 linear regression에 정규화 값을 추가하는 것이다. $l_{2}$ norm의 제곱을 사용한 Ridge와 달리, Lasso는 $2\alpha$값을 $l_{1}$ norm 값에 곱한 값을 사용한다.
cost function은 다음과 같다
Ridge와 Lasso의 차이점은 Ridge의 경우 모든 feature들을 사용해서 계수를 조정하지만, Lasso는 feature selection을 가능하게 한다는 점이다.
3) Elastic net Regression
Elastic net은 Ridge와 Lasso를 합쳐서 사용하는 방법이다.
cost function을 보면 직관적으로 이해를 할 수있다.
mix ratio $r$을 사용해서 어떤 방법에 더 가중치를 줄지 결정할 수 있다.
그렇다면 이 3가지 방법 중 어떤 것을 사용해야 될까?
일단 쌩 linear regression보다는 정규화 term이 있는게 대부분 유용하다.
Ridge는 보통의 경우 잘 작동하지만 만약 불필요한 특징들이 있다면 Lasso나 Elastic net이 낫다.
Lasso보다는 Elastic net이 선호되는데, feature의 개수가 training instance보다 훨씬 많거나 특정 feature들이 상관 관계를 가지고 있다면 Lasso가 불규칙적으로 작용할 수도 있기 때문이다.
'AI > ML' 카테고리의 다른 글
[ML] 오차/오류의 종류 (0) | 2024.09.06 |
---|---|
[ML] 경사하강법 (Gradient Descent) (0) | 2024.09.05 |
[ML] 분류 (Classification) (0) | 2024.08.16 |
[ML] 모델 파인튜닝 (0) | 2024.08.14 |
[ML] 데이터셋 준비 (0) | 2024.08.13 |