안녕하십니까 허브솔트입니다.
지난 시간에는 앙상블의 알고리즘들에 대해 알아보았는데요,
오늘은 편향 분산 트레이드 오프에 대해 공부해 볼께요!
편향 분산 트레이드 오프는 비단 앙상블에만 적용되는 것이 아니라 지도학습에 전반에서 매우 중요한 내용입니다. 따라서 다루고 넘어가보도록 할게요.
편향과 분산의 관계를 알기 전에, 이것들이 뭔지 우선 알아야겠죠. 위키피디아에서는 아래와 같이 정의합니다.
The bias is error from erroneous assumptions in the learning algorithm. High bias can cause an algorithm to miss the relevant relations between features and target outputs (underfitting)
편향은 학습 알고리즘에서 잘못된 가정으로 인한 오류입니다. 편향이 높으면 알고리즘이 피처(설명변수, 독립변수)와 타겟변수(종속변수) 간의 관계를 놓칠 수 있습니다 (underfitting).
The variance is error from sensitivity to small fluctuations in the training set. High variance can cause overfitting: modeling the random noise in the training data, rather than the intended outputs.
분산은 훈련 데이터셋의 작은 변동에 대한 민감성으로 발생하는 오차입니다. 의도한 학습결과를 내기보다는 훈련 데이터 내의 무작위 소음을 모델링함에 따라 overffing의 원인이 됩니다.
조금 말이 어려울 수 있습니다. 그림으로 같이 알아보죠.
즉, 편향은 목표값(Truth, Target)에과 평균이 얼마나 떨어져 있는지를 나타내는 척도이고, 분산은 편차 제곱의 합을 자유도로 나누어준 값(=표준편차(Standard deviation)의 제곱)입니다.
결국 모델 생성 시 편향과 분산을 최소로 만들면 측정값, 예측값의 에러(Error, 혹은 Residual)가 가장 이상적인 모델이 되겠네요!
1. 편향-분산 트레이드 오프(Bias-Variance trade off)
- 이걸 맞추니 저게 문제고, 저걸 맞추니 이게 문제네 -
그런데 위의 표를 보시죠. 분산이 낮을수록 편향이 높아지고(underfitting), 분산이 높을수록 편향이 낮아집니다(overfitting). 또한, 검은색 선이 Total Error, 즉 얼만큼 에러가 발생했냐를 나타내는 것인데 모델이 복잡도(x축)가 높아질수록 Total Error는 다시 증가하는 경향을 보입니다. 과적합되는 것이죠.
따라서 에러를 가장 낮게하는(편햐과 분산이 적절하게 낮은 지점이 교차되는) 곳까지 학습을 시켜야겠습니다.
이런 편향-분산 트레이드 오프를 한번 직접 식으로 보도록 하죠.
2. 증명
을 하기에 앞서, 알아야 할 사전 지식이 있습니다.
<기댓값>
- a가 상수일때, $E(a) = a$
기댓값은 선형성을 가짐. 즉,
- $E(X+Y) = E(X) + E(Y)$
- $E(aX) = aE(X)$
- (서로 독립인경우만)$E(XY) = E(X) E(Y) $
<분산>
- $E(X) = \mu$ 일때,
$Var(X)$
$ = E[(X - E(X)^2] = E[(X - \mu)^2]$
$ = E(X^2 - 2\mu X + \mu^2) $
$ = E(X^2) - 2\mu \mu + \mu^2 $
$ = E(X^2) - \mu^2 = E(X^2) - {E(X)}^2 $
- a가 상수일때, $Var(a) = 0$
또한,
- $ E[(aX+b)^2]=a^2E(X^2)+2abE(X)+b^2 $으로부터,
$ Var(aX+b)=E[(aX+b)^2]−[E(aX+b)]^2 $
$= a^2E(X^2)+2abE(X)+b^2−[aE(X)+b]^2 $
$= a^2E(X^2)+2abE(X)+b^2−[a^2(E(X))^2+2abE(X)+b^2] $
$= a^2[E(X^2)−E(X)^2]=a^2⋅Var(X) $
임을 알 수 있습니다.
<MSE(Mean Squared Error): 평균 제곱 오차>
$ MSE = E[(y - \hat y)^2] $
<편향(Bias): 기댓값과 실제 x값의 차이 >
$ bias [\hat f(x)] = E[\hat f(x)] - f(x) $
이제 본격적으로 편향 - 분산 트레이드 오프로 가보죠.
우선, 트레이닝 셋이 $x_1, \dots, x_n$과 각 $x_i$ 들에 대응되는 $y_i$ 들의 쌍으로 표현되는 점들의 집합이라고 하죠. 여기서 우리는 노이즈가 있다고 가정하고, 그 관계를 $y_i = f(x_i) + \epsilon $ 이라고 합니다.
여기서 $ \bf \epsilon $이 노이즈이며, $ \bf \epsilon $은 평균이 0이고 분산이 $\bf \sigma ^ 2 $인 정규분포입니다.
우리는 실제 관계함수인 $ y = f(x) $를 학습 알고리즘을 통해 $ f $를 잘 표현한 $ \hat f $를 찾고자 합니다. 잘 표현한다는 말은, 오차가 작다는 말로써 $ y $와 $ \hat f $ 사이의 평균 제곱 오차 (MSE : mean squared error)를 측정하여 그 값이 가장 작은 것을 찾는 것을 말합니다.
(편의상 $f(x)$ 를 $f$라 쓰겠습니다) 여기에서
$E[(y - \hat f)^2] = E[y^2 + \hat {f^2} - 2y\hat f]$
$ = E[y^2] + E[\hat {f^2}] - E[2y\hat f]$
$ = Var[y] + E[y]^2 + Var[\hat f] + E[\hat {f}]^2 - 2fE[\hat f] $
$ = Var[y] + Var[\hat f] + (f - E[\hat f])^2 $
$ = \sigma^2 + Var[\hat f] + Bias[\hat f]^2 $
가 성립합니다.
즉,
$E[(y - \hat f(x))^2] = E[(\hat f(x) - {\bf E(\hat f(x))}^2] + ({\bf E[\hat f(x) ]} - f(x)) ^2 + \sigma ^2 $ 가 되겠죠.
위 식을 해석하면,
- 분산($E[(\hat f(x) - {\bf E(\hat f(x))}^2]$) 값은 $\hat f$가 그 평균에서 얼마만큼의 폭으로 변동하느냐를 나타내고,
- 편향제곱값($ {\bf E[\hat f(x) ]} - f(x)) ^2 $)은 모델을 간소화하면서 세우는 가정이 잘못됐을 때(ex 비선형인데 선형모델을 세운다거나) 나타나는 것으로, 편향값이 존재하면 $ \hat f $를 세울 때 사용한 가정에 오류가 존재한다는 뜻입니다.
- $ \sigma^2$은 줄일 수 없는 오차를 뜻하며, 모든 항의 값이 0 이상이므로 이 항은 보이지 않는 표본들의 기대오차의 하한값 역할을 합니다.
여기서,
f(x)가 복잡해질수록 더 많은 데이터를 포착할 수 있기 때문에 bias가 작아지지만, 각 점을 포착하기 위해 더 많이 움직여야 하므로 variance가 커지는 것이 편향-분산 트레이드 오프라고 이해하시면 되겠습니다.
3. 결론
MSE의 값은, Variance와 Bias 간의 Trade-off 때문에 결국 계속 학습시킨다고 해서 total error가 줄어드는 것은 아니다.
라는 것이 결론입니다.
그렇다면 머신러닝은 언제까지 학습을 해야 할까요?
바로, validation set이라고 하는 데이터 set이 하나 더 필요합니다. 즉, 크로스 벨리데이션이 중요한 이유 중 하나가 될 수 있겠습니다.
이상입니다. 다음에 다른 재밌는 내용으로 찾아올께요!
허브솔트였습니당
- Reference -
https://towardsdatascience.com/the-bias-variance-tradeoff-8818f41e39e9
https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
https://rfriend.tistory.com/search/bias
John E. Freund의 수리통계학 7판(자유아카데미)
'기계학습' 카테고리의 다른 글
확률분포 종류 (0) | 2024.01.15 |
---|---|
서포트 벡터 머신(SVM, Support vector machine)을 이해하기 위한 자료들 (0) | 2022.05.19 |
conjugate gradients 엄청난 설명 자료 (0) | 2022.04.16 |
1. 앙상블(Ensemble) 기법과 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking) (1) | 2022.04.15 |