Learn/머신러닝

정규화 모델 (Ridge, LASSO, Elastic Net)

push and sleep 2022. 9. 3. 23:21

# 무엇이 좋은 모델인가

- 현재 데이터(training data)를 잘 설명하는 모델 (Explanatory modeling)

- 미래 데이터(testing data)에 대한 예측 성능이 좋은 모델 (Predictive modeling)

 

결국 MSE를 줄이는게 중요하다. 

    > Bias와 Variance를 줄여야 한다. 

 

1번이 가장 좋고 4번이 가장 나쁜건 당연한데, 2/3번은 상황에 따라 다르다. 

 

그러면 어떻게 Variance를 줄일 것인가?

    > subset selection method는 설명변수 일부만 사용하여 회귀 계수를 추정하는 방법

           > 이를 통해 bias는 증가할 지라도 variance를 줄일 수 있다. 

 

# Regularization

다시 돌아가서 좋은 모델에 대해서 생각해보자. 

아래 중 어떤 것이 가장 좋은 모델일까?

 

 

차수가 늘어날 수록 train error는 줄어들지만 test error는 그렇지 않다. 

1번은 Bias가 크다. 

3번은 Variance가 크다. 

2번이 절충 모델이다. 

 

그럼 차수가 계속 커지지 않게 하려면 어떻게 해야할까?

 

가령 아래와 같이 패널티를 부여한다면 차수가 늘어나지 않을 것이다. 

일반화해서 표현하면 아래와 같다. 

λ가 위에서 5000에 해당하고 이를 통해 regularization 정도를 컨트롤 할 수 있다. 

    > 너무 크면 underfitting, 너무 작으면 underfitting

    > 이로 인해 bias는 증가할지라도 variance는 감소한다. 

 

제약이 없다면 MSE가 최소인 모델이 가장 좋지만,

제약이 있다면 그 범위 내에서 MSE가 최소인 것을 찾아야 한다.  

 

# Ridge Regression

β의 L2-norm (제곱)을 제한함

 

MSE를 conic equation 2차식으로 바꾸면 판별식을 쓸 수 있다. 

MSE를 가지고 구해보면 0보다 작다는 결론이 나온다. (타원)

즉, MSE의 자취는 타원임을 기억하고 아래 그림을 보자. 

 

MSE가 마냥 작을때는 Ridge의 제약조건을 만족하지 못한다. 

타원 모양으로 계속해서 MSE를 키우다보면 제약식을 만족시키는 최소 구간에 도달하게 된다. 

 

t값이 크면 제약이 적어서 파란원이 크니 MSE의 값과 가까워진다. 

t값이 작을수록 제약이 커서 파란원이 작으니 β값들이 0에 가까워진다. 

 

Ridge는 제곱이므로 패널티가 포물선 형태이다.  

 

# LASSO

Least Absolute Shrinkage and Selection Operator

  • Ridge와 마찬가지로 회귀 계수가 커지지 않게 하면서 (Shrinkage)
  • 중요한 변수를 선택하는 기능까지 있음 (Selection)
  • 회귀계수 β의 L1-norm을 제한 (절댓값)

  • t와 λ의미는 같음.
    • t가 크다 또는 λ가 작다는건 제약이 작다 >> β가 커진다
    • t가 크다 또는 λ가 크다는건 제약이 크다 >> β가 작아진다

  • Ridge그림은 제곱이라서 제약식이 원이었고, LASSO는 절댓값이라서 마름모 모양이다.
  • 만나는 지점에서 β1이 0인데 이는 해당 변수가 y를 예측하는데 별로 중요하지 않다는 의미이다. 
    • 그 외의 변수는 중요한 변수가 된다. (selection)

 

LASSO는 절댓값이므로 V형태로 패널티가 나타난다. (Ridge는 포물선)

Ridge와 달리 Lasso fomulation은 closed from solution을 구하는 것이 불가능 (L1 norm은 미분 불가능)

그러므로 Numerical optimization methods를 쓴다. 패스!

 

Lambda

람다는 하이퍼 파라미터로 β를 얼마나 제약할 것인지를 결정한다. 

  • λ = 0: 최소제곱법 (ordinary least square)와 같음
  • λ = ∞: 제약을 크게 가한다는 뜻. β가 0이 될 수 밖에 없고 상수만 남게 됨. 
  큰 λ 작은 λ
변수 수 적음 많음
모델 복잡도 간단한 모델 복잡한 모델
해석 쉬움 어려움
학습 오차 underfitting overfitting

 

Robustness

Q. 데이터가 바뀔 때 마다 변수 선택이 달라지는건 아닐까? (강건성)

 

Ridge vs. Lasso

Ridge는 제약이 클수록 β값이 작아진다. (Shrinkage)

Lasso는 β가 작아질 뿐만 아니라(Shrinkage) 0으로 수렴한다. (selection)

Ridge Lasso
L2-norm regularization L1-norm regularization
변수 선택 불가능 변수 선택 가능
Closed form solution 존재
(미분으로 구함)
Closed form solution 존재하지 않음
(numerical optimizatino 이용)
변수 간 상관관계가 높은 상황 (collinearity)에서
좋은 예측 성능
변수 간 상관관계가 높은 상황에서
Ridge에 비해 상대적으로 예측 성능이 떨어짐
크기가 큰 변수를 우선적으로 줄이는 경향  

 

Lasso의 한계

변수 간 상관관계가 높을 경우 성능이 잘 나오지 않음

 

# Elastic Net

Ridge와 Lasso를 합친 모델

  • 식을 보면 L1, L2 norm이 모두 들어있음
  • 하이퍼 파라미터가 λ1, λ2 두 개 

그래프도 Ridge와 Lasso의 중간 형태로 나타난다. 

패널티도 Ridge와 Lasso의 중간 형태로 나타난다. 

 

참고: 김성범 교수님 강의 (https://youtu.be/sGTWFCq5OKM)