머신러닝 모델에서의 bias와 variance에 대하여

1. 문제 제기

 

variance가 높으면 안좋다는 느낌? 이미지?인데 high varianceoverfitting이고 high biasunderfitting이라는 것이 매칭이 잘 안된다.

 

2. bias에 대하여

 

위키피디아에서 ‘bias errorlearning 알고리즘에서 잘못된 가정으로부터 나온 error이다. high bias는 알고리즘이 featuretarget output 사이 관련있는 관계를 놓치도록 만든다. 이것을 underfitting이라고 한다

 

quora에서 어떤 사람의 답변을 보면 ‘biastraining data로부터 머신러닝 모델이 학습하는 능력을 평가하는 metric이다. 그래서 high bias를 가진 모델은 training datatest data 모두에 잘 작동하지 않을 것이다. 역으로 low bias를 가진 모델은 주어진 training data로부터 학습을 잘 하는 것이다.

 

데이터사이언스 잡지? 같은 사이트를 보면 ‘biastarget value와 다른 modelprediction의 양을 나타낸다. bias error는 모델이 사용한 가정이 단순하여 target function이 너무 쉽게 근사될 수 있으면 나타날 수 있다.’

 

이걸 보니까 unbiased estimator를 생각해보면 추정량의 기댓값이 모수의 참값과 일치하면 unbiased라고 부르고 다르면 bias가 있다고 부른다는 것을 생각해보자...

 

이것을 그대로 머신러닝 모델에 적용하면 bias가 있다는건 모델이 예측한 값과 참값이 차이가 있으면 bias가 있다는 것이라고 생각할 수 있다.

 

그래서 underfittinghigh bias이다. underfitting은 모델이 예측한 값과 참값이 차이가 많이 나는 경우를 나타내기 때문이다.

 

그림1. underfitting과 optimal fitting

 

3. variance에 대하여

 

위키피디아에서 'variancetraining set에서 작은 변동에 민감함으로부터 나오는 error이다. high variancetraining datarandom noise를 알고리즘이 모델링하는 결과를 낳을 수도 있다. 이것을 overfitting이라고 부른다.‘

 

quora에서 어떤 사람 답변을 보면 'variancetrain된 모델이 어떤 test dataset에 대해 일반화하는 능력을 평가하는 metric이다. 더욱 광범위하게 그것은 동일한 과정에서 다른 데이터를 받더라도 모델이 얼마나 비슷한 결과를 나타내는지를 보여주는 것이다.‘

 

low bias를 가지는 모델은 training data를 잘 학습할 수 있어서 보통 high variance를 가지고 이는 새로운 데이터에 대해 일반화하는 능력이 부족하다는 것으로 overfitting이라고 부른다.

 

다른 사람 답변을 보면 ‘high variance는 서로 다른 데이터셋에 대한 test error에 변동하는 정도를 나타낸다. variance가 높을수록 변동하는 정도가 크다. 만약 모델이 training datalow error를 보이는 parameter를 가졌다면 training data와 비슷한 test data에 대해서는 error가 작겠지만 train과 전혀 다른 test data를 받으면 큰 error를 보인다.’

 

데이터사이언스 잡지같은 사이트를 보면 ‘variancetarget function의 추정량이 서로 다른 training data를 사용할 때 얼마나 다른지를 나타낸다. 다시 말해 variance는 기댓값과 얼마나 다른지를 나타내는 random variable이다. 서로 다른 training set을 사용하여 서로 다른 예측값들이 얼마나 비일관적인지를 나타낸다.’

 

variance가 무엇인지를 생각해보면 표본으로부터 모수를 추정하는데 sampling을 할 때마다 추정량은 값이 달라지지만 무수히 많이 sampling을 하면 어느정도 나타날지 기대할 수 있는 기댓값이 있다. 기댓값으로부터 sampling하여 구한 추정량들이 얼마나 흩어져있는지 나타낸 정도가 variance이다.

 

이것을 머신러닝 모델에 그대로 적용해보면 모델의 variance란 학습된 모델에 test data를 주면 training error 정도가 나올 것이라고 기대를 한단말이야..

 

training errortest error의 기댓값인데 test error가 만약 training error와 차이가 많이 나면 그만큼 variance가 높다고 생각할 수 있다.

 

그래서 high varianceoverfitting이다. overfittingtest data에 대한 errortraining error가 차이가 많이 나는 경우를 나타내기 때문이다.

 

 

그림2. overfitting과 optimal fitting의 비교

 

 

4. 핵심요약

 

1) 머신러닝 모델에 bias가 있다는건 모델이 예측한 값과 참값이 차이가 있으면 bias가 있다는 것

 

2) high biasunderfitting, training set에 대해 학습을 잘 못하면 bias가 높다

 

3) 모델의 variance란 학습된 모델에 test data를 주면 training error 정도가 나올 것이라고 기대를 하는데 test error가 만약 training error와 차이가 많이 나면 그만큼 variance가 높다고 생각할 수 있다.

 

4) high varianceoverfitting, training set에 대해 학습을 너무 해버리면 variance가 높다

 

5. 참조

 

https://www.mastersindatascience.org/learning/difference-between-bias-and-variance/

 

https://www.quora.com/Why-is-Overfitting-called-high-variance

 

https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff

 

https://www.educative.io/edpresso/overfitting-and-underfitting

TAGS.

Comments