나는야 데이터사이언티스트/통계

Ridge regression(릿지 회귀)와 Lasso regression(라쏘 회귀) 쉽게 이해하기

우주먼지의하루 2020. 4. 30. 03:33
728x90

Ridge regression와 Lasso regression를 이해하려면 일단 정규화(regularization)를 알아야합니다.

 

첫번째 그림을 보면 직선 방정식을 이용하여 선을 그었습니다. 데이터와 직선의 차이가 꽤 나네요. 정확한 예측은 아닙니다. 이런 경우를 underfitted 또는 high bias 라고 합니다. bias가 큰 모델은 test data를 위한 학습이 덜 된 것이 원인이고, 이는 train data와 test data간의 차이가 너무 커서 train data로만 학습한 모델은 test data를 맞출수가 없는 것입니다

 

세번째 그림을 보면 현재 데이터로는 잘 맞겠지만 다른 데이터를 사용한다면 정확한 예측을 하지 못합니다. 이런 경우는 overfitting 또는 high variance 라고 합니다. variance가 큰 모델은 train data에 over-fitting된 것이 원인이고, 이는 너무 train data에 fitting된 모델을 만들어서 test data에서 오차가 발생한 것을 의미합니다.

 

두번째 그림이 가장 좋은 모델이라고 말할 수 있습니다. 어느정도 데이터에 적합하면서 bias와 variance에 대해서도 적절합니다.

 

 

bias와 variance 개념이 잘 이해 안되면 아래의 글을 참고하시면 됩니다.

https://modulabs-biomedical.github.io/Bias_vs_Variance

 

Bias vs. Variance 개념 정리

이 글에서 bias와 variance에 대해 살펴보려고 합니다. bias와 variance는 이미 많은 글이나 블로그에서 개념적으로 잘 설명되어 있습니다. 그럼에도 불구하고 다시 정리해보는 이유는 개념적으로 어느정도 이해는 되는데 좀 더 자세하게 보려고 하면, 블로그들의 예제들 간의 연결이 막혀서 헷갈리는 부분이 있어 이 글을 통해 확실히 이해하기 위해서 입니다. Bias vs. Variance의 의미

modulabs-biomedical.github.io

 

모델을 만들 때, bias와 variance를 둘 다 줄여주면 제일 좋겠지만 하나를 포기해야 하는 경우도 발생합니다. 이때 bias를 조금 가지더라도 제일 작은 variance를 가지는 모델을 만드는 것도 좋지않을까 ? 다시말해 overfitting을 해결함으로써 효과를 볼 수 있지 않을까 ? 하는 것이 이 글의 시작입니다. (이제부터 시작)

 

overfitting을 해결하는 방법은 크게 두 가지로 볼 수 있습니다.

 

1. 특성(Feature)의 갯수를 줄여기

  • 주요 특징을 직접 선택하고 나머지는 버린다.
  • Model selection algorithm을 사용한다.

2. 정규화(Regularization)를 수행한다.

  • 모든 특성을 사용하되, 파라미터(세타)의 값을 줄인다.

정규화는 파라미터 값을 줄이는 것이라고 ? 무슨 말이야.

그럼 이제 정규화에 대해 간단히 설명해보겠습니다.

 


정규화(Regularization)

 

첫번째 그림은 위에서 설명했듯이 overfitting이 되어서 모델에 적합하지 못합니다. 그래서 두번째 그림과 같은 모델을 사용해야하죠. 이때, 첫번째 모델에서 두번째 모델에 가는 방법은 여러가지가 있으나 그 중에 하나를 설명해봅니다.

 

전체식이 최소화가 되려면 B3와 B4가 0으로 될 때 가장 작은 식이 됩니다. 이것이 정규화 컨셉입니다. 베타값(파라미터값)에 제약을 줌으로써 모델을 정돈을 해줬다 라는 것이 정규화 컨셉입니다. 과적합이 아닌 일반성을 띄게 해주는 해주는 것이죠.

