2016-06-01 10 views
0

TensorFlow를 사용하여 개체 인식을 구현하고 있습니다. 나는이 튜토리얼을 따라했지만 내 자신의 데이터 세트를 사용한다. https://www.tensorflow.org/versions/r0.8/tutorials/mnist/pros/index.html#deep-mnist-for-experts왜 테스트 정밀도가 훈련 정밀도보다 높음

훈련하기 위해 212 개의 양성 샘플과 120 개의 음성 샘플을 사용했습니다. 시험 세트는 100 개의 양성 샘플과 20 개의 음성 시료를 포함합니다. 훈련 정밀도는 32.15 %이지만 시험 정밀도는 83.19 %입니다.

시험 정밀도가 훈련 정밀도보다 높은 이유는 무엇입니까? 내 데이터 세트가 충분하지 않습니까? 데이터에는 통계적 의미가 없습니다. 또는 그것은 훈련의 정확성이 말이되지 않는다고 말하는 사람들을 보았 기 때문에 일반적입니다. 그런데 왜 그런가요?

+0

설명에 따르면 pos/neg 예제의 비율의 차이는 분명히 그러한 관찰을 유발할 수있는 무언가입니다 (비율은 64 %, 비율은 83 %로 테스트). 트레이닝 중에 샘플 중량/클래스 중량을 사용하고 있습니까 (불균형 데이터 작업 기술)? – sascha

+0

No.. 나는 그 기술을 사용하지 않았다. 내 비율을 동일하게 변경했습니다 (교육에서 212 포지션, 80 네거티브 테스트 중 : 100 포지션, 40 네거티브). 훈련 정밀도는 0.27, 시험 정밀도는 0.71 ... 내 부정적인 샘플을 훈련과 테스트 모두에서 양성 샘플 수의 두 배가되도록 확대해야합니까? –

답변

2

여기에는 두 가지 문제가 있습니다.

먼저 클래스의 균형이 맞지 않을 때 정밀도는 성능을 측정하는 좋은 방법이 아닙니다.

둘째, 더 중요한 것은 불량율이 테스트 세트에서 음수와 양수입니다. 테스트 세트는 교육 과정과 동일한 프로세스에서 가져와야하지만, 네가티브는 교육 세트의 ~ 40 %이지만 테스트 세트의 ~ 17 % 정도입니다. 그다지 놀랍지 않게 - 모든 단일 입력에 대해 단순히 "true"로 대답하는 분류기는 테스트 세트에서 83 %의 정밀도를 얻을 수 있습니다 (긍정이 전체 데이터의 83 % 임).

따라서 테스트 샘플 수가 많지 않으므로 교육/테스트 데이터 세트의 잘못된 구성입니다. 이 분할에 더 많은 문제가 있다는 것을 상상할 수도 있습니다. 열차와 시험에서 완전히 다른 구조가있을 것입니다.

+0

이번에 내 비율을 동일하게 변경했습니다 (교육에서 212 포지션, 80 네거티브 테스트 중 : 100 포지션, 40 네거티브). 훈련 정밀도는 0.27이되고, 시험 정밀도는 0.71입니다. 분류자는 실제로 모든 입력에 대해 "참"이라고 대답합니다. 트레이닝과 테스트에서 양수 샘플 수를 두 배로 늘리려면 제외 샘플을 확대해야합니까? –

+0

정밀도 사용을 중지하고 정확도를 사용하십시오. 당신은 단순히 당신이 지나치게 (또는 underfitting) 것을 볼 수 있습니다. – lejlot

+0

대단히 감사합니다. 그리고 늦은 응답에 대해 유감스럽게 생각합니다. 나는 그것을 정확도로 바꾸고 훈련 과정에서조차 발견 한 나의 데이터 세트 (Training, pos : 212, neg : 534, Test, pos : 100, neg : 270)를 재구성하고, 분류자는 여러 번의 반복 후에 모든 샘플을 양수로 인식한다. 이미지의 크기는 63 * 63 = 3969이므로이 값은 적합하지 않습니까? 더 많은 레이어를 추가하면 도움이 될까요? 나는 기계 학습에 아주 새롭다, 고마워! –