[머신러닝] 머신러닝 학습 시 고려해야 하는 것 : High Bias vs High Variance, Learning Curve
어제보다 나은 사람이 되기

걱정보단 실행을, 그러나 계획적으로

Box World 자세히보기

AI/Coursera ( Machine Learning )

[머신러닝] 머신러닝 학습 시 고려해야 하는 것 : High Bias vs High Variance, Learning Curve

Box형 2020. 5. 3. 22:33
반응형

시작하며

보통 학습한 모델이 우리가 바라는대로 작동하지 않는다면, 대부분 High BiasHigh Variance 문제에 해당합니다.

이번 포스팅에서는 어떻게 적절한 가설함수의 Degree(차수)를 구하고, Learning Curve란 무엇인지 공부해보겠습니다.

이번 포스팅은 아래 포스팅들을 먼저 공부하시고 보시면 더욱 효과적입니다.

 

[머신러닝] 모델의 과적합(Overfitting)을 피하기 위한 방법

시작하며 우리는 지금까지 Linear Regression 그리고 Logistic Regression 두가지에 중점을 두어 Supervised Learning을 공부하였습니다. 이번 포스팅에서는 모델 학습 과정에서 발생할 수 있는 'Overfitting' 이..

box-world.tistory.com

 

[머신러닝] 머신러닝 학습 시 고려사항 n가지 : Test data와 Cv data란?

시작하며 우리가 데이터를 모델에 학습시킬 때, 모델이 학습한 결과와 실제값이 달라 accuracy(정확도) 가 떨어지는 상황에서 무엇을 할 수 있을까요? 더 많은 데이터를 넣어본다? 데이터의 표본이 많아지면 학습..

box-world.tistory.com


High Bias vs High Variance

우리는 기존에 High Bias는 Underfitting일 때, High Variance는 Overfitting일 때 발생하는 문제임을 배웠고, 이들을 피하여 적당한 모델을 선택하여 학습하는 것이 중요하다는 것을 공부하였습니다.

x축 : 함수의 degree / y축 : Cost

함수가 1차라면 형태가 굉장히 단순하기 때문에 Cost가 높을 것입니다. 반대로 함수의 차수가 커질수록 형태는 복잡해지지만 오차는 내려갈 것입니다.

위 그래프에는 Training set을 적용했을 때 CostCv set을 적용했을 때 Cost를 표현한 것입니다. 이때 Training set 기반의 Cost함수가 상대적으로 더 fit 되어있기 때문에 Cv data의 Cost가 조금 더 클 수 밖에 없습니다.

그리고 Cv data는 차수가 높아질수록 Overfitting되기 때문에 Error가 커집니다.


그렇다면 위 그래프를 보고 어떻게 High Bias인지 High Variance인지 구별할 수 있을까요?

왼쪽이 High Bias, 오른쪽이 High Variance

High bias와 High Variance 모두 Cv data의 Cost가 높지만, Training data의 Cost가 한쪽은 크고 한쪽은 작습니다.

둘을 구별하기 위해서는 High bias의 경우, Underfit이기 때문에 Training set의 Cost가 높고, High Variance의 경우 Overfit되어서 Cost가 낮다는 것을 기억하시면 됩니다.

저 그래프에서 가장 최적의 Degree는 J cv 그래프의 대칭축이 됩니다.


Regularzation에서의 High Bias / Variance

Regularzation(정규화)는 Overfitting을 막아줍니다. 그렇다면 Regularzation은 High Bias와 High Variance에 어떤 영향을 끼칠까요?

위와 같이 람다(λ)가 너무 크면 High Bias, 너무 작다면 High Variance 문제가 발생하게 됩니다.

어떻게 하면 적절한 람다를 선택할 수 있을까요?

보통은 λ를 0에서부터 시작하여 0.01, 0.02, 0.04 이런식으로 1.5배~2배씩 람다를 키우면서 각각의 최적화된 θ를 구합니다. 그리고 이 θ를 J cv에 적용하여 Cost가 가장 적게 나오는 λ를 선택합니다.

Degree에 따른 Cost 그래프를 정반대로 뒤집으면 λ에 따른 Cost 그래프가 된다고 생각하시면 됩니다. 이는 람다가 작으면 high Variance 람다가 크면 High Bias 문제가 발생하므로 당연한 결과입니다.

저 그래프에서 가장 최적의 Degree는 J cv 그래프의 대칭축이 됩니다.


Learning Curve(학습곡선)

x축은 데이터의 개수 m / y축은 Cost

Learning Curve는 알고리즘의 성능을 측정하기 위한 것입니다.

우선 m = 1일때는 데이터에 model을 fit하기 쉽기 때문에 J training의 Cost는 낮지만, Underfit이기 때문에 J cv의 Cost는 높습니다.

여기에서 점점 데이터의 개수가 많아질수록 데이터에 Model을 fit하기 어려워지면서 J training의 Cost는 높아지지만, J cv의 Cost는 점점 낮아지게 됩니다.

만약 모델이 'High bias'라면 데이터의 개수가 많아지더라도 여전히 fit하지 않기 때문에 Error에 큰 변동이 없습니다. 따라서 High Bias일 경우, 데이터의 개수를 늘리는 것이 큰 도움이 되지 않습니다.

만약 모델이 'High Variance'라면 데이터가 늘어날수록 모델을 fit하는게 어려워지기 때문에 J train의 Cost는 늘어나게 됩니다. 그리고 그래프에서 보다시피 데이터의 개수가 늘어날수록 두 함수의 gap이 줄어들기 때문에, High Variance의 경우 데이터의 개수를 늘리는 것이 도움됩니다.


요약

1) High Bias : Traing data와 Cv data의 Cost가 둘다 높다 / High Variance ; Cv data의 Cost는 높으나 Training data의 Cost가 낮다. -> 적절한 Degree는 Cv data 그래프의 대칭축 지점

2) 정규화를 적용한 모델에서는 λ가 크면 High Bias, λ가 작으면 High Variance ->적절한 람다는 케이스를 나누어 값을대입해보며 그중 가장 작은 Cost를 도출한 λ를 사용한다.

3) Learing Curve란 알고리즘의 성능을 측정할 때 사용하며, High Bias일 땐 데이터를 추가하는 것이 도움되지 않지만, High variance의 경우 데이터를 추가하는 것이 도움된다.

반응형