네거티브 클래스의 인스턴스가 매우 유사한 이진 분류 문제를 처리하는 방법은 무엇입니까? [복제]
고정 된 크기의 그림에 고양이가 있는지 여부를 감지하고 싶다고 가정 해 보겠습니다. 그러나 데이터 세트로 고양이 사진 10000 장과 고양이를 포함하지 않지만 서로 매우 유사한 사진 30000 장이 있습니다. 예를 들어, "고양이 아님"클래스의 30000 개의 사진에 한두 종류의 거미 사진 만 포함되어 있다고 가정 해 보겠습니다 .
CNN을 훈련 할 때 테스트 세트에서 높은 점수를 얻었지만 (여기서 높은 점수 = 거의 완전한 대각선 혼동 행렬) 실제 세계에서 CNN을 사용하려는 경우 거의 모든 것이 다음과 같이 분류됩니다. 고양이.
이 경우 네트워크가 잘못 일반화되는 이유는 무엇입니까? 데이터 세트가 데이터의 종류를 나타내지 않더라도 CNN은 실제 세계에서 볼 수 있습니다. CNN이 "나는 고양이의 예를 10000 개 봤습니다. 고양이는 고양이가 아니야 "?
더 많은 데이터를 수집하는 것 외에이 문제를 어떻게 처리 할 수 있습니까?
답변
이 경우 CNN은 고양이가 무엇인지 학습하는 것이 아니라 고양이가없는 이미지와 고양이가있는 이미지를 구별 합니다.
모든 "no-cat"이미지에 스파이더가 포함되어있는 경우 CNN은 스파이더를 감지해야만 수렴 할 수 있습니다. 스파이더가있는 이미지는 "no-cat"에 속하고 다른 이미지는 "cat"에 속합니다. . 데이터 테스트에 대해 좋은 혼동 매트릭스가 있고 실제 환경에서 성능이 좋지 않은 이유를 설명합니다.
이러한 상황을 피할 수있는 몇 가지 옵션이 있습니다.
- 말한대로 "no-cat"라벨에 다른 이미지를 추가합니다 (예 : 공개 데이터 세트 사용).
- 하려고 한 클래스 분류 방법을. 신경망에 익숙하다면 오토 인코더의 재구성 오류를 파헤칠 수 있습니다 (이 게시물 : 데이터 범주가 하나 뿐인 데이터 세트를 사용하는 방법 또는 이 sklearn 가이드 참조 ).
도움이되기를 바랍니다.