본문 바로가기

🤖AI/딥러닝

[딥러닝] Bias와 Variance

Bias

train data로 만들어진 모델이 train data와 얼마나 잘 부합하게 만들어졌는가

즉, train data와의 error값이 얼마나 작은지를 의미한다.

Variance

train data는 잘 학습이 되었더라도 실제 data에 대해서 모델에 적용시켜봤을 때 얼마나 error가 발생하는지를 의미한다. 

 

bias와 variance는 tradeoff관계다.
bias를 줄이려면 variance가 늘어나고 bias를 늘리면 variance를 줄일 수 있다.
deep learning에서는 둘다 줄일 수 있다.

 

Underfitting

만들어진 모델이 너무 단순해서 실제 data의 복잡성을 잘 표현하지 못하고 있다.

너무 간단한 calssifier

Overfitting

Overfiting이란 training dataset에만 지나치게 최적화돼서 새로운 데이터에 대한 예측을 잘 못하는 상태를 의미한다. 따라서 학습 데이터에 대해서는 오차가 감소하지만 실제 데이터에 대해서는 오차가 증가하는 지점이 존재할 수 있다.

죽, overfitting은 학습데이터에 대해 과하게 학습하여 실제 데이터에 대한 오차가 증가할 경우 발생한다.

이때의 오류를 high variance라고 한다.

overfitting을 극복하는 방법

1. 더 많은 데이터를 활용한다.

   ex. GAN -> fake data

2. feature의 개수를 줄인다.

3. 적절히 parameter를 선정한다.

   - 적은 수의 parameter로도 예측이 가능하다면 너무 많은 parameter를 만들지 말자

4. regularization : 정규화

   - L1 regularization (Lasso)

   - L2 regularization (Ridge)

 

예시

이미지가 고양이 인지 아닌지를 구분하는 모델이 있다고 해보자.

사람의 classification error는 0이라고 한다면 다음과 같이 생각할 수 있다.

딥러닝 방법

bias가 높다면 network를 더 키운다. 즉, network를 좀 더 복잡하게 만든다.

또는 train을 더 길게 해본다. 즉, iteration을 증가시킨다.

bias가 작아지면 variance를 줄인다. 

variance를 줄이기 위해서는 data를 더 많이 사용하면 좋다.

하지만 data를 많이 구하는 것은 쉽지 않다.

따라서 보통 regularization기법을 사용한다.

bias도 줄어들고 variance도 줄어들면 이 모델이 적합하다고 생각하고 사용하게 된다.

 

출처: untitledtblog.tistory.com/68