이번 포스팅에선 모델선택의 방법 중 하나인 Shrinkage methods 가 사용하는 Regularization (규제화, 벌점화) 와 이를 이용한 LASSO, Ridge Regression에 대해 정리해보려고 한다.
참고한 자료는 수업시간에 사용한 교재 ISLR2와 이를 기반으로 한 유튜브 영상이다.
https://www.statlearning.com/resources-second-edition
Shrinkage methods
Shrinkage methods는 Stepwise methods (전진 선택 방법, 후진 제거 방법 등) 과는 다르게, 변수를 제거하거나 선택하면서 모델을 만들어가는 것이 아니다. Stepwise methods들이 기본적으로 Least Squares를 최소로 만들기 위해 Parameter, 즉 변수들을 제거, 선택해나가는 방식이라면, Stepwise methods는 Least Squares를 최소로 만들기 위해 Parameter의 계수, 즉 $\beta$ 를 조절해나가는 방식이다. 단순히 조절해나가는 것이 아니라 0으로 보내버릴 정도로 작게 만드는데, 이때 결국 0에 도달해버린 $\beta$가 생기면 그 $\beta$에 해당하는 변수는 제거되는 식이다.
여담으로 OLS(Ordinary Least Squares) 를 사용하지 않고 이런 식으로 변수들을 제거-선택해나가는 방식 중 하나가 PCA 같은 차원 축소 방식이다. PCA 말고 LDA, PLS 등 여러 기법들이 있는데 이는 나중에 다루어보도록 하겠다.
Shrinkage methods의 두 기법, LASSO 와 Ridge
그렇다면 어떻게 $\beta$를 0으로 보낸다는 것일까?
OLS 에서 최소화하는 것은 SSE (예측 모델과 실제 데이터의 차이), 즉 잔차이다.
SSE와 RSS는 같은 값을 의미하지만 표기하는 방식이 다를 뿐이다. 즉 이 잔차를 최소화하는 $\beta$들을 찾는 것이다.
반면 아래는 Ridge Regression 에서 최소화 하는 식이다.
RSS에다가 $\lambda \sum_{j=1}^{p} \beta_{j} ^{2}$ 까지 더한 값을 최소화해야 하는 것이 Ridge Regression 이다. 이 때 $\lambda \sum_{j=1}^{p} \beta_{j} ^{2}$ 을 $l_{1}$ penalty(벌점항) 이라고 부른다.
그리고 아래는 LASSO 식이다.
penalty에서 $\beta$의 제곱을 쓰는 것이 아닌 절댓값을 사용하는 차이가 있다. $l_{2}$ penalty 라고 부른다.
그래서 최소화해야하는 것에 어떤 것이 추가로 생겼다는 것은, 아래처럼 해석이 가능하기도 하다.
즉, SSE를 최소화해야하지만 단 $\beta$에 어떤 제약이 있어야 한는 것이다.
사실 이렇게 수식으로만 보면 그래서 이게 어떻게 $\beta$를 0으로 보낸다는 것이냐? 하는 의문이 생길 수밖에 없다. 그래서 책에 소개된 그림으로 이해해보고자 한다.
왼쪽이 LASSO, 오른쪽이 Ridge Regression 을 그래프로 표현한 것이다. 사각형과 원의 차이는 절댓값과 제곱의 차이라고 생각하면 된다. 저 파란 사각형과 파란 원(penalty) 이 바로 Regularization, 규제화를 작용하게 한다. 즉 벌점을 주어서 $\beta$ 를 규제하는 것이 Regularization이라고 보면 되겠다.
각설하고, $\hat{\beta}$ 은 OLS 를 통해 구한, SSE를 최소로 만드는 $\beta$ 들이다. ($\beta$ 는 1, 2 총 두 개인 상황이다.) 그런데 벌점항, 즉 제약이 걸려있기 때문에 저 파란 영역으로 들어가기 위해 $\beta$ 를 줄여나가야 한다. 빨간 선은 같은 영역의 SSE를 만드는 $\beta$ 들의 집합이다. $\beta$ 들을 쭉 내려오다가 파란색 영역에 도착하는 순간, 즉 접점이 바로 Ridge Regression과 LASSO 로 선택된 $\beta$ 의 값들이 되는 것이다.
그렇다면 LASSO와 Ridge Regression 에선 변수 선택은 어떻게 하는 것일까?
결론부터 말하자면 LASSO는 변수선택을 할 수 있으나, Ridge는 하지 못 한다. 그림을 자세히 보자.
LASSO 그래프에서 접점을 보면, $\beta_1$ 이 0이 됐음을 확인할 수 있다. $\beta_1$이 0이라는 것은, 결국 변수 $X_1$은 선택하지 않는다는 의미가 된다. 반면 오른쪽 Ridge 그래프를 확인해보면, 0이 되는 $\beta$가 존재하지 않는다. 단순히 이 예시에서만 그런 것이 아니라, 항상 그렇다. 수학적 사고력과 공간지각 능력이 뛰어나신 분들이라면, 필연적으로 원점을 기준으로 존재하는 원과 다른 좌표평면 상의 원은 접점이 축 위에 존재할 수 없다는 것을 알 수 있을 것이다. (단, $\hat{\beta}$이 애초에 축 위에 존재한다면 축 위에서 접점이 생긴다. 하지만 이 경우는 변수를 제거했다고 볼 수 없는 상황이다. 애초에 $\hat{\beta}$이 축 위에 있다는 것은 그 축에 해당하는 변수를 제거했다는 뜻이기 때문.)
이렇게 LASSO는 변수를 선택해주고, Ridge는 그렇지 않은 점에서 LASSO와 Ridge가 좋은 케이스들이 나온다. Ridge는 모든 변수들이 유의미할 때, LASSO는 무의미한 변수를 제거할 때 유용하게 사용될 것이다.
LASSO와 Ridge에서 중요한 하이퍼파라미터가 있다. 바로 그림에서 파란색 영역의 크기를 정해주는 $\lambda$ 이다. $\lambda$가 0에 가까워진다면, $\beta$들도 0으로 가까워져 모든 변수가 무의미해지는 결과를 가져올 것이다. 반면 $\lambda$가 일정수준 이상 커진다면, OLS와 다를 바가 없는 상황이 연출될 것이다.
위 그림은 LASSO 모형에서 $\lambda$ 에 따라서 변화하는 지표들이다. 람다가 일정 수준 이상으로 커지면 오차가 아주 커지는 것을 확인할 수 있다. 보라색 X표시가 최적의 $\lambda$ 를 나타낸 지점이다. 그렇다면 이 최적의 $\lambda$는 어떻게 찾을까? 특별한 공식은 존재하지 않고 답은 Cross-validation이다. 즉 여러번 테스트해보면서 찾는 수밖에 없다고 한다.
이렇게 LASSO와 Ridge Regression에 대해서 정리해보았다. 결론적으로, LASSO와 Ridge는 $\beta$를 작은 값으로 통제하는, Regularization을 수행하는 방식이라고 정리할 수 있다.
'머신러닝' 카테고리의 다른 글
머신러닝 - 분류모델 평가지표 (Precision, Recall, Accuracy) + 1종, 2종오류 정리 (0) | 2023.07.15 |
---|---|
머신러닝 - Naive Bayes Classifier(분류) 정리 (0) | 2023.06.17 |
머신러닝 - Bootstrap 정리 with 중심극한정리, R (0) | 2023.05.31 |
머신러닝 - 차원 축소와 PCA (3) (0) | 2023.04.15 |
머신러닝 - 차원 축소와 PCA (2) (0) | 2023.04.14 |