본문 바로가기

인공지능/스터디

Bias-Variance, underfitting-overfitting trade off

이 게시글은 팀블로그에서 참고했다.

Bias- Variance

 

2. 편향-분산 트레이드 오프 (Bias-Variance trade off)

안녕하십니까 허브솔트입니다. 지난 시간에는 앙상블의 알고리즘들에 대해 알아보았는데요, 오늘은 편향 분산 트레이드 오프에 대해 공부해 볼께요! 편향 분산 트레이드 오프는 비단 앙상블에만 적용되는 것이 아..

data-matzip.tistory.com

 

딥러닝 머신러닝에서 underfitting과 overfitting의 트레이드 오프는 최종 성능에 중요한 역할을 한다. 이를 이해하기 위해선 Bias-Variance의 트레이드 오프 관계를 알아야 한다.

그럼 우선 Bias- variance를 알아보고 underfitting과 overfitting을 알아보자.

 

 

편향-분산

- 편향(Bias)

Bias는 정답을 맞추지 못한 정도(거리)이다.

즉, 정답에서 멀리 떨어진 경우 편향이 높기 때문에 underfitting의 경우 bias가 크다. 

 

- 분산(Variance)

정답과 상관없이 predict값들이 얼마나 떨어져있냐를 나타낸 정도이다.

variance가 높다는 것은 feature가 조금만 달라져도 predict값이 크게 달라진다는 뜻이기에 민감도가 높다. 때문에 overfitting인 경우 variance가 높다.

 

이를 사진으로 설명해보겠다.

출처: https://rfriend.tistory.com/search/bias

 

결과적으로, 1번 case인 bias, variance가 둘다 낮은 모델이 가장 좋은 모델이다.

 

편향과 분산을 수식으로 설명해보겠다.

 

https://www.opentutorials.org/module/3653/22071

위의 수식을 간단하게 설명하겠다.

맨앞의 노란부분이 Bias이다. 이는 예측값과 정답의 평균이 얼마나 다른가를 설명한다.

 

초록부분이 Variance인데, 이는 평균(예측값- 예측값의 평균)으로 예측값끼리 얼마나 흩어져있는지를 설명한다.

 

underfitting, overfitting

 

- underfitting

학습이 제대로 되지 않은 경우 underfitting이라 하며, 1번째 사진의 케이스와 같다. 사진을 보면 제대로 분류를 못하는것을 알 수있다.

 

- overfitting

학습이 너무 과도하게 된 경우이다. 3번째 케이스와 같으며, 사진처럼 너무 구불구불한경우 대부분 overfitting이 되었다고 본다. 그 이유는 학습 데이터는 사진처럼 잘맞출수 있지만, 정작 test data를 줬을때는 엉망으로 맞출 수 있기 때문이다.

 

2번째 사진이 가장 최적의 모델이다. 이 처럼 underfitting과 overfitting의 중간점을 잘 찾아야 한다.

 

 

 

1. training error, validation error가 높은 경우: underfitting이 되었으며, bias가 높다.

즉, predict와 정답이 거리가 먼 경우이며, 학습할수록 더 좋은 모델을 만들 수 있다는 뜻이다.

 

2. training error<<< validation error: overfitting이 되었으며, variance가 높다.

이 경우는 train data에 너무 과하게 학습되어서 새로운 데이터가 들어올때는 제대로 예측하지 못하는 경우이다. 학습할수록 overfitting이 더 심해지기 때문에 적절한 trade-off가 필요하다. 

 

 

둘다 줄이는 방법이 좋겠지만, 동일한 데이터 안에서는 불가하다. 하지만 반대로 '데이터의 양'을 늘리면 편향과 분산이 모두 작아져 더 정확한 모델을 만들 수 있다.

 

 

- 공식으로 이해해보기

https://www.opentutorials.org/module/3653/22071

에러는 다음과 같다고 설명했다. 이를 증명해보자.

https://data-matzip.tistory.com/13?category=851534

이 블로그에서 설명한 내용에 조금만 덧붙이겠다.

 

Error(x)= $E[(y - \hat f)^2]$

= $E[y^2 + \hat {f^2} - 2y\hat f]$

                                                                        *$Var[y] = E[x^{2}]-E[x]^{2}$ 이므로 다음과 같이 바꿀 수 있다.
$= Var[y] + E[y]^2 + Var[\hat f] + E[\hat {f}]^2 - 2fE[\hat f]$
 $= Var[y] + Var[\hat f] + (E[y]-E[\hat f])^2$
 인데, 여기서 $Var[y]$를 변경해보겠다.
 $Var[y]= Var(f+\epsilon) = E[y-f]^2 = E[f+\epsilon -f]^2 = E[\epsilon]^2= \sigma^2 (\epsilon$은 상수니까 다음과 같은식이 가능)

따라서, $Var[y]= σ2+Var[^f] + (f-E[\hat f])$ 라고 정의할 수 있으며 다음과 같이 정리가 가능하다.
$= \sigma^2 + Var[\hat f] + Bias[\hat f]^2$

 

 

 

참고

https://data-matzip.tistory.com/13?category=851534

https://www.opentutorials.org/module/3653/22071

'인공지능 > 스터디' 카테고리의 다른 글

KNN CF(Collaborative Filtering) 구현  (0) 2020.04.14
최대우도추정  (0) 2020.04.14
[CB Filtering] 2. 키워드 수집  (0) 2020.03.23
[Ensemble] 개요(Bagging, Boosting, Stacking)  (0) 2020.03.13
[CB Filtering] 1. 개요  (0) 2020.03.13