'과잉접합'에 해당되는 글 1건

  1. 2016.05.14 [R 기계학습] 과적합(Over-fitting), Bias-Variance Trade-off (Delimma) (9)

지난 포스팅에서는 지도학습(Supervised Learning)에 있어서

  - 과적합(Over-fitting)이란 무엇인가?

  - 과적합을 파악하고 피하기 위한 방법은? (How to avoid over-fitting?)


에 대하여 알아보았습니다.

 

이번 포스팅에서는 과적합 이야기 세번째로, Bias-Variance Trade-off, 다른 말로는 Bias-Variance Delimma 에 대해서 소개하도록 하겠습니다.  지난번 소개한 과적합에 나왔던 내용과 핵심은 똑같은데요, Bias와 Variance 용어와 수식을 사용해서 과적합(Over-fitting), 과소적합(Under-fitting)을 다른 view로 풀어보겠습니다.  학습(Training)과 과적합(Over-fitting)에 대해서 정확히 이해하는 것이 매우 매우 중요하므로 이번에 한번 더 복습하는 셈 치면 좋겠습니다.


 

먼저, Wikipedia에서 정의하고 있는 Bias와 Variance의 뜻부터 살펴보겠습니다.

 

  • Bias : Bias는 학습 알고리즘에서 잘못된 가정으로 부터 나오는 에러이다.  높은 bias는 학습 알고리즘이 설명변수(독립변수)와 목표변수(종속변수) 간의 연관성있는 관계를 놓치게 한다.
    ("The bias is error from erroneous assumptions in the learning algorithm. High bias can cause an algorithm to miss the relevant relations between features and target outputs (underfitting).")
  • Variance : Variance는 훈련 데이터 내의 작은 변동에 대한 민감성으로부터 나오는 에러이다. 높은 variance는 의도한(일반화) 학습결과를 내기보다는 훈련 데이터 내의 무작위 소음을 모델링함에 따라 과적합을 야기한다.
    ("The variance is error from sensitivity to small fluctuations in the training set. High variance can cause overfitting: modeling the random noise in the training data, rather than the intended outputs.")

    - From : Wikipedia

 

 

Wikipedia 설명 내용이 좀 어려울 수도 있는데요, 아래 그림을 참고하시면 이해하는데 도움이 될 것 같습니다.

 

Bias는 쉽게 말하면 Truth 값으로 부터 평균이 얼마나 떨어져 있느냐는 척도입니다.  아래 예시 그림에서, Truth 평균으로 부터 Observed 평균이 가까운 (1)번과 (3)번은 Bias가 작고, 평균의 거리가 먼 (2)번과 (4)번은 Bias가 큽니다.

 

Variance는 통계학에서 말하는 '분산', 그 분산입니다.  편차 제곱의 합을 자유도로 나누어준 값이요. (= 표준편차(standard deviation)을 제곱한 값).  아래 그림 예시에서, 퍼진 정도가 좁은 (1)번과 (2)번은 variance가 작고, 퍼진 정도(산포)가 큰 (3)번과 (4)번은 variance가 큽니다.  

 

 

 

군대 다녀오신 분들은 신병교육대랑 자대 배치 후 첫 사격에서 '영점 사격'을 했을 텐데요, '영점 사격' 할 때는 Bias보다 Variance가 중요합니다.  Variance가 작아야지 가늠쇠를 조절해서 Bias를 줄일 수 있거든요.  Bias가 작아도 Variance가 크다면 그건 스나이퍼 기질이 없다는 거고(영점조정을 할 수 없으므로 대책이 없음 -_-;), PRI(피터지고, 알통배고, 이갈리는....) 얼차레 꾀나 받았을 거라고 필자는 감히 예상해봅니다.  (여담으로, 필자는 군대 시절 '스나이퍼' 소리 들었음 ^^v)

 

 

통계학 시간에 정규분포(Normal Distribution)에 대해서 배우셨을 텐데요, 위의 그림에서 소개한 (1) Bias : Low,  Variance : Low,  (2) Bias : High,  Variance : Low,  (3) Bias : Low,  Variance : High, (4) Bias : High,  Variance : High 의 4개 유형을 정규분포 확률밀도함수 그래프로 그려보면 아래와 같습니다.

 

 

 

 

Bias, Variance에 대해서 이제 이해하셨으리라 믿고요, Bias-Variance Trade-off 로 넘어가보겠습니다.

Bias-Variance Trade-off 란

 - Bias를 작게 하려면 Variance가 높아지고 (아래 그림의 오른쪽 Over-fitting 상황),

 - Variance를 작게 하려면 Bias가 커지는 (아래 그림의 왼쪽 Under-fitting 상황)

Delimma 를 말합니다. 

 

즉, Bias와 Variance를 동시에 작게 하기가 불가능하다는 뜻입니다. 

 

Bias 를 작게(Bias : Low) 한다고 계속 Training을 시키면 데이터 셋에 있는 Noise까지 통째로 암기를 해버리는 과적합(over-fitting)에 빠져서, 즉 온갖 x변수를 죄다 가져다 써서 유연성을 높이는 대신에 모델 복잡도를 확 높여버려서, 새로운 데이터에 모델을 적용시키면 제대로 예측이나 분류를 못하고 틀리게(variance : high) 됩니다.

 

 

 

이런 딜레마 상황에서 우리는 Bias를 작게 하는 데 몰빵을 한다거나 (Over-fitting), 혹은 Variance를 작게 하는데 몰빵(Under-fitting)할 수는 없는 법이고, 결국은 Bias와 Variance의 적절한 균형점(위 그림의 optimum model complexity, ie, sweet zone)을 찾게 됩니다. 

 

어떻게 찾느냐구요?  지난번 포스팅에서 소개한 Cross-validation 기법을 사용합니다.  데이터 셋을 Training set, Validation set, Test set으로 나누어서 -> Training set으로 훈련시켜 모형을 만들고 (iteration....) --> Validation set을 사용해서 over-fitting 시작하는 지점을 탐지해서 적정 시점에 훈련을 중지시킨 후에 (Over-fitting 방지) --> Test set으로 최종 모델의 성능을 평가합니다.

 

 

위의 그림, 그래프로 직관적으로 이해할 수 있도록 설명하였다면, 좀 어렵더라도 통계 수식으로 풀어보면 아래와 같습니다.  'Variance of the fit'과 (Bias of the fit)^2 은 trade-off 관계에 있으므로, 둘 모두를 동시에 작게 할 수는 없습니다.

 

 

 

[Reference]  “The Bias-Variance Tradeoff ,Cross-Validation and Over-fitting in Prediction”, 
               Professor. George S. Easton

 

 

과적합을 피하는데 샘플을 많이 확보한다거나, 독립변수의 수를 줄이는 것 또한 도움이 됩니다.  나중에 (회귀분석 포스팅 후반부에) 변수 선택기법으로 LASSO (The Least Absolute Shrinkage and Selection Operator) 소개하면서 Bias, Variance 개념 사용하니 잘 알아두시면 좋겠습니다.

 

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ♡~' 단추를 꾸욱~ 눌러주세요. ^^

 

Posted by R Friend R_Friend