시작하며
보통 학습한 모델이 우리가 바라는대로 작동하지 않는다면, 대부분 High Bias 나 High Variance 문제에 해당합니다.
이번 포스팅에서는 어떻게 적절한 가설함수의 Degree(차수)를 구하고, Learning Curve란 무엇인지 공부해보겠습니다.
이번 포스팅은 아래 포스팅들을 먼저 공부하시고 보시면 더욱 효과적입니다.
- OverFitting / Regularzation
https://box-world.tistory.com/16 - Test / CV data
https://box-world.tistory.com/23
High Bias vs High Variance
우리는 기존에 High Bias는 Underfitting일 때, High Variance는 Overfitting일 때 발생하는 문제임을 배웠고, 이들을 피하여 적당한 모델을 선택하여 학습하는 것이 중요하다는 것을 공부하였습니다.
함수가 1차라면 형태가 굉장히 단순하기 때문에 Cost가 높을 것입니다. 반대로 함수의 차수가 커질수록 형태는 복잡해지지만 오차는 내려갈 것입니다.
위 그래프에는 Training set을 적용했을 때 Cost와 Cv set을 적용했을 때 Cost를 표현한 것입니다. 이때 Training set 기반의 Cost함수가 상대적으로 더 fit 되어있기 때문에 Cv data의 Cost가 조금 더 클 수 밖에 없습니다.
그리고 Cv data는 차수가 높아질수록 Overfitting되기 때문에 Error가 커집니다.
그렇다면 위 그래프를 보고 어떻게 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(학습곡선)
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의 경우 데이터를 추가하는 것이 도움된다.
'AI > Coursera ( Machine Learning )' 카테고리의 다른 글
[머신러닝 순한맛] SVM(Support Vector Machine)이란? - 1) Introduction (0) | 2020.05.05 |
---|---|
[머신러닝] 머신러닝 시스템 디자인 하기 : Precision, Recall, F score (0) | 2020.05.04 |
[머신러닝] 머신러닝 학습 시 고려해야할 것 : Test data와 Cv data란? (2) | 2020.05.03 |
[머신러닝] 딥러닝의 시작 Neural Network 정복하기 2 (0) | 2020.05.01 |
[머신러닝] Back Propagation(역전파) 정복하기 (0) | 2020.05.01 |