본문 바로가기
coursework/Machine Learning & Deep Learning

SP24) Bias-Variance Tradeoff

by 잼민ai 2024. 4. 1.

이날 퀴즈도 봤는데 꾸역꾸역 진도 나가신 멋진 Jeany Son 교수님...

흥칫이야 완전..

 

오늘의 주제는 Bias-Variance Tradeoff! 뭔지 잘 모르므로 열심히 또 복습 기~

참고 영상: https://www.youtube.com/watch?v=zUJbRO0Wavo

이 교수님 설명 ㄹㅇ 왕잘함 역시 코넬대학교 CS 최고..

그리고 뭔가 손진희 교수님 설명과 다른 부분이 많은 것 같네요..?

참고로 'bias'라는 용어는 좀 느슨하게 사용되는 듯합니다. weight&bias에서 bias term을 말하는 경우도 있고, 이 강의에서는 다른 걸 지칭하는 것 같네요~.~ 교수님은 이런 표현을 사용하심
"The difference between the expected predictions of your model and the ground truth (as in 'bias-variance tradeoff')."

Decomposition of Error

저 Bias와 Variance라는 용어를 본격적으로 사용하기 전에, 오차의 기댓값을 한번 살펴보도록 합시다. 

\begin{equation}\label{eq1}
E_{D, (y^*, x^*)}\left[(y^*-f(x^*|D))^2\right] = \text{Noise}+\text{Bias}^2+Variance
\tag{1.a}
\end{equation}

ㅋㅋ 아 이거 뒤에 식 자세히 나올 거 생각하니까 벌써 머리 아프네 ^^

살짝 어지러운 노테이션들이 있는데요, 풀어쓰자면 학습데이터 $D$를 바탕으로 우리가 만들어준 모델 $f$로 예측한, 테스트 데이터에 대한 예측값과 실제값의 편차 제곱의 평균입니다. 여기서 Bias가 의미하는 바를 수식으로 쓰면 다음과 같대요.

 

\begin{equation}\label{eq2}
\begin{split}\text{bias}^2 &=\int_x\{E_D[h(x)] - t(x)\}^2p(x)dx \\ & = \mathbb{E}_x\left[(\mathbb{E}_D[h(x)] - t(x))^2 \right]\end{split}
\tag{1.b}
\end{equation}

 

그럼 variance는?

\begin{equation}\label{eq3}
\begin{split}
\bar{h(x)} & = E_D[h(x)] \\
\text{variance} &=\int_x\{E_D[h(x)- \bar{h(x)}]\}^2p(x)dx \\ & = \mathbb{E}_{x,D}\left[(h(x) - \bar{h(x)})^2 \right]\end{split}
\tag{1.c}
\end{equation}

 

정리하면 이래요. Bias는 average estimator가 실제값과 얼마나 차이가 나냐, 하는 것이고 분산은 각각의 추정치들이 자기들끼리 얼마나 흩어져있냐, 하는 것이에요.

여기서 사실 $t(x)$에 대한 부분이 조금 모호한데.. 교수님 피피티엔 $t=f(x)=g(x)+\epsilon$이라고 되어있고 이 $\epsilon$이 $\mathcal{N}(0, \epsilon)$의 오차라고 설명을 해주셨는데요.. 킬리언 교수님은 여기서 아예 다른 노테이션을 씁니다. $t(x)$ 대신 "expected label"이라는 의미로 $\bar{y}(x)$라는 표현을 사용해 $\ref{eq1}$을 훌륭하게 전개를 해주셨는데 (사실 그래서 훨씬 설득력 있음ㅋㅋㅋ) 그게 뭔지 한번 볼까요

$$
\bar{y}(x) = \mathbb{E}_{y|x}(y) = \int yP(y|x)dy
$$

즉, feature $x$가 주어졌을 때, label인 $y$가 가질 수 있는 값들의 기댓값이라는 거죠. 

