알고리즘을 학습하는 데이터를 분류함에 따라
(1) 학습 데이터(training data)
(2) 학습 개발 데이터(training devel data)
(3) 개발 데이터(devel data)
(4) 테스트 데이터(test data)
총 4가지로 분류 해볼 수 있다.
위 4개의 데이터를 통해서 다음 항목들을 평가하는데,
[1] 학습 데이터에 의해서 측정할 수 있는 학습 오류
[2] 학습 데이터에 의해서 학습데이터에서 추출한 새로운 데이터를 일반화할 수 있는 알고리즘의 성능
[3] 개발/테스트 데이터에서 측정할 수 있는 알고리즘의 성능
만약 학습 데이터와 개발/테스트 데이터의 분포가 다른 상태에서 머신러닝을 적용한다고 가정할 때, 알고리즘은 생각보다 잘 동작하지 않을 것이다.
그 이유는 개발/테스트 오류가 많이 발생해서 일 것이고 이러한 가능성은
(1) 학습 데이터 분포 상의 high (avoidance) bias
의 발생으로 학습 데이터 상에서 잘 동작하지 않음
(2) 학습 데이터 상에서는 잘 동작하지만, 학습 데이터와 같은 분포에서 나온 미지의 데이터는 일반화가 되지 않은 high variance
발생
(3) 학습 데이터와 동일한 분포에서 가져온 새로운 데이터 상에서는 일반화가 잘 되지만, 개발/테스트 데이터에서 가져온 데이터에서는 일반화가 되지 않는 데이터 불일치(data mismatch)
로, 학습 데이터가 개발/테스트 데이터와 어울리지 않기 때문에 발생함
예를 들어서 Classfication task를 했을 때, 인간과 머신러닝 둘 다 task에 대해서 완벽에 가까운 성능으로 아래와 같은 성능이 나타났다고 가정할 때
라는 케이스에서는 data mismacth 문제를 결험하고 있기 때문에 개발/테스트 데이터와 좀 더 유사한 학습 데이터를 만들려고 노력 할 것이다.