6-2 Bias vs Variance 본문
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 |