일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 알고리즘
- 앙상블 학습
- xgboost
- Gradient boosting machine
- 트리분할
- 최대사후확률
- MLE
- Gradient Boosting
- multivarite data
- decision tree
- Maximum A Posterior
- Gbm
- ML
- 앙상블
- LGBM
- 차원축소
- pca
- Machine Learning
- 머신러닝
- Gradient Boostnig
- feature extraction
- 차원 축소
- LIKELIHOOD
- ensemble learning
- Regression
- classification
- multivarite method
- LDA
- dimension reduction
- ensemble
- Today
- Total
코딩하는 눈송이
Bias & Variance 본문
Bias와 Variance란?
bias와 variance에 앞서 $f(x), \hat{f}(x), E[\hat{f}(x)]$에 대해서 알아보자
- $f(x)$ : 하나의 독립 변수 x에 대한 real value 값
- $\hat{f}(x)$ : 모델에 입력된 input x에 대해서 출력하는 예측값
- $E[\hat{f}(x)]$ : $\hat{f}(x)$들의 expected value로, estimated된 값들(예측값)의 평균
자 그러면 이를 바탕으로 Bias에 대해 설명해 보겠습니다.
- Bias란? 모델을 통해 얻은 예측값과 실제 값의 차이의 expected value(평균값)
$$Bias[\hat{f}(x)] = E[\hat{f}(x) - f(x)]$$
- Variance란? 예측 값이 평균에서 얼마나 퍼져 있는지를 나타낸다(분산) -> 이는 모델이 얼마나 flexibility를 가지고 있을 수 있는지에 대한 의미도 가진다.
$$Variance[\hat{f}(x)] = E[(\hat{f}(x) - E[\hat{f}(x)])^2] = E[\hat{f}(x)^2] - E[\hat{f}(x)]^2$$
Bias와 Variance
Bias와 Variance는 머신러닝에서 모델의 학습 상태를 나타내기 좋은 지표이다.
위의 네가지 경우를 살펴본다면
- Low Bias & Low Variance : 예측값들이 정답 근방에 분포되어 있고(bias가 낮음) 예측값들이 서로 몰려 있다. (variance가 낮음) - 최상의 결과
- Low Bias & High Variance : 예측값들이 정답 근방에 분포되어 있으나 (bias가 낮음) 예측값들이 서로 흩어져 있다. (variance가 높음)
- High Bias & Low Variance : 예측값들이 정답에서 떨어져 있고 (bias가 높음) 예측값들이 서로 몰려 있다. (variance가 낮음)
- High Bias & High Variance : 예측값들이 정답에서 떨어져 있고 (bias가 높음) 예측값들이 서로 흩어져 있다. (variance가 높음) - 최악의 결과
그러나 Bias가 낮은 동시에 Variance가 낮은 모델을 갖기는 어렵다.
이를 위에 정리했던 Bias와 Variance의 식을 이용하여 살펴보자.
다시 한번, Bias와 Variance를 정리해보자
- Bias : $E[\hat{f}(x) - f(x)] = E[\hat{f}(x)] - E[f(x)]$
- Variance : $E[(\hat{f}(x) - E[\hat{f}(x)])^2]$
자, 여기서 예를 들어보자.
Variance을 0으로 만들기 위해 $\hat{f}(x) = E[\hat{f}(x)]$인, $\hat{f}(x)$가 일정한 값을 가지는 상태라고 생각해보자.
그렇다면 Variance는 0이겠지만 Bias는 $E[\hat{f}(x)] - E[f(x)]$이기 때문에 Bias가 커진다.
이런 식으로 Bias가 작아지면 Variance가 커지고, Variance를 줄인다면 Bias가 커지는 현상을 Bias & Variance Tradeoff라고 한다.
다시 한번 Bias와 Variance에 대해 정리해본다면
- Bias : 데이터 내에 있는 모든 정보를 고려하지 않음으로 인해, 지속적으로 잘못된 것들을 학습하는 경향을 말한다. underfitting 이라고도 한다.
- Variance : 데이터 내에 있는 에러나 노이즈까지 잘 잡아내는 highly flexible models 에 데이터를 fitting시킴으로써, 실제 현상과 관계 없는 random한 것들까지 학습하는 알고리즘의 경향을 의미한다. 이는 overfitting과 관계되어 있다.
위의 그래프에서 볼 수 있듯이,
- 선형 모델(degree = 1) : 이 모델은 데이터 내의 모든 정보를 고려하지 못하고 있다 (high bias). 하지만, 새로운 데이터가 들어온다 하더라도 이 모델의 형태는 크게 변하지 않을 것이다 (low variance).
- 고차 다항함수 모델 : 이 곡선 모델은 주어진 데이터를 잘 설명하고 있다 (low bias). 하지만, 이 함수는 새로운 데이터가 들어왔을 때 완전히 다른 형태로 변하게 되고, generality를 잃게 될 것이다 (high variance).
따라서, 이상적인 모델은
< 데이터의 규칙성을 잘 잡아내어 정확하면서도 다른 데이터가 들어왔을 때도 잘 일반화할 수 있는 모델 >
Regularization과 Bias, Variance에 대한 내용은 추후에 Regularization에 대해 설명할 때 다뤄보도록 하겠다.
Bias & Variance Tradeoff
Regression에서 estimated value(예측값) $\hat{f}(x)$와
실제 값(real value)인 $f(x) = \hat{f}(x) + \epsilon$ 사이에 Expected Prediction Error을 구해보자
- Expected Prediction Error이란?
- 모델의 예측이 실제 데이터와 얼마가 차이가 나는지를 알려주는 지표로, 모델의 예측 성능을 평가하고 모델 선택 또는 파라미터 조정에 사용될 수 있다.
$$E[(f(x)-\hat{f}(x))^2]$$
$$ = E[(f(x) - E[\hat{f}(x)] + E[\hat{f}(x)] - \hat{f}(x))^2]$$
$$ = E[(f(x) - E[\hat{f}(x)])^2 + (E[\hat{f}(x)] - \hat{f}(x))^2 + 2(f(x) - E[\hat{f}(x)])(E[\hat{f}(x)] - \hat{f}(x))] $$
$$ = E[(f(x) - E[\hat{f}(x)])^2] + E[(E[\hat{f}(x)] - \hat{f}(x))^2] + 2E[(f(x) - E[\hat{f}(x)])(E[\hat{f}(x)] - \hat{f}(x))] \tag{1}$$
(1) 식에 다음과 같은 수식을 적용시키자
- $E[(X-E[X])^2] = E[X^2 - 2X\cdot E[X] + E[X]^2] = E[X^2] - 2E[X]E[X] + E[X]^2 = E[X^2] - 2E[X]^2 + E[X]^2 = E[X^2] - E[X]^2$
- $E[\epsilon] = 0$이며, $E[f(x)] = E[\hat{f}(x) + \epsilon] = E[\hat{f}(x)]$
그러면 다음과 같은 식이 도출된다.
$$ = E[(f(x) - E[\hat{f}(x)])^2] + E[(E[\hat{f}(x)] - \hat{f}(x))^2] + 2E[(f(x) - E[\hat{f}(x)])(E[\hat{f}(x)] - \hat{f}(x))] $$
$$ = E[(f(x) - E[f(x)])^2] + E[f(x)^2] - E[f(x)]^2 + 2E[f(x)]E[\hat{f}(x)] - 2E[\hat{f}(x)]^2 + 2E[\hat{f}(x)]^2 - 2E[f(x)\hat{f}(x)] $$
$$ = E[(f(x) - E[f(x)])^2] + E[(\hat{f}(x) - f(x))^2]\tag{2} $$
(2) 식의 각 항은 다음과 일치한다.
- $E[(\hat{f}(x) - f(x))^2] = E[(r-f(x))^2] = E[\epsilon^2]$ : real value의 variance
- $E[(f(x) - E[f(x)])^2] = E[(f(x) - g(x))^2]$ : Mean Squared Error
따라서 expected prediction error $= variance^2 + Mean Squared Error$로 나타낼 수 있다.
이제 여기서 Mean Squared Error(MSE)를 구해보자.
$$E[(E[r|x] - g(x))^2|x] = (E[r|x] - E[g(x)])^2 + E[(g(x) - E[g(x)])^2]$$
위의 식에서
- $E[r|x] = E[g(x)]$ : bias로, real value의 평균과 predicted value의 평균의 차(예측값과의 차이)이다.
- $E[(g(x) - E[g(x)])^2]$ : variance로, expected value가 얼마나 퍼져 있는지를 나타낸 것이다.
따라서 Mean Squared Error(MSE) $= Bias^2 + Variance$로 표현 가능하다.
※ 출처
https://gaussian37.github.io/machine-learning-concept-bias_and_variance/
머신러닝에서의 Bias와 Variance
gaussian37's blog
gaussian37.github.io
https://velog.io/@lolhi/Bias-Variance-trade-off
Bias-Variance trade-off
원래는 Regularized Linear Regression의 개념과 관련 알고리즘들(릿지회귀, 라쏘회귀, 엘라스틱 넷)에 대해서 공부를 하려고 했는데 그 전에 Bias-Variance trade-off에 대해 먼저 정리를 하고 Regularized Linear Reg
velog.io
쉽게 이해해보는 bias-variance tradeoff
데이터에 기반한 modelling을 할 때 자주 나오는 개념인 bias-variance tradeoff. 중요하지만 헷갈릴 수 있는 개념인데 쉽게 정리된 글을 Quora에서 발견하여 번역하여 공유한다. 원문: How would you explain the b
bywords.tistory.com
'확률론' 카테고리의 다른 글
Bayes' Estimator (0) | 2023.01.25 |
---|---|
Maximum A Posterior(MAP) (0) | 2023.01.24 |
Maximum Likelihood Estimation(MLE) (0) | 2023.01.10 |