6-2 Bias vs Variance 본문

ML & DL/Coursera-ML

6-2 Bias vs Variance

eremo2002 2019. 1. 28. 16:38

High bias, high variance 문제에 대해 알아본다.








High bias high variance 이전에 배웠던 것처럼 모델의 underfit, overfit 문제를 의미한다.

만약 사용하고자 하는 모델의 다항식 degree 작다면 학습 데이터를 맞추지 것이다. 문제는 High bias(underfit)문제가 된다.

반면에 상대적으로 degree 사용한다면 모델이 학습 데이터를 매우 맞출 있지만 다른 test data 맞추지 것이다. 때의 문제는 High variance(overfit)문제가 된다. 따라서 사이의 trade off 적절한 모델을 찾는 것이 중요하다.










Degree of polynomial D error 그래프를 통해 High Bias / Variance 따른 차이점을 살펴보자.

Training error Cross validation error 분홍색, 빨간색 곡선에 해당된다. 만약 현재 알고리즘의 문제가 High bias(underfit)라면 d=1처럼 작은 지점에서 보는 것처럼 training error validation error error 값이 것이다. 반면 High variance(overfit)문제라면 degree 지점에서 보는 것처럼 training error 값은 작을 것이고 validation error 값은 것이다










따라서 우리의 학습 알고리즘이 기대만큼 작동하지 않을 이와 같은 degree, error 축으로 하는 그래프를 그려본 error 추이를 통해 underfit인지 overfit인지 확인할 있다.




























Regularization 따라 high bias / variance 어떤 영향을 받는지 알아본다.











다음과 같이 regularization 적용한 선형 회귀 모델이 있다고 가정했을

람다 값이 매우 크다면 h(x) 파라미터 쎄타들이 0 가까울 만큼 굉장히 작은 값을 가져야 하기 때문에 결국 모델은 직선과 같은 모습을 갖게 것이고 이는 training data 제대로 맞추지 하는 high bias(underfit) 문제에 직면하게 된다.

 

이와 반대로 람다 값이 0 가까울 만큼 매우 작은 경우, regularization 쓰는 효과가 거의 없는 거나 마찬가지기 때문에 모델은 high variance(overfit)문제에 직면하게 된다.

따라서 high bias / variance 피하기 위해 적절한 람다 값을 찾는 것이 중요한데 어떻게 값을 찾아야 할까?









모델이 다음과 같을 regularization 람다를 사용하지 않는 loss function J(쎄타) 다음과 같다.










이제 regularization 추가하고 람다 값을 0에서 10.24까지 12개의 case 대해 J(쎄타) 최소화하는 파라미터를 찾아본다. 뒤에 값으로 cross validation data 다시 적용해본다.

그래서 validation set error 가장 적은 case 람다 값을 선택하면 된다. 이러한 방식을 통해 regularization 파라미터인 람다의 적절한 값을 찾을 있다.










이제 람다 값의 변화에 따라 training error 어떻게 변하는지 정리해보자.

만약 람다 값이 매우 작은 위치에서 매우 위치까지 변화할 J_train(쎄타) 오른쪽 곡선처럼 변하게 된다. 앞서 말했듯이 람다 값이 매우 작은 경우 high variance(overfit)현상이 일어나므로 J값도 매우 작은 값을 갖게 것이지만 람다 값이 점점 커지면서 high bias(underfit) 문제에 직면하게 되므로 J_train 값도 커지게 된다.

 

이러한 상황에서 J_cv 생각해보면, 람다 값이 매우 작을 (high variance, overfit) J_cv값은 매우 것이다.

또한 람다 값이 매우 경우에도(high bias, underfit) J_cv 값은 매우 것이기 때문에 J_cv 그래프는 분홍색 곡선처럼 그려질 것이다.


























Learning curve 통해 학습 알고리즘이 작동하는지 점검하고 개선하는 방법에 대해 알아본다.













만약 2 함수 모델로 아래의 데이터들을 표현한다고 해보자.

