본문 바로가기

Statistics

편향-분산 트레이드오프와 Regularization

일반적으로 우리가 훈련을 잘 시킨다는 것은 훈련데이터에 대해 잘 적합(fit)시킨다는 말로도 해석한다. 그러나 이 훈련데이터에 너무 잘 적합을 시킨다면 흔히 말하는 과다적합(overfiting)문제가 발생한다. 그렇다고 하여 훈련데이터에 대해 간단히 추세만 나타낼 정도로만 모델을 만들면 과소적합(underfitting)문제가 발생한다. 과다적합 상황에서는 편향(Bias)이 낮고 분산(Variance)은 높다고 하고 반대로 과소적합상황에서는 편향이 높고 분산이 낮다고 한다.  이런 분산과 편향사이의 관계를 편향-분산 트레이드 오프관계라고 한다. 지도학습 알고리즘이 트레이닝 셋의 범위를 지나치게 일반화 하는 것을 예방하기 위해 두 종류의 오차(편향, 분산)를 최소화 할 때 겪는 문제이다. 즉 편향을 줄이려고 하면 분산이 높아지고, 분산을 줄이려고 하면 편향이 높아진다는 말인데 왜 이런 상황이 나타날까? 이제 설명해 보겠다.


본격적으로 분산에 따른 오차와 편향에 따른 오차를 설명하기전에 전반적인 오차의 종류에 대해서 살짝 집고 넘어가겠다.


우리가 흔히 말하는 error는 크게 두가지로 나눌수 있다. 무작위오차(random error) 체계적오차(systematic error)로 나뉘는데,

무작위오차는 변화, 임의적 변화, 혹은 "Noise"라고도 한다. 이건 우리가 어쩔수 없는 데이터 자체의 오류이다. 이 오류는 방향성이 없으므로 모든 관찰치들의 평균은 a net effect of zero이 될것이라는 걸 예상할 수 있다. 예측이 정밀하지 않을수는 있지만 부정확하진 않다. random error의 효과(비정밀성)은 샘플사이즈의 크기로 최소화시킬 수 있다.

