model의 efficiency는 어떻게 측정하고 향상시킬 수 있을까?
우리는 기존데이터를 통해 model의 parameter를 학습시키면서 lost function을 최적화하는 방식을 취했다. 이 모형은 새로이 관측되는 데이터의 label을 예측하기 위해 활용된다. 따라서 model의 efficiency는 정확한 예측에서 비롯된다고 볼 수 있다.
그러나 여기엔 두가지 문제가 존재한다. 첫째, 정확도는 어떻게 측정할 수 있을까? 둘째, 우리가 학습에 활용한 training dataset이 지나치게 편향된 데이터는 아니었을까?
우리는 parameter inference를 위해 Training을 진행한다. 사실 과거데이터를 통해 model을 학습하는 것이기 때문에 data의 특성이 시간에 걸쳐 변화한다면 우리가 설계한 모형은 무용지물이 되고만다.
Training이 끝나면 Testing을 진행한다. 추정한 parameter가 앞으로 새로이 들어올 input data에 대해 잘 작동하는지를 검증하는 과정이다. 가령 training dataset에 outlier가 많이 포함되었다면 이 outlier를 기준으로 모형이 학습되었을테니 이러한 distortion을 잡아주는 과정이다.
아래 예시와 같이 polynomial regression fn을 학습하는데 dataset이 우측과 같이 지나치게 편중되어있다면 이는 overfitting으로 이어진다. 또한 좌측그림과 같이 예측함수의 차수가 지나치게 낮으면, 즉 예측함수가 지나치게 단순하면 모형에 대해 예측함수가 underfitting되는 문제가 발생한다. 따라서 우린 가운데 그림과 같이 이후 어떠한 input data가 주어져도 이를 무난하게 잘 예측할 수 있는 모형을 만들어야만 한다. specialized, complex model과 generalized, simple model 사이에서 잘 선택해야만 하는 것이다.
ML을 진행하면서 error의 source는 크게 approximation(specialization)과 generalization에서 발생한다. approximation은 실제 타겟함수 f에 모형 g를 '근사함'에 따라 발생하는 error다. generalization은 우리가 모형 g를 학습시킬 때 앞으로 input이 될 모든 data를 사용하지 않기 때문에 발생하는 error다. 이 두 종류의 error의 합보다 우리의 estimation error가 작도록 하는 것이 목적이다.
우리가 특정 dataset D를 학습하여 g 모델을 만들었다고 가정하자. 그럼 g 모형의 estimation error 기대값은 어떻게 계산될 수 있을까? 이는 g 모형을 통해 예측한값과 실제값의 차분을 전부 제곱한 값의 합의 기대값이 된다.
만약 모든 dataset을 활용하여 g 모형을 학습시켰다면 그 모형의 estimation error의 평균값은 위 그림의 세번째 수식과 같아진다.
이를 전개한다면 위 그림의 두번째 수식이 된다. 첫항은 특정 dataset만 활용하여 만든 g 모형과 모든 dataset을 활용하여 만든 g bar 모형의 squared error의 기대값이다. 둘째항은 g bar 모형과 실제 모형의 squared error값이다. 세번째 항은 g 모형에 대해 모든 dataset을 학습시킨 후 average한 값이 g bar과 같기 때문에 0이 된다.
세 항은 E_d()의 내부에 있었고, 이는 또 E_x() 내부에 속한 항이니 다시 plug-in 해주는 작업을 거친다.
그 결과 위와 같이 식이 정리된다. 결국 특정 dataset으로 학습한 g 모형의 estimation error의 기대값은 두가지로 양분됨을 알 수 있다. 첫째, 모든 dataset으로 학습할 수 없기에 발생하는 variance다. 특정 dataset으로 학습한 g 모형과 모든 dataset으로 형성된 g bar 모형의 squared error를 variance라 정의한다. 이는 data의 편향성 때문에 발생하는 error다.
둘째, g bar와 실제모형 f간의 squared error는 bias^2로 정의된다. 이는 우리가 모든 dataset을 갖고 학습하였음에도 불구하고 결국 모형은 '근사'에 불과하기 때문에 발생하는 error다.
예를 들어 g bar를 1차함수로 설정하면 아무리 많은 dataset으로 학습시켜도 bias가 높아질 수 밖에 없다. 그럼 모형의 차수를 높인다면 우리가 가진 dataset에 overfitting되어 이후 input data들에 대해선 그 예측력이 낮아질 수 밖에 없다.
따라서 분산을 줄이기 위해선 더 많은 데이터가 필요하고, 편향을 줄이기 위해선 더욱 정교한, 복잡한 모형설계가 필요하다.
그러나 학습데이터 수량이 한정된다면 이들은 반비례 관계에 놓인다. 편향을 줄일수록 분산은 늘어나고, 분산을 줄일수록 편향은 늘어난다. 위 그림처럼 파란색 training data로 학습하면 초록색 test set이 들어올 경우를 가정해보자. 1차함수인 g1모형은 training dataset에 대해 bias는 크지만 이후 들어온 dataset이 덜 분산되어있어서 분산은 작다. 고차함수인 g2모형은 training data에 fit하게 학습되어 bias는 작지만 이후 들어온 dataset이 training data와 달라 분산은 커지게 된다.
'기계학습 > ML' 카테고리의 다른 글
[ML개론] (17) F-measure & Regularization (0) | 2022.02.25 |
---|---|
[ML개론] (16) Occam's Razor & N-fold cross validation (0) | 2022.02.24 |
[ML개론] (14) dual SVM with Kernel (0) | 2022.02.21 |
[ML개론] (13) dual problem of SVM (0) | 2022.02.21 |
[ML개론] (10) Naive Bayes to Logistic Regression (0) | 2022.02.20 |