Source file ⇒ bias-variance_tradeoff.Rmd


ref:

An Introduction to Statistical Learning ch2.2
The Elements of Statistical Learning ch2.9
Bias-Variance Tradeoff

encoded in CP949


1. Measuring the Quality of Fit

데이터 마이닝을 공부하며, 수 많은 기법들을 배우게 된다. 모든 데이터 셋에 완벽하게 적용될 수 있으며 좋은 결과 (prediction and inference)를 가져오는 단 하나의 기법은 존재하지 않기 때문에 우리는 다양한 기법들을 배우며 주어진 데이터 셋에서 최선의 방법을 선택하게 된다. 따라서 다양한 기법을 익히는 것도 중요하지만, model selection 과정에서 어떠한 기준으로 best model을 선정하는지에 대한 이해가 매우 중요하다.


1.1. Mean Squared Error (MSE)

우리는 주어진 데이터 셋에 대해 예측이 얼마나 실제 관측된 데이터와 매치되는지 확인하는 지표가 필요하다. Regression 문제에서 가장 흔히 쓰이는 지표는 mean squared error (MSE)이다.

\[MSE = \frac{1}{n}\sum_{i=1}^{n} (y_i-\hat{f}(x_i))^2\]

where \(\hat{f}(x_i)\) is the prediction that \(\hat{f}\) gives for the ith observation.

MSE 값은 예측된 값이 실제의 값과 가까울 수록 작은 값을 지닌다. 그리고 MSE는 observed data(training data)에 대해 계산되는 값이다. (그래서 더 정확한 MSE의 이름은 Training MSE이어야 할 것) 하지만 많은 경우 unseen test data에 대한 우리의 prediction이 얼마나 정확한지가 주어진 과제이다. 즉, 이미 우리가 가진 trainig data에 대해서는 test data 만큼의 큰 관심이 없다는 것.

주식시장에서의 prediction을 생각해보자.주식시장 분석가에게 주어진 데이터는 오늘까지의 stock market 정보이다. 따라서 분석가는 과거의 데이터를 가지고 모델을 구상한다. 하지만 이 모델이 미래의 혹은 내일의 주식가격에 유의미한 prediction을 반환하지 못한다면, 이 모델이 얼마나 과거의 주식가격을 잘 예측하는지는 무의미하다. 우리는 내일의 주식가격이 궁금할 뿐, 어제의 주식가격에는 그다지 흥미가 없다.

우리는 statistical learning method or method를 디자인 할 때, training observations \({(x_1,y_1), (x_2,y_2), ..., (x_n,y_n)}\) 으로 \(\hat{f}\)를 estimate한다. 그리고\(\hat{f}\)를 가지고 \(\hat{f}(x_1), \hat{f}(x_2), ..., \hat{f}(x_n)\) 을 계산하여 실제의 \(y_1, y_2, ..., y_n\)과 비교한다. (MSE의 아이디어) 하지만 사실 우리가 흥미있는 것은 \((x_0,y_0)\)이라는 새로운 test 관측치에 대한 \(\hat{f}(x_0)\) 값이 대략적으로 \(y_0\)와 비슷할 것인가이다. 즉 우리가 원하는 것은 가장 낮은 MSE라기 보단 가장 낮은 training MSE이다.

\[test MSE = Ave(y_0-\hat{f}(x_0))^2\]


1.2. Test MSE

그렇다면 우리의 과제는 가장 낮은 test MSE를 선택하는 것이 되는데,

  • test dataset이 존재: definition대로 test MSE를 계산하여 가장 낮은 값을 주는 모델을 선택

  • test dataset이 존재하지 않는 경우: training MSE와 test MSE는 유사한 개념이므로 training MSE를 대신 사용할 수 있을까?

낮은 training MSE가 낮은 test MSE를 도출해낼 것이라는 보장이 없다. 많은 경우 statistical learning model은 training MSE가 낮은 모델을 선정하도록 디자인되어 있는데 막상 test MSE는 상당히 높을 수도 있다.

\[ Figure 2.9\]

좌측 그래프를 먼저 살펴보면,

  • true \(f\): black curve
  • linear regression fit: orange line
  • smoothing splines: blue and green curves

