2019. 2. 12. 08:53ㆍArtificial Intelligence
* 첨부자료의 모든 저작권은 COURSERA에 있음을 미리 밝힙니다.
Bias & Variance
이번 포스팅에서 살펴볼 내용은 우리가 Machine Learning 을 통해 구현한 알고리즘의
성능을 진단하고, 오류를 수정하는 방법과 절차에 대한 것이다.
우리가 예측한 알고리즘을 검증하는 방법은 다음과 같았다.
1. 알고리즘을 학습시킬 데이터를 더 모은다.
2. 비슷한 류의 Parameter set으로 알고리즘을 수행해본다.
3. 추가적인 Parameter를 알고리즘에 집어넣는다.
4. Polynomial 한 Parameter를 추가한다.
5. Regularization parameter lambda의 값을 증가시키거나 감소시킨다. (즉, 각 항의 영향력을 감소시키거나 증가시켜본다.)
하지만 여전히, 위의 방법을 적용해 수정한 알고리즘에도 오류가 발생하거나 문제가 생길 수 있다.
이럴 경우에는 새로운 방법으로 알고리즘을 검증해 주어야 한다.
Training Set / Test Set Model
가설함수 H는 훈련 데이터(Training Data)에 대해서는 에러를 적게 발생시킬 수 있지만, Overfitting의 가능성으로 인해 new Training Data에 대해서 예외적으로 큰 오류들을 발생시킬 수 있다. 따라서 이 가설 함수를 검증하기 위해 Data set을 Training Set, Test Set으로 (7:3 비율이 일반적) 나누어 검증하는 방법을 사용할 수 있다. 이 경우 Training Set을 이용하여 Cost Function을 최소화하는 theta vector를 구하고 이 벡터에 대한 Test Set의 오류를 구해 훈련 후에 나타나는 error가 대략 어느 정도인지를 가늠해 볼 수 있다.
Training Set / Validation Set / Test Set && Cross Validation Model
학습 알고리즘의 정확도를 더 높이기 위해 Data Set을 3개로 나누어 검증하기도 한다. Data Set의 개수가 충분히 많은 경우에는 Training Set, Test Set의 비중을 조금 희생하여 Validation Set에 할당하기도 하며, Data Set의 개수가 충분하지 않을 경우에는 Training Set을 조금씩 쪼개서 이들 모두를 Validation Set으로 사용하는 Cross Validation Model을 사용한다.
Validation Model이든, Cross Validation Model이든 모두 Learning Algorithm의 검증을 위해 Validation Set을 사용하는데, 그 이유는 단순히 '모델의 성능을 평가하기 위해서'이다. 결국에 Test Set은 Model의 최종 성능을 평가하기 위해 쓰이는 데이터이고, 그 전에 최종 성능을 내는 과정에서 Training Set의 학습 결과를 통해 나온 비용과 Validation Set의 오류를 비교해서 차이가 클 경우에는 알고리즘을 수정하는 방식인 것이다.
Bias & Variance
Bias(=loss)는 추정값이 참 값에서 얼마나 떨어져 있는지를 의미하는 값이고, Variance(=error)는 추정 값들의 흩어진 정도를 의미하는 값이다. 즉, Underfitting과 Overfitting의 관점에서 생각해 본다면, Bias가 크고 Variance가 작은 모델은 단순하지만 예측값의 정확도는 다소 떨어지는 Underfitting의 모델과 가깝고, Bias가 작고, Variance가 큰 모델은 복잡하고 트레이닝 데이터에 대해서 거의 100%의 정확도를 가지고 있는 Overfitting의 모델과 가깝다. 따라서 우리가 이상적으로 선택해야 하는 모델은 Bias와 Variance가 어느 정도 균형을 이루고 있는 Polynomial d를 가진 모델이 될 것이다.
위의 예제를 살펴보면 가로축은 다항식의 차수를 의미하고, 세로축은 비용함수의 값을 의미한다.
다항식의 차수가 작은 경우에는 , Cross-Validation과 Training Set 모두 높은 Bias 를 가지므로 높은 값을 가지며, 다항식의 차수가 큰 경우에는 Training Set의 경우 결과값을 정확하게 예측하여 비용이 계속해서 감소하지만, 분산이 크기 때문에 Cross-Validation Set의 경우 높은 비용을 가지게 된다. 따라서 그 사이의 범위에서 다항식의 차수 d를 결정해야 할 것이다.
'Artificial Intelligence' 카테고리의 다른 글
Spam Classifier - implementation with Octave (0) | 2019.02.14 |
---|---|
Spam Classifier - Theory (0) | 2019.02.14 |
Neural Networks & BackPropagation with Octave (0) | 2019.02.11 |
Neural Networks(3) - Cost Function & BackPropagation (0) | 2019.02.08 |
Multi-Class Classification with Octave (0) | 2019.02.08 |