본문으로 바로가기



능선 회귀(Ridge regression)에 대하여 1 - 해(solution) 유도하기

category Statistics/Linear models 2017.05.23 23:34
Ridge regression에 대하여 1

Ridge regression에 대하여

한국 통계학회 용어집에 따르면 Ridge regression의 경우 능선회귀, 능형회귀로 번역이 되어 있는데, 필자는 능선 회귀가 좀 더 원래 용어를 잘 나타낸다고 생각하므로 이 포스팅에서는 Ridge regression을 능선 회귀로 번역하여 사용하도록 하겠다.

사진출처: https://onlinecourses.science.psu.edu/stat857/node/155


오늘은 능선 회귀(Ridge regression)의 해를 유도하는 것에 알아보도록 하자. 능선 회귀의 해를 유도하기 위해서 먼저 우리가 선형 회귀분석 시간에 배웠던 잔차 제곱식(RSS)을 떠올려 보자.

\[ \begin{align*} RSS & =\sum_{i=1}^{n}\left(y_{i}-\left(\beta_{0}+\beta_{1}x_{i1}+\cdots+\beta_{p}x_{ip}\right)\right)^{2}\\ & =\sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} \end{align*} \]

우리는 이 RSS을 최소화하는 \(\beta\) 값을 찾음으로써 회귀분석의 계수값을 구할 수 있었다. 이러한 과정의 이면에는 \(\hat{y}_{i} = \beta_{1}+\beta_{2}x_{i2}+\cdots+\beta_{p}x_{ip}\)이 의미하는 회귀분석을 통한 예측값과 주어진 데이터인 \(y_i\)와의 차이를 최대한 적게 만들고 싶다는 의미가 담겨있다.

또한, 제곱을 사용한 이유에 대해서는, 오차를 대하는 우리들의 자세에 대하여 다음과 같은 두 가지를 논해 볼 수 있다.

  • 예측값이 데이터보다 더 크게 예측을 한 경우와 더 작게 예측을 한 경우(underestimate, overestimate)에 대하여 동일하게 나쁘다고(panalty) 생각한다.

  • 예측값과 데이터와의 차이, 즉, 오차가 작게 나는 것보다 크게 나는 것을 더 심각하게 나쁘다고 생각한다. 예를 들어 1, 2 차이가 나는 오차항이 두 개 있다고 하면 1 만큼 나는 오차는 1만큼의 손실이 났다고 생각하지만, 2 차이가 나는 오차는 4 만큼 손실이 발생했다고 생각하는 것이라는 소리다.

자, 이제 좀 더 통계적으로 이야기하기 위한 준비를 해보자. 위의 RSS 식을 간편한 행렬 꼴로 나타내기 위하여 몇가지를 가정하자.

  • 먼저 데이터의 정보가 담겨있는 행렬을 의미하는 데이터 행렬은 \(X\)를 사용하여 나타내고, 그 크기는 \(n \times p\)로 가정하자. 즉, 아래와 같이 \(n\)개의 샘플을 가지고 있고, 각 샘플이 \(p\)개의 특성 항목을 가지고 있는 것이다.

\[ X=\left(\begin{array}{c} \underline{x}_{1}^{T}\\ \underline{x}_{2}^{T}\\ \vdots\\ \underline{x}_{n}^{T} \end{array}\right)=\left(\begin{array}{c} \left(\begin{array}{cccc} x_{11} & x_{12} & ... & x_{1p}\end{array}\right)\\ \left(\begin{array}{cccc} x_{21} & x_{22} & ... & x_{2p}\end{array}\right)\\ \vdots\\ \left(\begin{array}{cccc} x_{n1} & x_{n2} & ... & x_{np}\end{array}\right) \end{array}\right) \]

  • 또한 위의 RSS 식에서 \(\beta_{0}\)의 값은 미리 \(\bar{y}\)로 추정한다. 혹은 \(y\) 벡터가 센터링이 되어있어서 절편항이 없은 회귀분석을 시행한다고 생각하자.

  • 관측값 (혹은 머신러닝 분야에서는 레이블이라고도 부른다.) \(y\)\(n \times 1\) 벡터이며, 우리가 구하고자 하는 해(solution), \(\beta\),는 아래와 같은 \(p \times 1\) 벡터이다.

\[ \underline{y}=\left(\begin{array}{c} y_{1}-\bar{y}\\ y_{2}-\bar{y}\\ \vdots\\ y_{n}-\bar{y} \end{array}\right),\underline{\beta}=\left(\begin{array}{c} \beta_{1}\\ \beta_{2}\\ \vdots\\ \beta_{p} \end{array}\right) \]

