티스토리 뷰

해당 포스트는 Standford Online Course의 Statistical Learning 강좌를 정리하고 공유하기 위한 포스트로, 대부분의 자료는 강의자료에서 참조하였으나 본인의 의견도 들어가 있을수 있습니다.



Supervised Learning은 크게 두 가지 문제로 나눌 수 있다.

첫째는 Regression(회귀) 이고, 다른 하나는 Classification (분류) 이다. 모델을 통해서 예측하려는 Y의 값이 linear 하면 회귀 문제, categorical 하면 분류 문제가 된다. 즉 어떤 모델을 이용해서 주가 변동을 예측한다고 해보자. 실제 '주가 지수'를 예측한다면 회귀 문제가 되고, 주가가 오르는지/내리는지 예측하는 것이라면 분류 문제가 된다.



1. 모델의 성능을 측정하기


회귀와 분류 문제를 풀고자 하는 Supervised Learning에서, 우리는 Y의 실제 값을 알고 있고. 모델을 통해서 그 값을 예측 하게 된다. 그럼 모델이 얼마나 정확한 지, 어떤게 좋은 모델인지는 어떻게 표현할까? 


회귀 문제인 경우는 MSE (Mean Squared Prediction Error)로 모델을 평가하며, 그 값이 작을 경우 좋은 모델이다.


분류 문제에서는 Misclassification Error Rate, 즉 예측하였을 때 틀린 비율을 가지고 성능을 측정한다.

일반적으로 성능 측정은 모델 학습 때 사용한 데이터를 바로 사용하지는 않는다. 왜냐면 아래에서 나오는 Overfitting의 가능성이 있기 때문인데 이를 막기 위해 다른 데이터 셋을 사용해서 성능을 측정하거나, 혹은 데이터를 쪼개서 학습하고 측정하는 방법 등을 사용하게 되는데, 이후 챕터에 나오게 될 것이다.


이 때, f(X)의 임의의 추정 모델 g(X)에 대하여,



에러는 다음과 같이 나눠지는데, 왼쪽의 제곱항을 reducible error라 하고, 오른쪽의 Var(e) 항을 irreducible error라 한다.

즉, 우리가 아무리 좋은 모델을 쓰고 데이터를 잘 설명하는 모델을 만들려고 시도하여도, 줄일수 없는 에러가 있다. 그것은 데이터 자체가 내재하고 있는 것이어 모델로 해결할 수가 없다. 따라서 줄일수 없는 (irreducible) 에러라고 표현한다.



2. Mode Selection and Trade-Off


모델은 가장 간단한 linear모델에서부터, 복잡한 SVM 혹은 Spline 함수와 같은 것들까지 다양하다.

함수가 고차원이 되어 복잡할 경우 flexible하다고 하며, linear 모델 같이 간단할 경우는 less flexible 하다고 한다.


그렇다고 flexible한 함수가 항상 좋은 것은 아니다. 왜냐면 그것은 주어진 데이터를 훨씬 잘 설명할 수는 있지만 실제 학습에 사용되지 않은 데이터가 들어왔을 때에는 학습되지 않아서 성능이 아주 안좋아질 수 있는 것이다. 이를 Overfitting이라고 이야기 하며, 머신 러닝이나 통계에서 아주 자주 사용되는 용어이다. 즉 모델을 만들때는 성능이 좋도록 적당히 flexible한 것도 중요하지만, overfitting되면 실제 그 모델을 사용함에 있어서 전혀 쓸모가 없기 때문에 조심 해야한다.


즉, 모델을 선택하는 것은 항상 Trade-Off를 수반하게 된다. 대표적인 Trade-off로는 다음과 같은 것들이 있다.

  • Prediction accuracy vs. interpretability
    모델의 성능을 높이기 위해 고차원의 predictor들을 사용하고, 다양한 변환을 적용할 수록 모델의 interpretability 는 떨어지게 된다. 즉, 우리가 만약 어떤 변수가 depedent variable을 잘 설명하는지 등이 궁금하다면, 모델의 성능은 떨어지더라도 해석력이 좋은 linear model과 같은 것을 사용해야 한다. 아래 그림이 flexiblity와 interpretability의 관계를 보여주고 있다. 일반적으로 flexible하면 성능도 증가한다.
  • Good fit vs. Over-fit or Under-fit
    위에서 설명한 것 처럼 너무 flexible한 모델을 사용하면 Over-fit 될 수 있다. 그렇다면 얼마만큼 flexible한 것을 사용해야 하는걸까? 이는 실험적으로 정해야 하는데, 이를 위한 자세한 방법은 5단원에서 나오게 될 것이다.
  • Bias Variance Trade-off
    아래 수식에서 볼 수 있듯이 모델의 성능은 variance와 bias로 나누어 생각할 수 있는데, Flexibility가 증가하면 모델의 Variance가 증가하고, bias는 감소하게 된다. 즉 일반적으로 variance와 bias는 trade-off 관계에 있게 된다.



    예를 들어 생각해 보면, 복잡한 모델을 사용했을 경우 Bias는 떨어지겠지만 (복잡하니까) 그 변화의 정도 (Variance) 는 커질 것이다. 반대로 간단한 모델의 경우는 Bias가 클 수 있을 것이며, Variance는 상대적으로 작을 것이다.

유의해야할 것은 모델의 성능은 데이터의 종류에 따라 달라진다는 것이다. 항상 고차원 모델이 낮은 bias를 보장하는 것은 아니다. 데이터 자체가 linear하게 분포되어 있다면 가장 간단한 모델을 사용하는 것이 가장 낮은 bias를 얻을 수 있는 방법일 것이다.





댓글