MLOps 부트캠프 by 한경+토스뱅크/Machine Learning

편향(Bias)와 분산(Variance)

나니니 2024. 8. 24. 20:55

편향

아래 좌측의 데이터를 살펴보면 어느 정도까지는 키가 늘어날 때 몸무게가 같이 늘어나지만, 일정 키부터는 몸무게가 잘 늘어나지 않는다. 따라서 우측의 곡선이 데이터를 더 정확하게 표현한다고 볼 수 있다. 

이처럼 좌측 직선 모델의 문제는 모델이 너무 간단해서 아무리 학습을 해도 우측과 같은 곡선 관계를 나타내지 못하는데 이를 통해 모델에 한계가 있다는 것을 알 수 있다.

이처럼 모델이 너무 간단해서 데이터의 관계를 잘 학습하지 못하는 경우 모델의 편향, 영어로는 bias가 높다고 한다. 

좌: 높은 편향(과소적합) / 우: 낮은 편향(과적합)

이번에는 높은 차항의 회귀를 사용해서, 위와 같은 관계를 학습했다고 해보자.

이때, 아래의 복잡한 곡선은 모델의 복잡도를 늘려서 training 데이터의 관계를 잘 학습할 수 있도록 하였으므로 training 데이터에 거의 완벽히 맞춰져 있다. 따라서 이 모델은 편향이 낮은 모델이라고 할 수 있다. 

그러면 편향이 낮은 모델은 항상 편향이 높은 모델보다 좋을까?

training 데이터의 관계를 완벽하게 나타내는 모델이 있으면 마냥 좋다고만 생각할 수 있으나 꼭 그렇지만은 않다. 

분산

분산은 다양한 테스트 데이터가 주어졌을 때 모델의 성능이 얼마나 일관적으로 나오는지를 뜻한다. 직선 모델은 어떤 데이터 셋에 적용해도 성능이 비슷하게 나오지만, 복잡한 곡선 모델은 데이터 셋에 따라 성능의 편차가 굉장히 크기 때문에 직선 모델은 분산이 작고, 곡선 모델은 분산이 크다.

 

먼저 위에서 봤던 직선 모델과 복잡한 곡선 모델을 이용해서 처음 보는 test 데이터의 몸무게를 예측한다고 해보자. 

왼쪽은 training 데이터, 오른쪽은 test 데이터다. 

평균 제곱 오차를 사용해서 모델의 성능을 평가하기 전에 먼저 복잡한 곡선 모델부터 확인해보자. 

이 모델은 training 데이터에 대해서는 거의 완벽한 성능을 보이지만 test 데이터에 대해서는 상당히 안 좋은 성능을 보이는 것을 알 수 있다.  이는 모델이 오히려 너무 복잡해서 문제가 생기는 것인데, 모델이 training 데이터를 가지고 학습할 때 키와 몸무게의 관계를 배우기보다는 아예 데이터 자체를 외워버려서 처음 보는 데이터 셋에 모델을 적용해 보면 성능이 아주 떨어지는 것이다. 

데이터 셋 별로 모델이 얼마나 일관된 성능을 보여주는지를 분산, 영어로는 variance라고 한다.

다양한 데이터 셋 간에 성능 차이가 많이 나면 분산이 높다고 하고, 성능이 비슷하면 분산이 낮다고 한다. 복잡한 곡선 모델은 데이터 셋마다 성능 차이가 많이 나니까 분산이 높다.

그럼 직선 모델을 어떨까?

training set을 사용했을 때랑, test set을 사용했을 때 성능에 큰 차이가 없다. 다양한 데이터 셋을 사용해도 일관된 성능을 보인다는 것이므로 위의 직선 모델은 분산 또한 작다.

편향-분산 트레이드오프 (Bias-Variance Tradeoff)

일반적으로 편향과 분산은 하나가 줄어들수록 다른 하나는 늘어나는 관계가 있다. 둘 중 하나를 줄이기 위해서는 다른 하나를 포기해야 되기 때문에 이 관계를 편향-분산 트레이드오프라고 부른다.

편향-분산 트레이드오프 문제는 머신 러닝 프로그램들의 성능과 밀접한 관계가 있기 때문에 편향과 분산, 다르게는 과소적합과 과적합의 적당한 밸런스를 찾아내는 게 중요하다. 

그러므로 아래 이미지와 같이 딱 적당한 곡선을 찾아야 한다는 것이다.