이제 위에서 정의한 아이(?)들을 가지고 RSS를 다음과 같이 \(\beta\)에 대한 깔끔한 함수 꼴로 나타낼 수 있다. 앞으로 이 함수를 손실함수(Loss function)로 부르기로 하자. (단, 식에 포함된 \(1/2\)은 계산의 편의를 위해서 붙였다. \(1/2\)의 유무에 상관없이 해는 변하지 않는다는 사실!)

\[ \begin{align*} L\left(\beta\right) & =\frac{1}{2}\sum_{i=1}^{n}\left(\left(y_{i}-\bar{y}\right)-\left(\beta_{1}x_{i1}+\cdots+\beta_{p}x_{ip}\right)\right)^{2}\\ & =\frac{1}{2}\left(y-X\beta\right)^{T}\left(y-X\beta\right) \end{align*} \]

이러한 손실 함수의 값을 최소화하는 벡터 \(\beta\)를 찾아서 나중에 회귀분석에서의 계수로 사용하여 예측을 하는 것이 일반적으로 우리가 알던 회귀분석에서 했던 방식이다. 또한 이 계산된 \(\hat{\beta}\)의 해가 최대 우도 추정량(MLE)으로 구한 해와 동일하다는 것도 알 수 있다(위키백과 참고).

능선 회귀분석(Ridge regression) 필요성

그렇다면 왜 능선 회귀분석을 사용할까? 최대 우도 추정량(MLE)이라는 저 반짝반짝 빛나는 논리에 의해 산출된 MLE값에 불만이라도 있다는 말인가? 대답은 그렇다. 사람이 아무리 좋아도 완벽한 사람이 없듯, 우리의 완전 무결한 최대우도 추정량에 대해서도 불만을 품는 경우가 생긴다. 참, 이런 점에서 보면 통계와 세상사는 비슷한 점도 있다.

좀 더 통계적인 관점에서 이야기 해보면, 샘플 사이즈가 제한되어 있을 경우에, 복잡한 모델을 가지고 적합을 할 수록 MLE 추정량의 값이 상대적으로 과적합(overfitting)이 되는 경향을 보인다. 물론 이러한 문제는 샘플의 사이즈가 늘어나면 자연적으로 해결이 되지만, 경제적이나 물리적인 이유로 더 이상의 샘플 관측이 불가능한 경우가 있다.

이러한 과적합 현상을 해결하는 한가지 방법으로 적합(fitting)되는 해(이 포스팅에서는 \(\beta\))에 일정한 패널티를 부과하여 모델의 과적합을 방지하는 방법이 있는데, 능선 회귀 분석은 다음과 같이 \(L_2\) 놈인 유클리디안 놈(Euclidean norm)을 사용하여 패널티를 주는 방식을 선택하여 사용한다.

\[ \begin{align*} L\left(\beta\right) & =\frac{1}{2}\left(y-X\beta\right)^{T}\left(y-X\beta\right)+\frac{\lambda}{2}\sum_{i=1}^{p}\beta_{i}^{2}\\ & =\frac{1}{2}\left(y-X\beta\right)^{T}\left(y-X\beta\right)+\frac{\lambda}{2}\left|\left|\beta\right|\right|_{2}^{2}\\ & =\frac{1}{2}\left(y-X\beta\right)^{T}\left(y-X\beta\right)+\frac{\lambda}{2}\beta^{T}\beta \end{align*} \]

유클리디안 놈은 우리가 다차원 공간에서 벡터의 크기를 나타내는 한가지 단위로 생각하면 된다. 예를 들어, 앞에서 정의한 \(\beta\)\(\mathbb{R}^{p}\)에 속한 벡터이며 이것의 유클리디안 놈은 다음과 같이 계산된다.

\[ \left|\left|\beta\right|\right|_{2}=\sqrt{\beta_{1}^{2}+\beta_{2}^{2}+\cdots\beta_{p}^{2}} \]

위에 정의된 능선 회귀의 손실함수를 뜯어보자. 이 손실함수를 들여다보면 우리가 능선 회귀분석을 통하여 어떠한 해를 구하고 싶은지를 읽을 수 있기 때문이다.

  • 능선 회귀의 손실함수는 기존 선형회귀의 RSS항과 패널티 항 두 가지의 합으로 이루어져 있다. 따라서 손실함수의 값을 최소로 만드는 능선 회귀의 해는 두 가지를 동시에 고려하여 최소값을 만드는 해를 선택하게 된다.

  • 능선 회귀의 손실함수는 기존의 선형회귀의 RSS를 최소화하는 \(\beta\)값이 더라도, 구한 \(\beta\)값의 크기가 너무 크면 그에 대한 패널티를 부여하여 손실함수 값을 높여버린다. 따라서, \(\hat\beta_{OLS}\)이 앞쪽 RSS를 최소한으로 만드는 기존의 선형회귀 분석의 해라고 하더라고, 만약 그것의 유클리디안 놈 값이 클 경우 손실함수 \(L(\hat\beta_{OLS})\)값은 최소화된 RSS와 패널티 값 뒤 쪽의 패널티 항 추가되어 최소값이 아닐 수가 있게 된다.

  • 예를 들어, \(\hat\beta_{OLS}\)가 최소화 시키는 RSS값을 \(RSS_{OLS}\)라고 할 때, RSS값을 \(RSS_{OLS}\)와 비슷한 수준으로 만드는, \(RSS_{OLS}\approx RSS_{\star}\), 벡터 \(\hat\beta_{\star}\)가 존재한다고 가정하자. 만약 이 \(\hat\beta_{\star}\)의 크기가 \(\hat\beta_{OLS}\)의 크기보다 작을 경우 \(\hat\beta_{\star}\)에 부여되는 패널티가 작게되어 전체적인 손실함수 측면에서 아래와 같이 \(L(\hat\beta_{\star})\)값이 \(L(\hat\beta_{OLS})\)보다 작게 되는 상황이 발생할 수 있다.

