Bias-Variance Tradeoff

좋은 모델이란 무엇인가? 이 질문에 답하기란 생각보다 쉽지 않다. 그렇지만 좋은 모델들이 공통적으로 갖추어야할 공통적인 덕목(?)이 있는데 그것은 바로 다음과 같다.

  1. 현재 주어진 데이터, 즉 훈련 데이터를 잘 설명할 수 있다.
  2. 미래에 주어질 데이터, 즉 테스트 데이터도 잘 설명할 수 있어야 한다.

훈련 데이터를 잘 설명하려면 모델이 고차원일수록 유리하다. 그러나 모델의 차원이 증가할수록 차원의 저주에 의해 테스트 데이터에 대한 설명력이 떨어지게 된다. 반면, 모델의 차원이 너무 낮을 경우 반대의 문제에 직면하게 된다. 즉, 첫 번째 조건을 만족하려다보면 오버피팅이 발생할 수 있고, 두 번째 조건을 만족하려다보면 언더피팅이 발생할 수 있다.

오버피팅이 발생하면 데이터의 작은 변동에도 모델이 민감하게 반응한다. 다시 말해, 오버피팅이 발생하면 훈련 데이터가 조금만 바뀌더라도 학습 결과가 완전히 달라질 수 있다. 이 경우를 통계학과 기계학습 분야에서는 모델의 분산이 크다고 부른다. 반대로, 언더피팅은 잘못된 가정으로 모델을 지나치게 단순화함으로 인해 입출력 데이터 간의 적절한 관계를 놓치게 만든다. 따라서 훈련 데이터의 특성이 바뀌더라도 학습 결과는 거의 달라지지 않을 수 있으며, 이 경우를 모델의 편향이 크다고 부른다. 편향은 실제 모델과 학습 모델 간의 차이를 말한다.

[그림 1] Bias와 Variance의 개념 (source: [5])

분산과 편향의 개념을 설명할 때, 가장 자주 등장하는 그림이 바로 [그림 1]이다. 우리는 당연히 분산과 편향이 모두 낮은 모델을 찾고자 한다. 그러나 안타깝게도 분산과 편향은 하나를 줄이면 다른 하나는 증가하는 tradeoff 관계에 있다는 것이 수학적으로 매우 간단히 증명할 수 있으며, 때문에 모델을 일반화하면서 높은 학습 성능을 성취하는 것은 사실상 불가능하다. (이는 마치 detection theory에서 false alarm rate과 detection probability를 동시에 minimize하는 것이 불가능한 것과 같다.)

마지막으로 bias-variance decomposition을 통해 bias-variance tradeoff 관계를 수학적으로 살펴보고 이 글을 마치기로 한다.

Bias-Variance Decomposition

먼저 잡음이 포함된 y=f(x)+ey=f(x)+e의 관계를 만족하는 어떠한 모델을 생각해보자. 여기서 잡음 ee는 평균이 0이고 분산이 σ2\sigma^2인 정규분포 따른다. 따라서 E[y]=f(x)E[y]=f(x)이다. 우리는 yy를 추정하기 위해 학습 알고리즘을 통해 실제 관계함수인 y=f(x)y=f(x)의 근사함수 f^(x)=f^\hat{f}(x)=\hat{f}를 찾았다고 가정해보자.

확률변수 XX에 대하여

E[X2]=Var[X]+E[X]2E[X^2] = Var[X] + E[X]^2

의 관계가 성립하고, ff는 이미 결정되어 있는, 즉 deterministic이므로

Var[f]=E[(fE[f])2]=0Var[f]=E[(f-E[f])^2]=0

이 되고, 따라서

E[f]=fE[f]=f

가 된다. 그리고 Var[e]=σ2Var[e]=\sigma^2이므로

Var[y]=E[(yE[y])2]=E[(yf)2]=E[(f+ef)2]=E[e2]=Var[e]+E[e]2=σ2\begin{aligned} Var[y] &= E[(y-E[y])^2] \\ &= E[(y-f)^2] \\ &= E[(f+e-f)^2] \\ &= E[e^2] \\ &= Var[e] + E[e]^2 \\ &= \sigma^2 \end{aligned}

이 된다. 이제 앞에서 살펴보았던 결과와 함께 eef^\hat{f}가 서로 독립인 관계를 이용하여 MSE를 전개하면 다음의 결과를 얻을 수 있다.