현재 데이터에 대한 예측력도 중요하지만 미래에 예측할 데이터도 중요하기 때문에 일반화가 중요합니다. 위의 그림에서 (1)Training accuray만 있으면 최소제곱법과 다른게 없는데 (2)Generalization accuaracy가 추가되면서 베타에 제약을 줄 수 있어 정규화가 가능해지게 됩니다. 이렇게 계수 추정치를 줄여주는 정규화 방법을 shrinkage method라고 말하기도 합니다.

 

정규화 개념은 아래의 동영상에서 참고했습니다.

https://youtu.be/pJCcGK5omhE

 

그리고 이런 정규화(Regulization) 컨셉을 처음 도입한 모델이 Ridge Regression 이란 것입니다.

 


Ridge Regression (릿지 회귀, L2 Regression)

 

 

릿지 회귀식을 보면 잔자제곱합(RSS : residual sum of squares) + 패널티 항(베타 값)의 합으로 이루어져있습니다. 릿지회귀의 패널티항은 파라미터의 제곱을 더해준 것입니다. 이것은 미분이 가능해 Gradient Descent 최적화가 가능하고, 파라미터의 크기가 작은 것보다 큰 것을 더 빠른 속도로 줄여줍니다. 다시 말하면 λ(람다)가 크면 클수록 리지회귀의 계수 추정치는 0에 가까워 지는 것입니다. (λ = 0 일 때는 패널티 항은 효과가 없고, 따라서 리지 회귀(ridge regression)은 최소제곱추정치를 생성) 즉, λ(람다)패널티를 얼마나 부과하는가를 조절하는 조절버튼이라고 생각하면 되겠네요. 


너무 말이 어려우니 조금 더 쉬운 이해를 돕기 위해 그림을 통해 알아보겠습니다.

 

 

릿지회귀의 β0^2+β1^2의 제약조건인 원이 있습니다. 기존의 OLS(Ordinary Least Squares)가 아래에 보이는 제약조건까지 와야지 최적값이라고 할 수 있는 것입니다. 그렇다면 OLS가 제약조건까지 오기 위해서는 RSS(RSS : residual sum of squares) 크기를 키워주게 됩니다. bias가 약간의 희생은 하지만 variance를 줄이기 위해서 아래의 그림처럼 제약조건까지 오는 가장 작은 RSS를 고르면 되는 것이죠.

 

이미지 출처 : http://www.datamarket.kr/xe/index.php?mid=board_BoGi29&document_srl=7176&listStyle=viewer&page=9

릿지회귀 다음 글을 참고했습니다.

https://m.blog.naver.com/PostView.nhn?blogId=wjddudwo209&logNo=220177096998&proxyReferer=https:%2F%2Fwww.google.com%2F


Lasso Regression (라쏘 회귀, L1 Regression)

 

라쏘회귀는 릿지회귀와 비슷하게 생겼지만 패널티 항에 절대값의 합을 주었습니다. 

 

라쏘는 제약조건이 절대값이라 아래의 그림처럼 마름모꼴의 형태로 나타납니다. 릿지회귀와 비슷하게 OLS의 RSS 값을 크게 늘려줍니다. 라쏘회귀의 경우 최적값은 모서리 부분에서 나타날 확률이 릿지에 비해 높아 몇몇 유의미하지 않은 변수들에 대해 계수를 0에 가깝게 추정해 주어 변수 선택 효과를 가져오게 됩니다. 라쏘회귀는 파라미터의 크기에 관계없이 같은 수준의 Regularization을 적용하기 때문에 작은 값의 파라미터를 0으로 만들어 해당 변수를 모델에서 삭제하고 따라서 모델을 단순하게 만들어주고 해석에 용이하게 만들어줍니다.

 

 

 

 

이미지 출처 : http://www.datamarket.kr/xe/index.php?mid=board_BoGi29&document_srl=7176&listStyle=viewer&page=9

 

 

 

반면 릿지의 경우 어느정도 상관성을 가지는 변수들에 대해서 pulling이 되는 효과를 보여줘 변수 선택보다는 상관성이 있는 변수들에 대해서 적절한 가중치 배분을 하게 됩니다. 따라서 릿지의 경우 PCA와 상당한 관련성이 있게 됩니다.

 

 


참고 

http://freesearch.pe.kr/archives/4473

https://youtu.be/sGTWFCq5OKM

반응형