\[ L(\hat\beta_{\star}) \leq L(\hat\beta_{OLS}) \]

이 때 능선 회귀 방법은 손실함수를 최소화 시키는 값을 해로 선택하게 되므로 \(\hat\beta_{\star}\)가 능선 회귀의 해가 된다.

  • 손실함수에서 \(\lambda\)는 0보다 항상 큰 값을 갖는 값이며, 패널티를 얼마나 부과하는가를 조절하는 조절버튼이라고 생각하면 된다.

능선 회귀(Ridge regression) 해 구하기

능선 회귀의 손실함수는 아주 예쁜 모양의 Convex 함수의 모양을 띄고 있으므로 \(\beta\)에 대하여 한번 미분한 식을 \(0\)으로 만드는 값을 찾으면 된다. 예전 정규분포 포스팅을 하면서 사용했던 벡터 미분공식들을 사용하여 \(\beta\)에 대하여 미분을 해보면 다음과 같다.

\[ \frac{\partial L\left(\beta\right)}{\partial\beta}=-X^{T}\left(y-X\beta\right)+\lambda\beta \]

위의 값을 0으로 설정하고, 대응되는 \(\beta\)값을 찾으면 다음과 같은 능선 회귀의 해를 찾을 수 있다.

\[ \begin{align*} & -X^{T}\left(y-X\beta\right)+\lambda\beta\overset{set}{=}0\\ \Rightarrow & \left(X^{T}X+\lambda I\right)\beta=X^{T}y\\ \Rightarrow & \hat{\beta}_{Ridge}=\left(X^{T}X+\lambda I\right)^{-1}X^{T}y \end{align*} \]

이제 능선 회귀(Ridge regression)의 해의 의미를 생각해보자.

  • 먼저, 선형 회귀의 해인 \(\hat{\beta}_{OLS} = (X^{T}X)^{-1}X^{T}y\)와 비교해보면, 패널티가 없는 상황, 즉, \(\lambda\)\(0\)인 상황에서는 능선 회귀의 해는 선형 회귀의 해와 동일하다. 이러한 측면에서 ridge regression은 선형 회귀의 해를 구하는 문제를 좀더 일반화 시켰다고 생각할 수 있다.

  • 패널티 조절 버튼의 역할을 하는 \(\lambda\)의 경우 이 값이 클수록 능선 회귀의 해의 유클리디안 놈의 값(\(\left|\left|\hat{\beta}_{Ridge}\right|\right|_{2}\))이 작아진다. 즉, 구해지는 해의 크기와 \(\lambda\)는 반비례한다.

다음 포스팅에서는 \(\lambda\)와 능선 회귀의 해의 크기가 반비례하는 것에 대하여 좀 더 수학적으로 증명하는 것에 대하여 다루도록 하겠다.

P.s. 사실 필자는 통계나 수학에서의 용어들이 어색한 한자어로 번역되어 있는 것에 대하여 조금 불만이다. 한국 통계학회 용어집에 따르면 이 포스팅에서 다룬 Ridge regression의 경우도 ‘능선 회귀’ 혹은 ‘능형 회귀’로 번역하여 사용하도록 되어 있다. 하지만, 능선과 능형이라는 한자어를 인터넷에 쳐보면 순우리말인 ’산등성이’를 권장한다. 능선 혹은 능형도 좋지만 같은 뜻의 우리말인 ’산등성이’ 회귀라고 부르는 것이 더 좋지 않을까? 우리말로 산등성이라고 하면 ridge regression의 이미지를 직관적으로 떠올리는데에도 도움이 될 것이다.

References

[1] Bishop, C. “Pattern Recognition and Machine Learning (Information Science and Statistics), 1st edn. 2006. corr. 2nd printing edn.” Springer, New York (2007).

[2] Tibshirani, Ryan. “Modern regression 1: Ridge regression.” Data Mining. Vol. 36. 2013.


SHARE TO



티스토리 툴바