E[(yf^)2]=E[y2+f^22yf^]=E[y2]+E[f^2]2E[yy^]=Var[y]+E[y]2+Var[f^]+E[f^]22E[(f+e)f^]=Var[y]+Var[f^]+f2+E[f^]22E[ff^]=Var[y]+Var[f^]+f2+E[f^]22(Cov[f,f^]0+E[f]E[f^])=σ2+Var[f^]+(fE[f^])2=σ2+Var[f^]+bias[f^]2\begin{aligned} E[(y-\hat{f})^2] &= E[y^2 + \hat{f}^2 - 2y\hat{f}] \\ &= E[y^2] + E[\hat{f}^2] - 2E[y\hat{y}] \\ &= Var[y] + E[y]^2 + Var[\hat{f}] + E[\hat{f}]^2 - 2E[(f+e)\hat{f}] \\ &= Var[y] + Var[\hat{f}] + f^2 + E[\hat{f}]^2 - 2E[f\hat{f}] \\ &= Var[y] + Var[\hat{f}] + f^2 + E[\hat{f}]^2 - 2\left(\cancel{Cov[f,\hat{f}]}^{0}+E[f]E[\hat{f}]\right) \\ &= \sigma^2 + Var[\hat{f}] + (f-E[\hat{f}])^2 \\ &= \sigma^2 + Var[\hat{f}] + bias[\hat{f}]^2 \end{aligned}

위 식으로부터 MSE는 irreducible error와 모델의 분산, 그리고 모델의 편향 제곱에 의해 결정됨을 알 수 있다.

  • irreducible error는 문제의 본질적이 난이도에 의해 결정된다.
  • 모델의 분산은 크기가 같은 훈련 세트가 바뀔 때 발생하는 학습 성능의 변화 정도로 데이터 변동에 의한 영향을 나타낸다. 따라서 더 많은 데이터로 더 많은 학습을 수행하면 줄어들게 된다.
  • 모델의 편향은 학습 알고리즘의 기대 예측 값이 실제 데이터에서 떨어진 정도이므로 학습 알고리즘의 적합 능력을 나타낸다.

적은 데이터로 훈련을 부족하게 하였을 때 학습된 모델의 적합 능력은 떨어진다. 하지만 훈련 데이터가 조금 변경된다고 해서 학습 모델의 성능에는 큰 변화가 생기지 않는다. 이 경우에는 편향이 오차의 주된 원인이 된다.

반면, 더 많은 데이터로 훈련의 깊이를 증가시켰을 경우에는 충분히 훈련이 되어 모델의 적합 능력은 매우 좋게 된다. 반면, 훈련 데이터에 발생하는 작은 변화에도 학습기 성능은 민감하게 된다. 이는 훈련 데이터의 일반적이지 않은 특성까지 학습기가 배웠기 때문이다.

모델의 복잡도에 따른 분산과 편향의 tradeoff 관계를 그림으로 나타내면 아래와 같다.

[그림 2] 모델 복잡도(model training)에 따른 분산과 편향의 변화 (source: [9])

References

[1] https://people.eecs.berkeley.edu/~jrs/189s19/lec/12.pdf

[2]김성범, [핵심 머신러닝] 정규화모델 1(Regularization 개념, Ridge Regression)](https://www.youtube.com/watch?v=pJCcGK5omhE&list=PLpIPLT0Pf7IoTxTCi2MEQ94MZnHaxrP0j&index=21)

[3] 조우쯔화 저/김태헌 역, "단단한 머신러닝 머신러닝 기본 개념을 제대로 정리한 인공지능 교과서," 제이펍, 2020.

[4] 오렐리앙 제롱 (박해선 역), "핸즈온 머신러닝 사이킷런과 텐서플로를 활용한 머신러닝, 딥러닝 실무 2판," 한빛미디어, 2020.

[5] https://www.listendata.com/2017/02/bias-variance-tradeoff.html

[6] https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff

[7] https://ko.wikipedia.org/wiki/%ED%8E%B8%ED%96%A5-%EB%B6%84%EC%82%B0_%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%93%9C%EC%98%A4%ED%94%84

[8] http://www2.econ.osaka-u.ac.jp/~tanizaki/class/2012/econome1/05.pdf

[9] https://www.ml-science.com/bias-variance-tradeoff

profile
연구와 개발의 중간 어디쯤

0개의 댓글