머신러닝 모델에서의 bias와 variance에 대하여
1. 문제 제기
variance가 높으면 안좋다는 느낌? 이미지?인데 high variance가 overfitting이고 high bias가 underfitting이라는 것이 매칭이 잘 안된다.
2. bias에 대하여
위키피디아에서 ‘bias error는 learning 알고리즘에서 잘못된 가정으로부터 나온 error이다. high bias는 알고리즘이 feature와 target output 사이 관련있는 관계를 놓치도록 만든다. 이것을 underfitting이라고 한다
quora에서 어떤 사람의 답변을 보면 ‘bias는 training data로부터 머신러닝 모델이 학습하는 능력을 평가하는 metric이다. 그래서 high bias를 가진 모델은 training data나 test data 모두에 잘 작동하지 않을 것이다. 역으로 low bias를 가진 모델은 주어진 training data로부터 학습을 잘 하는 것이다.
데이터사이언스 잡지? 같은 사이트를 보면 ‘bias는 target value와 다른 model의 prediction의 양을 나타낸다. bias error는 모델이 사용한 가정이 단순하여 target function이 너무 쉽게 근사될 수 있으면 나타날 수 있다.’
이걸 보니까 unbiased estimator를 생각해보면 추정량의 기댓값이 모수의 참값과 일치하면 unbiased라고 부르고 다르면 bias가 있다고 부른다는 것을 생각해보자...
이것을 그대로 머신러닝 모델에 적용하면 bias가 있다는건 모델이 예측한 값과 참값이 차이가 있으면 bias가 있다는 것이라고 생각할 수 있다.
그래서 underfitting이 high bias이다. underfitting은 모델이 예측한 값과 참값이 차이가 많이 나는 경우를 나타내기 때문이다.
3. variance에 대하여
위키피디아에서 'variance는 training set에서 작은 변동에 민감함으로부터 나오는 error이다. high variance는 training data의 random noise를 알고리즘이 모델링하는 결과를 낳을 수도 있다. 이것을 overfitting이라고 부른다.‘
quora에서 어떤 사람 답변을 보면 'variance는 train된 모델이 어떤 test dataset에 대해 일반화하는 능력을 평가하는 metric이다. 더욱 광범위하게 그것은 동일한 과정에서 다른 데이터를 받더라도 모델이 얼마나 비슷한 결과를 나타내는지를 보여주는 것이다.‘
low bias를 가지는 모델은 training data를 잘 학습할 수 있어서 보통 high variance를 가지고 이는 새로운 데이터에 대해 일반화하는 능력이 부족하다는 것으로 overfitting이라고 부른다.
다른 사람 답변을 보면 ‘high variance는 서로 다른 데이터셋에 대한 test error에 변동하는 정도를 나타낸다. variance가 높을수록 변동하는 정도가 크다. 만약 모델이 training data에 low error를 보이는 parameter를 가졌다면 training data와 비슷한 test data에 대해서는 error가 작겠지만 train과 전혀 다른 test data를 받으면 큰 error를 보인다.’
데이터사이언스 잡지같은 사이트를 보면 ‘variance는 target function의 추정량이 서로 다른 training data를 사용할 때 얼마나 다른지를 나타낸다. 다시 말해 variance는 기댓값과 얼마나 다른지를 나타내는 random variable이다. 서로 다른 training set을 사용하여 서로 다른 예측값들이 얼마나 비일관적인지를 나타낸다.’
variance가 무엇인지를 생각해보면 표본으로부터 모수를 추정하는데 sampling을 할 때마다 추정량은 값이 달라지지만 무수히 많이 sampling을 하면 어느정도 나타날지 기대할 수 있는 기댓값이 있다. 기댓값으로부터 sampling하여 구한 추정량들이 얼마나 흩어져있는지 나타낸 정도가 variance이다.
이것을 머신러닝 모델에 그대로 적용해보면 모델의 variance란 학습된 모델에 test data를 주면 training error 정도가 나올 것이라고 기대를 한단말이야..
이 training error가 test error의 기댓값인데 test error가 만약 training error와 차이가 많이 나면 그만큼 variance가 높다고 생각할 수 있다.
그래서 high variance는 overfitting이다. overfitting은 test data에 대한 error와 training error가 차이가 많이 나는 경우를 나타내기 때문이다.
4. 핵심요약
1) 머신러닝 모델에 bias가 있다는건 모델이 예측한 값과 참값이 차이가 있으면 bias가 있다는 것
2) high bias는 underfitting, training set에 대해 학습을 잘 못하면 bias가 높다
3) 모델의 variance란 학습된 모델에 test data를 주면 training error 정도가 나올 것이라고 기대를 하는데 test error가 만약 training error와 차이가 많이 나면 그만큼 variance가 높다고 생각할 수 있다.
4) high variance는 overfitting, 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
'다시보는 통계학' 카테고리의 다른 글
분포함수에 관한 중요한 정리(theorem) (0) | 2021.12.07 |
---|---|
누적확률분포함수(cumulative probability distribution)에 대하여 (0) | 2021.12.06 |
확률(probability)과 가능도(likelihood)는 어떻게 다를까? (0) | 2021.11.18 |
p-value에 대한 오해 (0) | 2021.10.06 |
결정계수에 대한 오해 (0) | 2021.10.04 |