Machine Learning

분산과 편향 차이 이해하기 (bias vs variance)

hyez 2022. 4. 4. 17:47

편향-분산 트레이드오프(bias-variance trade-off)는 지도학습에서 에러를 처리할 때 중요하게 생각하는 요소인만큼 종종 헷갈리는 개념인 bias와 variance에 대해 다루어보려 한다. 

Notation

$f(x), \hat{f}(x), E[\hat{f}(x)]$의 뜻에 대해 알아보자.

출처 : https://gaussian37.github.io/machine-learning-concept-bias_and_variance/

  • $f(x)$ : 입력 데이터 $x$에 대한 실제 target 값
  • $\hat{f}(x)$ : 머신러닝 모델의 output, prediction value. 모델의 파라미터에 따라 다양한 값들을 출력할 수 있음
  • $E[\hat{f}(x)]$ : $\hat{f}(x)$의 기댓값 = 대표 예측값

 

Bias vs Variance

  • 편향(bias) : 예측값과 실제 정답과 차이의 평균
    • 예측이 정답에서 얼마나 떨어져 있는지를 반영
    • bias가 크다면, 예측과 정답 간 차이가 크다

$$Bias[\hat{f}(x)] = E[\hat{f}(x) - f(x)]$$

  • 분산(variance) : 다양한 데이터셋에 대하여 예측값이 얼만큼 변화할 수 있는지에 대한 양(Quantity)의 개념
    • 예측의 변동폭이 얼마나 큰지 반영
    • 모델이 얼만큼 flexibilty를 가지는 지에 대한 의미로도 사용
    • 분산의 본래 의미와 같이 얼만큼 예측값이 퍼져서 다양하게 출력될 수 있는 정도로 해석

$$Var[\hat{f}(x)] = E[(\hat{f}(x) - E[\hat{f}(x)])^2] = E[\hat{f}(x)^2] - E[\hat{f}(x)]^2$$

 

머신러닝에서 bias와 variance의 관계

출처: http://scott.fortmann-roe.com

  • (a) : good fitting
  • (b) : overfitting
  • (c) : underfitting
  • (d) : (b), (c) 둘 다에 해당

모델을 선택할 때, training data에 대해 적절히 잘 훈련되어야 하며, 새로운 데이터에 대해 일반화(generalization)까지 하는 것이 가장 이상적이라 할 수 있다. 하지만 이 둘은 trade-off 관계에 있어 동시 달성은 불가능 하다.

출처: https://soobarkbar.tistory.com/21?category=793437

  • $\sigma$ : irreducible error, 근본적으로 줄일 수 없는 에러.
    • bias와 variance를 0으로 만든다고 하더라도 그 모델이 항상 완벽할 수는 없기 때문에 추가된 항

모델 학습은 전체 에러를 낮추는 방향으로 진행되기 때문에, 전체 에러가 주어질 경우, 분산과 편향 사이에 트레이드오프가 일어나게 된다. 우리가 주로 고민해야 하는 것은 train에서의 b-v trade off가 아니라 test의 b-v trade off이고 이는 샘플링 시 발생하는 subset의 변동들에 대해 고려해야함을 뜻한다. 

출처: https://modulabs-biomedical.github.io/Bias_vs_Variance

모델의 복잡도를 높이면 train data에 대한 bias와 variance는 계속해서 모두 감소한다(bias + variance가 작아지도록 학습하므로). 그런데 test data로 평가를 해보면 MSE loss가 어느 시점부터 커지는데, 그 이유는 test data의 MSE loss 중 variance가 다시 커지기 때문이다.

 

출처: https://soobarkbar.tistory.com/21?category=793437

 

그렇다면 딥러닝은 엄청나게 복잡도가 높은 모델을 만드는데 왜 test data도 잘 맞출 수 있을까? 

Big-data가 전제가 되기 때문

bigdata는 train data가 모집단과 거의 유사하야 sampling의 변동이 거의 없기 때문에 모델 복잡도를 높이는 것이 가능하다. 만약 train data가 적은 상태로 복잡한 딥러닝 모델을 적용한다면 overfitting 문제가 발생할 수 있기에 regularization, dropout, domain adaptation 등이 존재한다.

 

결국, 딥러닝에서 다양한 trick들은 loss를 줄이기 위함이고, 이 loss는 bias와 variance로 이루어져있다. 그리고 그런한 trick들의 효과를 bias-variance 관점에서 생각해보면 다양한 딥러닝 trick들에 대한 더 좋은 이해가 되지 않을까 생각한다.

Reference