18 How big should the Eyeball and Blackbox dev sets be?

구성된 눈알 개발 데이터셋은 개발중인 알고리즘이 만들어내는 중대한 에러 종류를 눈치채기에 충분한 크기여야 한다. 만약 (사진에서 고양이를 인식하는 것과 같은) 사람이 이미 잘 할 수 있는 것에 대한 작업을 하고 있다면, 다음과 같은 가이드라인이 있을 수 있겠다:

알고리즘이 5%의 에러율을 보인다고 가정 해 보자. 눈알 개발 데이터셋이 100개의 잘못 분류된 데이터를 가지고 있음을 확신하기 위해서, 눈알 개발 데이터셋은 2,000개의 데이터를 가져야만 할지도 모른다 (왜냐하면 0.05 * 2,000 = 100, 5%의 양). 분류 알고리즘의 에러율이 낮으면 낮을 수록, 더 큰 눈알 개발 데이터셋이 필요해진다.

만약에 사람조차도 잘 하지 못하는 작업이 대상인 경우, 눈알 개발 데이터셋을 관찰하는 방법은 별로 도움이 안될 수 있다. 그 이유는 알고리즘이 왜? 그 특정 데이터들를 올바르게 분류 못했는지에 대한 이유를 알아채기 어렵기 때문이다. 이 경우, 눈알 개발 데이터셋을 구성하는 과정을 생략해야 할지도 모른다. 이 문제에 대한 가이드라인은 다음에 다루도록 하겠다.

그렇다면 블랙박스 개발 데이터셋은 어떤가? 이전에 개발 데이터셋이 1,000 ~ 10,000개로 구성되는 것이 일반적임을 이야기 한 적이 있다. 이 말을 좀 더 다듬어 보면, 1,000 ~ 10,000개로 이루어지는 블랙박스 개발 데이터셋은 여러개의 모델 중 하나를 선택하거나, 하이퍼-파라메터를 튜닝하기 충분한 양이라는 이야기가 된다. 오히려 이보다 더 많은 데이터를 가질때, 약간의 위험 요소가 있을 수 있겠다. 블랙박스 개발 데이터셋의 수가 100이면 이는 작은 수 이지만, 이 또한 여전히 유용하게 쓰일 수 있을지도 모른다.

작은 크기의 개발 데이터셋을 가지고 있다면, 그 데이터들을 눈알블랙박스 개발 데이터셋으로 나누기에 충분하지 않을 수 있다. 이럴 때는 대신에, 전체 개발 데이터셋이 눈알 개발 데이터셋으로 사용될 수 있다. 다시 말하자면, 모든 개발 데이터셋이 수작업으로 관찰되어야 하는 대상이 된다는 것이다.

눈알블랙박스 개발 데이터셋 중, 나는 눈알 개발 데이터셋이 더 중요한 것이라고 생각한다 (사람이 잘 풀어낼 수 있는 문제에 대해서 프로젝트를 진행하는 경우, 데이터를 관찰하는 것으로 데이터에 대한 통찰력을 얻을 수 있다). 만약 눈알 개발 데이터셋 만을 가지고 있는 경우, 에러분석을 수행할 수 있고, 이 데이터셋으로 모델 선택 및 하이퍼-파라메터 튜닝을 수행할 수 있다. “눈알” 개발 데이터셋 만을 가지게 되는 것의 단점은 개발 데이터셋에 대하여 과적합될 위험성이 매우 커진다는 것이 있겠다.

만약 아주 충분한 양의 데이터가 있다면, 눈알 개발 데이터셋의 크기는 주로 수작업으로 분석하는데 쏟는데 허용되는 시간이 얼마나 존재하는지로 정해진다. 예를 들어서, 나는 1,000개 이상의 에러 케이스에 대하여 수작업으로 분석하는 경우를 본 적이 없다.