🛠머신러닝

Regularization(정규화/규제화) 기법 - Ridge(L2 norm) / LASSO(L1 norm)

빅데희터 2023. 10. 17. 14:00
반응형

00. What is a good model?

'좋은 모델'이란 다음과 같은 조건을 만족시켜야 한다.

 

1) 학습 성능이 좋은 모델 

    - 즉, 현재 데이터(train set)를 잘 설명하는 모델

    - train set에 대한 에러가 적은 모델

    - training error를 최소화하는 모델

2) 일반화 성능이 좋은 모델

   - 미래 데이터(test set)에 대한 예측 성능이 좋은 모델

   - 학습에 사용되지 않은 새로운 데이터(test data)에 대한 예측 성능이 좋은 모델

 

여기서 둘 중 하나만 만족시킨다고 좋은 모델은 아니고, 1번과 2번을 적절하게 잘 만족시켜야 좋은 모델이라고 할 수 있다.

 

 

 

 

01. Bias와 Variance

Expected MSE : 실제 y값과 모델이 예측한 y값의 차이의 제곱에 대한 기댓값

즉, 미래 데이터(testing data)에 대한 예측 성능을 의미한다.

 

또한, Expected MSE를 전개하면 위의 식과 같이 크게 3 부분으로 나눌 수 있다

1) Irreducible Error

2) Bias

3) Variance 

 

이 세 가지 항목 중, 우리가 조절할 수 있는 것은 Bias와 Variance부분이다.

 

 

 

 

 

설명 참고 : https://bigdaheta.tistory.com/20

 

 

 

 

 

02. Regularization

2차원 좌표 평면상에 데이터를 표현했을 때, 맨 왼쪽과 같이 나타낼 수 있다고 가정한다.

이때 이 데이터를 1차원, 2차원 4차원 함수(모델)로 예측해 보면 위와 같은 형태로 각각 표현된다.

이 3가지 모델(함수) 중, 어떤 모델이 가장 좋다고 말할 수 있을까?

 

 

위의 그래프는 model complexity에 따른 training과 validation error를 표현한 그래프이다.

이때 1번 구간에서는 training error와 validation error가 모두 크다.(즉, bias가 크다)

반면, 2번 구간에서는 training error는 매우 작지만, validation에 대한 error는 매우 크다.

따라서 variance가 크다고 볼 수 있다.

 

 

 

 

왼쪽 그래프는 training data에 대해서는 성능이 굉장히 높게 나타나지만(즉, 학습능력은 좋지만) test data에 대한 예측력은 매우 감소하는 모델이며, 이를 overfitting(과적합)되었다고 표현한다. 이렇게 과적합된 모델은 일반화 성능이 떨어지기 때문에 실제 모델을 사용하는 것에는 한계가 있을 것이다. 따라서 이러한 경우, 모델의 학습 능력을 조금 떨어뜨리더라도 일반화 성능을 높여주는 것이 필요한데 (즉, 위의 그림에서 왼쪽 모델을 오른쪽 모델처럼 만들고 싶은 것), 이때 사용되는 방법이 '규제화(Regularization)'인 것이다.

 

즉, 규제화는 다음과 같이 설명할 수 있다.

- 모델이 너무 과적합되어 있는 경우, 학습성능을 조금 낮추더라도 모델의 일반화 성능을 높이고자 할 때 사용하는 기법

- 모델의 복잡도가 너무 높을 경우, 계수(파라미터)에 페널티를 부여해서 모델을 조금 단순화시키는 기법

- bias를 조금 증가시키더라도 variance를 감소시키고자 적용하는 기법

- Perfect fit을 포기함으로써(training accuracy를 낮춤으로써) potential fit(testing accuracy)을 증가시키고자 하는 기법

 

 

 

 

03. 규제화식에서 람다(λ)의 역할

위의 식에서 (1)은 최소제곱법에 해당되는 부분이고(Training accuracy), (2)은 일반화와 관련된 부분이다. 

(2) 번 부분에서 람다의 역할은 다음과 같다.

 

 

 

 

 

* 람다(λ)

- 하이퍼 파라미터(사람이 조절해 주는 부분)

-1번(Training accuracy)과 2번(Generalization accuracy)은 상충되는데, 이 상충을 조절해주는 역할

- 람다를 크게 하면 베타값들이 0에 가까워지기 때문에 모델이 일직선 형태가 되어 underfitting 발생

-람다를 작게 하면 (ex. 람다를 0으로 하면) 베타에 대한 제약이 아예 없어지기 때문에 그냥 최소제곱법이랑 동일해지며, overfitting이 발생

-람다와 t(제약조건)는 같은 역할을 수행

 

 

 

 

04. Ridge Linear Regression (릿지, L2 norm) 

 

Regularization 기법은 크게 Ridge(L2 Regularization)와 LASSO(L1 Regularization) 기법이 있으며, 이는 모델의 손실함수(Loss Function / Cost Function)에 각각 L2 Loss function과 L1 Loss function을 추가하는 것을 의미한다. norm의 차수에 따라서 형태가 달라지는데 L1 norm의 분포는 마름모꼴, L2 norm은 원의 형태를 띠며, p(norm의 차수)가 무한대로 갈수록 정사각형 형태를 띠게 된다.

 

 

 

L2 Regularization Term = lambda * (w1^2 + w2^2 +... + wn^2)

 

최소제곱법만을 가지고 모델의 에러를 최소화하는 지점은 빨간색점 부분이다. 하지만 이 부분은 제약조건(회색원)과 맞닿아있지 않으므로, MSE의 크기를 조금씩 키워(빨간색 원을 하나씩 키워)서 제약조건과(회색원과) 맞닿는 수준까지 크기를 키워나가야 한다. 이렇게 MSE(빨간원)의 크기를 키워나가는 것은 training set에 대한 성능을 떨어뜨리는 것과 같은 의미로 이해하면 된다.

최종적으로, L2 Regularization(Ridge)는 기존 cost function에 가중치 제곱의 합(회색원)을 더하는 형태이며, 제약 조건을 부여했을 때 베타 1과 베타 2 값이 매우 작아지는 것을 알 수 있다(='shrinkage').

 

 

 

 

05. LASSO(Least Absolute Shrinkage and Selection Operator)

L1 Regularization Term = lambda * (|w1| + |w2| +... + |wn|)

 

릿지와 같은 원리로, 위의 그림에서 제약 조건 만족하면서 MSE가 최소가 되는 점 (노란색 점)에서는 베타 1의 값이 0이 된다. 즉 해당 변수의 계수가 0이라는 것은 그 변수가 y를 예측하는데 아무런 영향을 미치지 못한다는 의미이다. 이러한 방법으로 중요한 변수는 살리고, 중요하지 않은 변수는 사용하지 않는 방법으로 변수 선택을 할 수 있는 것이다.

 

 

 

 

05. Ridge와 LASSO 비교

 

https://www.youtube.com/watch?v=Xm2C_gTAl8c

https://www.youtube.com/watch?v=pJCcGK5omhE&t=360s

반응형