[Note] Bias & Variance
Bias와 Variance간 trade off 혹은 그 decomposition에 대한 정리글입니다.
Assumption
We hope to minimize training error so that the “generalization error” getting lower, too.
That’s why we need to know where the gernalization data come from
$D = \lbrace (x_{1}, y_{1}), … \rbrace , y \in R$ from iid $P(X,Y)$
Definition
Expected lable $\bar{y}$ : 데이터 x가 주어졌을 때 y값($y\mid x$)에 대한 기대값으로 y에 대한 integral
$h_{D}$ : 데이터 D를 입력 후 알고리즘 A를 거쳐 나온 결과
Expected test error given $h_{D}$ : 실제 결과값 y와 $h_{D}$의 에러에 대한 기대값으로 x와 y에 대한 double integral
Expected classifier $\bar{h}$ : $h_{D}$의 기댓값으로 $D$에 대한 integral
Expected error of A : 실제 결과값 y와 $h_{D}$의 에러에 대한 기댓값으로 test error와 동일하게 생각할 수 있지만 x와 y와 D에 대한 integral
위의 정의에서 중요한 것은 우리가 실제 테스트를 해보고 나오는 에러와 모델의 에러를 구분할 줄 알아야 한다는 것입니다.
위의 정의에선 X,Y 그리고 $D$를 구분하여 다루고 있으며 test error의 경우에는 $D$에 대한 integral이 없기 때문에 $D$에 따라서 test error가 바뀔 수 있다는 점이 되고,
그렇기 때문에 어떤 모델의 에러와 차이가 생기게 되어서 결국 Generalization에는 결국 $D$에 의한 영향도 고려하게 됩니다.
Decomposition
기존의 Bias-Variance trade-off에서 하던 대로 $h_{D}$와 y의 Squared Error를 X,Y 그리고 $D$에 대해서 기댓값을 계산해보도록 합시다.
$\bar{h}$를 추가하여 이차식을 전개해볼 경우
- $h_{D}$와 $\bar{h}$ 간 error 제곱
- $\bar{h}$와 y 간 error 제곱
- 해당 값들은 $D$에 대해선 상수값들이기 때문에 다시 이것을 $\bar{y}$를 이용해서 decomposition을 진행하게 되고 cross term은 0이 됩니다. 그 결과 아래의 항들이 남게 됩니다.
- $\bar{h}$와 $\bar{y}$ 간 error 제곱
- $\bar{y}$와 y간 error 제곱
- 1번과 2번의 cross term
- cross term은 0이 되는데 그런 이유가 $\bar{h}$는 D에 대해서 이미 integral이 되었기 때문에 상수로 계산이 되어서 $D$에 대해서 $h_{D}$와 $\bar{h}$의 차이의 기댓값이 0이 된 것입니다.
Result
위의 3가지 항을 정리하였을 때 남는 것은 다음과 같고 각각의 의미는 다음과 같습니다.
- $h_{D}$와 $\bar{h}$ 간 error 제곱
- Variance of Algorithm, Not about getting right or wrong
- $\bar{h}$와 $\bar{y}$ 간 error 제곱
- squared Bias of Algorithm
- $\bar{y}$와 y간 error 제곱
- Noise of data, a value that cannot be made better than current Algorithm because $\bar{y}$ is expected one, which is a a kind of label that algorithm think it should have
- This is natural aspect as a data or observation. No matter how much data have, always existing error.
즉 여기서 중요한 점은 결국 에러라고 하는 것이 크게는 Data와 Alogorithm에서 기인하는 것이고, Alogirhtm의 에러의 경우에는 기존의 Bais-Variance trade off로 생각할 수 있으며 Noise는 더 이상 낮출 수 없는 에러임을 알아야 합니다.
더 나아가, 현재 어떤 에러가 존재한다면 앞서 말한 3가지 에러 중 어디에 속하는지 구분할 줄 알아야 하며 noise는 모델 혹은 알고리즘을 개선한다고 해서 개선할 수 없는 자연적인 것임을 알아야 합니다.
댓글남기기