본문 바로가기
머신러닝

Ridge and Lasso Regression

by 볼록티 2020. 10. 17.
728x90
반응형

저번시간에 기본적인 선형회귀식을 OLS방식으로 회귀식을 만드는 과정을 살펴보았다. 또 모델과 추정된 베타의 유의성을 통계적으로 검정해보았고, Robust regression으로써 loss function에서 Huber function을 사용한 regression의 방법도 살펴 보았다.

 

이번장에서 Ridge와 Lasso도 Robust regression와 마찬가지로 loss function을 변형하게 된다.

일반적인 OLS를 사용한 선형 회귀는 bias가 없는 estimator라고 한다(unbiased=불편추정량=편의가 없는 추정량).

모집단에 대한 통계량을 추정하는게 샘플들의 통계량이다. 추정하는 수식에 따라서 불편 또는 편의 추정량이 될 수 있다. 불편추정량이라함은 샘플이 모집단에서 랜덤에서 뽑힐 때마다 다르게 뽑히겠지만, 그것들의 기댓값이 모집단의 실제 통계량하고 같다는 것이 증명이 되면 불편추정량이고 그렇지 않으면 편의추정량이라 한다. 

 이때 OLS 로 베타들을 추정하는 것은 불편추정량을 얻는 방법에 속한다. 

 

OLS의 단점은 다음과 같다.

- OLS는 분산이 굉장히 큰 방법이다. 이상치에도 민감하게 반응하기 때문이다.

- 설명 변수가 많아지면, 어느 변수가 다른 변수들보다 더 모델에 도움이 되는지를 구별하기 힘들다.

- 분산을 줄이기 위해 계수를 줄이기도 한다.

 

 

Ridge와 Lasso는 이러한 분산을 줄이기 위해 편의(bias)를 키우게 된다. 

아래 그림의 과녁에 빨간점이 추정코자하는 목표라면 파란색 점으로 추정치가 찍힌다고 해보자. 그렇게 봤을 때, 기본적인 선형회귀 방법은 낮은 bias에 높은 variance이니 오른쪽 위의 과녁이 되고, Ridge나 Lasso를 활용해서 왼쪽 아래의 과녁처럼 추정하겠다 라고 생각하면 된다.

 

 

Bias와 variance간에는 trade off가 존재하게 된다.  

error는 아래의 식 처럼 f라는 모형으로 y추정치를 낸다 할 때, 이 두값으로 생긴 오차들의 제곱으로 나타낸 이 식을 분해 하게 된다.

분해를 하게 되면 아래와 같이 분해가 된다. 우항은 3개의 term으로 볼 수 있는데, 왼쪽 부터 차례대로 Bias의 제곱에 해당하는 값, Variance에 해당하는 값, 더이상 줄일 수 없는 오차로 구성된다.

OLS의 경우에는 불편추정량이니 Bias의 경우는 0이라고 볼 수 있어 Variance가 크게 된다.

 

아래의 그림을 보면 bias와 variance간의 trade-off관계를 볼 수 있다. bias와 variance값을 적절히 잘 조절해 model complexity를 조절하여 optimal한 model을 만들도록 한다.

 

 

Ridge와 Lasso의 경우에는 variance를 줄이기 위해 bias를 높여 전체적인 모델의 정확도를 높여 더 정확 한 추정을 하게 된다. 

 

 기존의 OLS objective function에서 추정된 회귀계수들을 제곱한 합을 더하는 term이 생겼다. 람다는 사용자가 지정하는 가중치이다.

 목적은 위의 목적함수를 최소화 하는 것이다. 그렇기 때문에 Ridge 목적함수의 $\lambda \sum \beta$ term도 커지면 안된다. 람다를 애초에 키우면 베타가 커지는 것을 막아주려고 베타값을 작게 추정할 수 밖에 없는 것이다. 예를 들어 이상치 하나 때문에 베터 계수가 확 커져버리는 그런 문제를 방지한다. 베타가 큰 의미없으면 0에 가깝게 추정되도록 해주는 역할이다. 

 람다가 커질 수록, 베타가 커질수록 전체적으로 objective function이 커지는게 더 빨라진다. 그래서 람다를 키우면 키울수록 베타들을 0에 가까운 값으로 추정이 되게 한다. 

 기본 선형회귀는 독립변수들을 스케일링 하지 않아도 성능이 바뀌지 않지만, $\sum \beta$ term은 그렇지 않아서 변수를 정규화시켜준 후 Ridge regression을 실행해야한다.

 

Lasso는 Ridge와 다르게 regularization term이 L1 norm 으로 표기되어 있다.

Ridge와 같은경우는 람다를 아무리 키워도 베타값이 0이 나오는 경우는 존재하지 않는다. 하지만 Lasso와 같은경우는 0이 나오게 된다. Lasso 같은경우는 베타들이 0으로 나오는 경우가 많다.

이러한 차이는 아래의 그래프를 보면 이해하기 쉽다. 

 

왼쪽이 Lasso 오른쪽이 Ridge regularization 방법이다. 그리고 각 하늘색 도형이 제약조건이다. 등고선으로 보이는 원은 RSS를 나타내는 선이고 가운데 $\hat{\beta}$는 최소 제곱이 되는 지점이다.(지난 regression에서 본 3차원에서 최소제곱을 도식화한 그래프를 등고선으로 나타낸 것.) 그래서 각각 제약조건 범위내에서 가장 작은 RSS를 갖는 값으로 계수를 추정한다.

 

 Lasso 는 보시다시피 계수를 0으로 추정하는 경우가 있다. 그래서 데이터의 분포를 보고 유의미한 변수가 아닌게 많으면 Lasso를, 그렇지 않으면 Ridge를 쓰는 것이 성능면에서 조금더 우위를 둘 수 있다.

728x90
반응형

'머신러닝' 카테고리의 다른 글

Graphical Model  (0) 2020.10.18
Naive Bayes Classifier  (0) 2020.10.18
regression  (0) 2020.10.17
Clustering  (0) 2020.10.17
Nonparametric Method  (0) 2020.10.15

댓글