Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

인공지능/스터디

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ˆf)2]

= E[y2+^f22yˆf]

                                                                        *Var[y]=E[x2]E[x]2 이므로 다음과 같이 바꿀 수 있다.
=Var[y]+E[y]2+Var[ˆf]+E[ˆf]22fE[ˆf]
 =Var[y]+Var[ˆf]+(E[y]E[ˆf])2
 인데, 여기서 Var[y]를 변경해보겠다.
 Var[y]=Var(f+ϵ)=E[yf]2=E[f+ϵf]2=E[ϵ]2=σ2(ϵ은 상수니까 다음과 같은식이 가능)

따라서, Var[y]=σ2+Var[f]+(fE[ˆf]) 라고 정의할 수 있으며 다음과 같이 정리가 가능하다.
=σ2+Var[ˆf]+Bias[ˆf]2

 

 

 

참고

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

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

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