그렇게 해석하면 $\text{bias}^2$는, expected prediction과 expected label의 차이에요! 사실 여기서 아마 $g(x)$가 실제 $y$값이고 $t=f(x)$가 오차 $\epsilon$만큼을 가진 $y$의 기댓값..이라고 봐야하는 건가... 손 교수님 빠른 해명 부탁드립니다ㅋㅋㅋㅜ 몬소리임 ㄹㅇ

 

대신 우리 굣님 아주 직관적인 그림 하나 투척해주심!

 

ㄹㅇ 이해 잘됨,,,

 

오케이 좋다, 지금 우리가 관심있는 건 prediction, 즉 테스트 데이터에 대한 예측이고 이에 따라 편향과 분산을 저렇게 정의한다는 것도 이해했으. 근데 테스트 에러의 원인은 뭐죠?

  • 모델이 아주 갓벽딱들어맞는ㅋㅋ 모델이고 데이터도 충분하다는 조건이라면, 그렇다면 이건 테스트 데이터에 존재하는 noise 때문이라고 볼 수도 있을 것 같아요. 이때 에러인 $\epsilon$은 가우시안 분포를 따른다고.. 말하더군요
  • 그게 아니면 데이터의 수가 불충분해서 그렇다는 결론을 내릴 수도 있구요.

target $t=f(x)$에 대해 우리의 모델을 $h(x)$라고 한다면, 이때 risk는 아래와 같이 정의할 수 있다는데요,

\begin{equation}\label{eq4}
\text{error} = \int_x\int_t(h(x)-t)^2p\left( f(x)=t |x \right)p(x)dtdx
\tag{1.d}
\end{equation}

이때 True risk는 \ref{eq4}의 기댓값을 말합니다.

\begin{equation}\label{eq5}
R(h) =E_D\left[ \int_x\int_t(h(x)-t)^2p\left( f(x)=t |x \right)p(x)dtdx \right]
\tag{1.e}
\end{equation}

이 아이를 아까 말한대로 noise, bias, variance의 구성으로 분해를 하면, target function $t = f(x) = g(x)+\epsilon$에 대해

$$\begin{align*}
R(h) & = E_D\left[ \int_x\int_t(h(x)-t)^2p\left( f(x)=t |x \right)p(x)dtdx \right], & \text{where} \\
\text{noise} & = \sigma^2 \\
\text{bias}^2 &=\int\{E_D[h(x)] - g(x)\}^2p(x)dx \\
\bar{h}(x) & = E_D[h(x)] \\
\text{variance} &=\int_x\{E_D[h(x)- \bar{h}(x)]\}^2p(x)dx 
\end{align*}$$

ㅋㅋ네 오케이..

훔 그렇군요 저 위의 식은 MSE 풀어쓴 것임~

 

일반적으로 복잡한 모델일수록 bias가 작고, variance가 높다고 하네요? ㅇㅋㅇㅋ

 

 

위에서 True Risk라는 표현을 썼는데, 테스트 에러에 대해서는 이런 표현을 쓰고 training 에러의 경우에는 empirical risk, '경험적'이라는 표현을 쓰는군요ㅎㅎ 종종 training error 자체를 모델을 평가하는 데 쓸 수는 없는 걸까..?라는 생각이 들 수도 있는데, 손진희 교수님은 여기서 "optimistically biased" 라는 표현을 썼어요. 학습 데이터로 가중치를 최적화해두고, 그 가중치를 평가하는 데 학습 데이터를 쓰겠다구? 그런 엉터리가 다있누~

 


나머진 별로 중한 내용 아녀서 여까지~

 

728x90

'coursework > Machine Learning & Deep Learning' 카테고리의 다른 글

SP24) Bagging & Boosting (Ensemble)  (0) 2024.05.25
SP24) Linear Regression II  (1) 2024.03.31
SP24) Linear Regression 1  (1) 2024.03.28
SP24) Naive Bayes Classifier 2  (3) 2024.03.24
SP24) Naive Bayes Classifier 1  (0) 2024.03.20