체계적 오차(Systematic error) 또는 편향(bias)는 단지 확률에 의한 (즉 우연한) 것만은 아닌 편차들을 말한다. 이건 방향성과 크기가 있어 관찰치의 평균이 이를 제거하지 못한다. 체계적 오차는 샘플크기로도 줄일수가 없다. 사실 편향이 크면 어느 결론도 비유효하게 되기 때문에 이러한 편향을 줄이는 것이 상당히 중요하다. 편향은 부정확성(Imprecision)과 반응한다. 이 편향은 크게 선택편향과 반응편향으로 나뉘는데 선택편향은 피실험자들로부터 나오는 편향이고 비대표샘플(non-representative sample), 무반응(non-response) 편향 그리고 자발적(voluntary) 편향으로 나뉘고 반응(reponse)편향은 실험자가 편향을 갖는것으로 크게 유도질문(Leading question, 사회적선호(social desirability)로 나뉜다.   

편향은 예측 될 파라미터들과 예측기(모델)의 수학적 기대값 간의 차이로 정의된다. 통계적 편향은 분석 혹은 예측의 방법으로부터 결론지어질 수 있다. 예를 들어 만약 통계적 분석이 중요한 예측 요인들(종속변수효과를 미친다고 알려진 변수들)에 대해서 설명하지 않는다면, 이것은 예측처리효과가 편향됐을 가능성이 있다.

편향의 대표적 예인 자유도 문제이다.



위의 분산의 예측은 한개의 표본에서 독립항등분포(Independent and Identically one-sample situation)를 가정한 여러개의 랜덤 변수들과 y의 평균이 있다. 위의 s^2은 편향되지 않았다. 표본집단의 평균이라는 제약을 만족해야 하기때문에 자유도가 한단위 줄어들었으므로 이를 반영한 식은 올바른 분산 σ2이기 때문이다. 그러나 v^2은 편향이 되었다 표본집단의 평균 제약을 고려하지 않았으므로 자유도를 그대로 계산했기 때문에 모집단의 분산이 과소평가되는 경향이 있기 때문에 편향이 된 것이다.

위의 설명이 다 이해가 되지 않는다면 일단 편향은 치우침 즉 우리가 흔히 회귀식에서 말하는 y 절편이다.


본격적으로 편향과 분산에 따른 오차에 대해 알아보자


● 편향(Bias)에 따른 오차(우리가 주로 말하는 y 절편임) : 편향으로 인한 오차는 모델의 기대(혹은 평균) 예측 과 예측해야할 실제 올바른 값 사이의 차이로써 얻어진다. 물론 당신은 단 한개의 모델만 갖고 있다. 따라서 기대 또는 평균 예측값이라고 말하는 것은 약간 이상할 수도 있다. 그러나 모델설정과정을 한번 이상 반복한다고 가정하면, 즉 매번 새로운 데이터를 모아 새로운 분석을 하여 새로운 모델을 만든다면, 데이터 셋 기저에 있는 randomness때문에 결과 모델들은 예측의 범위를 가질 것이다. 편향은 일반적으로 이러한 모델들의 예측이 올바른 값으로부터 얼마나 떨어져 있는지를 측정한다. 


● 분산(Variance)에 따른 오차: 분산에 의한 오차는 데이터에 대한 모델예측의 다양성으로 측정된다. 다시한번, 당신이 전체 모델링 과정을 여러번 반복할 수 있다고 하자. 그 모델의 예측값들 사이(여러번 모델링을 반복했으므로)에서 예측이 얼마나 다양한지가 분산이다. 따라서 분산이 크다면 예측치의 범위가 넓다는 말이고, 이러한 모델에서 이상치가 예측의 범위에 포함이 될 수도 있으므로, 과도적합이 되었을 수 있다는 말이다. 따라서 과도적합이 되었을때 분산이 클수 있으며 분산이 작다면 예측치의 범위가 좁다는 말이고, 이러한 모델에서는 실제 맞는 데이터도 예측치의 범위에 포함이 안되어 예측이 불가능하므로 이는 과소적합을 나타낸다


편향은 올바른값으로 부터 얼마나 떨어져 있는지를 측정한 것이라면, 분산은 예측치들의 평균(기대값)으로부터 얼마나 떨어져 있는지를 측정한 것.



편향-분산 트레이드 오프는 문제 자체에 있는 노이즈로부터 나온 편향, 분산, 그리고 irreducible error로 불리는 양 이 세가지의 합으로써 특정 문제에 대한 학습 알고리즘의 기대 일반화오차를 분석하는 한 방법이다. 이 트레이드오프는 모든 형태의 교사학습에 적용된다. 


끝으로 왜 이러한 편향-분산 트레이드 오프가 중요하고 또 왜 알아야 하느냐? 위에서도 봤겠지만, 이 둘의 관계는 트레이드 오프 관계이고 이 두 오류를 잘 조정함으로써 모델을 진단하고 과대적합 혹은 과소적합을 피할 수 있기 때문에 중요하다. 



참고문헌 : https://onlinecourses.science.psu.edu/stat509/node/26

  http://scott.fortmann-roe.com/docs/BiasVariance.html



여기서 훈련데이터에서 과다적합을 시켰을 경우를 더 들어가보자 훈련데이터를 과다적합할 경우 학습오차는 0에 가깝겠지만 일반화오차는 커질 것이고 결국 훈련데이터이상의 데이터에 대해서는 예측력이 떨어질 것이다. 따라서 훈련데이터를 훈련시킬때 덜 훈련을 시켜야한다. 좀 더 학술적으로 말하자면 결정경계의 복잡도가 높아지는것을 막아야 한다는 말이다. 그렇다면 어떻게 막을것인가?


학습의 조기종료(early stopping) : 과다학습이 일어나기전 학습을 멈추는 방법


정규화항을 가진 오차함수(Regularized error fuction, 흔히 Regularization) : 후설


모델선택(Model selection) : 여러종류의 복잡도를 가진 후보 모델들을 학습 후 최적 모델 선택


크게 이렇게 3가지 방법이 있다. 여기서 regularization(2번째)에 대해서 조금 더 설명해 보면

Regularization은 overfitting문제를 풀기 위해 사용되는 테크닉인데, 우리가 모델에 데이터를 훈련시킬때 이 데이터의 훈련모델에서 파라미터를 모델에 더 추가할수록 overfitting 문제가 나타나게 된다. 따라서 backgournd noise 까지 학습을 하게되는데, 이 때문에 훈련데이터 상에서는 훈련모델이 input 데이터에 대한 output 데이터를 잘 예측할 수 있겠으나, 훈련데이터 이외의 외부데이터(test 데이터)를 모델이 학습하면 예측력이 떨어지는 현상이 나타난다. 이를 generalization이 떨어진다고 한다. 따라서 학습모델이 이 noise(error)까지 학습하지 않기 위해 약간의 페널티를 두는 방식을 취하는데 이를 loss function에 제약을 주어 페널티를 주는것이다. 조금 어려운 말로는 regularization을 통해 generalized error를 줄이게 하는 것을 목적으로 하는것이다. 혹은 generalization property를 좋게한다고도 한다. 자세한 reguralization의 설명은 다음의 문헌들을 참고해주기 바란다.

  1.  https://en.wikipedia.org/wiki/Regularization_(mathematics)
  2.  http://enginius.tistory.com/476


P.S 이 글은 사실 쓰고 완성되기까지 좀 시간이 걸렸음에도 내용에 오류가 있을 수도 있다. 문제가 있는 곳은 언제든 알려주면 감사하겠다.