가장 flexible한 green curve의 경우 너무 구불구불해서 오히려 true \(f\)로 부터 많이 벗어나는 모습을 보인다.

오른쪽 그래프에서는,

  • training MSE: gray curve
  • test MSE: red curve
  • dashed line: irredudible error \(Var(\epsilon)\)

training MSE는 flexibility (formally, degrees of freedom or a number of smoothing splines)이 증가함에 따라 monotonically 감소하는 것을 볼 수 있다. 가장 flexibility가 낮은 linear model (orange)의 경우, 가장 높은 training MSE를 보이며 가장 flexible한 green curve의 경우 가장 낮은 MSE 값을 보인다.

test MSE는 blue curve가 가장 낮은 값을 보인다. 실제로 좌측의 그래프를 보면 black curve와 가장 비슷한 것을 확인할 수 있다.

Observations
  1. test MSE는 flexibility의 함수로 나타냈을 때, U-shape를 보인다.
  2. Overfitting: training MSE는 작으나 test MSE가 큰 경우를 일컫는다.
  3. training MSE<test MSE almost always
  4. test MSE를 estimate하는 것이 중요: cross-validation하는 이유

2. The Bias-Variance Trade-Off

그래서 test MSE가 중요한 건 알겠는데, 도대체 이 것의 정체가 무엇? (expected) test MSE는 다음의 3가지 components로 decompose 될 수 있다.

  1. variance of \(\hat{f}(x_0)\)
  2. squared bias of \(\hat{f}(x_0)\)
  3. variance of the error terms \(\epsilon\); \(Var(\epsilon)\)

\[ E(y_0-\hat{f}(x_0))^2=Var(\hat{f}(x_0))+[Bias(\hat{f}(x_0))]^2+Var(\epsilon) \]

proof for those who are interested….

\(E(y_0-\hat{f}(x_0))^2\)expected test MSE를 의미한다. training dataset을 사용해 추정된 \(f\)(model)을 사용하여 test dataset 각각의 \(x_0\)에 대한 값을 평균낸 것이다. \(Var(\hat{f}(x_0))\)\([Bias(\hat{f}(x_0))]^2\)의 값은 nonnegative 값을 가지기 때문에 expected test MSE가 가질 수 있는 minimum 값은 \(Var(\epsilon)\)이다.


note \(Var(\epsilon)\) is the irreducible error. Consider a given estimate \(\hat{f}\) and a set of predictors \(X\), which yields the prediction \(\hat{Y}=\hat{f}(X)\). Assume for a moment that both \(\hat{f}\) and \(X\) are fixed. Then,

\[E(Y-\hat{Y})^2=E[f(X)+\epsilon-\hat{f}(X)]^2=[f(X)-\hat{f}(X)]^2+Var(\epsilon) \]

where \([f(X)-\hat{f}(X)]^2\) is the reducible error and \(Var(\epsilon)\) is the irreducible error.


예를들어, figure 2.9에서 구불구불한 green curve를 보면, 관측 데이터를 밀접하게 따르는 것을 볼 수 있다. green curve로 표현된 모델은 high variance를 가진다고 볼 수 있는데, 데이터 포인트에 조금의 변화라도 생기게 된다면 모델의 특성상 \(\hat{f}\)에 상당한 변화가 있기 때문이다.

위 그림에서 알 수 있 듯, 주어진 데이터에 비해서 높은 flexibility를 가지는 모델을 학습시키게 되면 overfitting이 일어날 확률이 높다. overfitting이 일어나는 상황은 high variance의 상황과 같다.

일반적으로, flexible한 모델일 수록, variance는 높고, bias는 낮다. 그리고 variance와 bias의 상대적 변화에 따라 test MSE는 증가하기도, 감소하기도 한다.

\[ Figure 2.12\]

figure 2.12에서 보이는 것을 bias-variance trade-off라고 부른다. 주어진 데이터에 대해 bias가 낮으면 variance가 높고, bias가 높으면 variance가 낮다. 우리에게 주어진 과제는 bias도 낮으며 variance도 낮은, 즉 test MSE가 최저가 되는 모델을 찾는 것이다.