학습 데이터의 수가 1, 2, 3개처럼 매우 적다면 2 모델로도 train error 0 가까운 충분히 좋은 모델을 만들 있다. 그러나 학습 데이터의 수가 점점 늘어난다면 모델로 데이터를 제대로 표현하기 힘들어 것이고 training error 점점 커질 것이다.

따라서 m (training set size) 매우 작을 error 매우 작지만 m 커질 수록 train error값도 커지게 된다.

 

cross validation error 경우를 보면 데이터의 수가 매우 적을 학습 데이터를 표현할 있지만 일반화 성능이 좋지 못하므로 J_cv값은 매우 것이다.

m 점점 커지게 되면 J_cv 값은 조금씩 줄어들 것이다.

 

따라서 m 커지면 커질 수로 일반화가 잘된 모델을 얻을 있을 것이다.












High bias 문제에 직면했을 , 트레이닝 데이터를 많이 모으더라도 성능은 좋아지지 않을 것이다.

이유는 일단 오른쪽 그래프처럼 underfit문제를 겪고 있는 모델은 트레이닝 데이터가 많아지더라도 그걸 representation 수가 없다.

따라서 m 커지면 커질 수록 train error 증가할 것이다. 반면 cross validation error 조금씩 감소할 있지만 좋은 일반화 성능을 있을만큼 error 내려가진 않는다.

결과적으로 high bias 문제를 겪고 있을 트레이닝 데이터를 모으는 것은 도움이 되지 않으며 데이터를 모으는데 시간을 소비하는 것은 시간을 낭비하는 것이다.










High variance 경우를 보면, 일단 결론은 high variance 문제를 겪고 있을 데이터를 모으는 것은 도움이 된다.

오른쪽 그래프와 같이 트레이닝 데이터가 많더라도 람다 값으로 모델을 조절하여 high variance(overfit) 경우 데이터를 맞출 있고 데이터가 엄청나게 커진다면 train error 조금 증가할 있지만 error 크게 증가하진 않을 것이다. 따라서 m 커지면 커질 수록 train error 증가하긴 하지만 high bias 비해 error 가지진 않을 것이다. 그리고 cross validation error 경우 overfitting 모델에 대해선 초기에 error값이 크지만, 데이터가 많으면 많아질 수록 overfit 문제가 줄어들 있기 때문에 validation error 점점 줄어들어 결국 train error cross validation error 사이의 gap 점점 줄어들 것이다.

 

결과적으로 high variance(overfit) 경우 데이터를 많이 모으는 것이 성능 향상에 도움이 된다.
























이전에 배웠던 여러 테크닉들을 다시 정리해본다.












알고리즘의 일반화 성능을 높이기 위해 문제에 따른 여러 방법들을 배웠다.











뉴럴넷에서 히든 레이어를 여러 사용하거나 혹은 히든 레이어의 유닛 수를 다양하게 하여 여러 가지 구조를 사용할 있다Small 뉴럴넷처럼 파라미터의 수가 많지 않은 구조는 underfitting 가능성이 높지만 연산량이 훨씬 적다는 장점이 있다.

반면 과도하게 히든 레이어의 유닛 수가 많거나 여러 개의 히든 레이어를 사용하는 뉴럴넷은 오히려 overfitting 가능성이 있으며 그만큼 파라미터 수가 많기 때문에 계산량이 늘어난다. 이러한 오버피팅 문제를 해결하기 위해 regularization 사용하여 오버피팅을 완화할 있다.


















'ML & DL > Coursera-ML' 카테고리의 다른 글

6-4 Error Metrics for Skewed Classes  (0) 2019.01.29
6-3 Building a Spam Classifier  (0) 2019.01.29
6-1 Evaluating a Learning Algorithm  (0) 2019.01.21
5-2 Backpropagation in Practice  (0) 2019.01.21
5-1 Cost function and Backpropagation  (0) 2019.01.18
Comments